@extension.dev/mcp 5.1.0 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +10 -0
- package/dist/module.js +34 -4
- package/dist/src/tools/deploy.d.ts +1 -0
- package/package.json +1 -1
- package/server.json +2 -2
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"name": "extension-mcp",
|
|
11
11
|
"source": "./",
|
|
12
12
|
"description": "MCP tools for browser extension development: scaffold from 60+ templates, run the dev server with HMR, inspect the live DOM and logs, and publish store-ready builds for Chrome, Edge, and Firefox.",
|
|
13
|
-
"version": "5.1.
|
|
13
|
+
"version": "5.1.1",
|
|
14
14
|
"category": "development",
|
|
15
15
|
"author": {
|
|
16
16
|
"name": "Cezar Augusto"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "extension-mcp",
|
|
3
3
|
"description": "MCP tools for browser extension development: scaffold from 60+ templates, run the dev server with HMR, inspect the live DOM and logs, and publish store-ready builds for Chrome, Edge, and Firefox. Ships /extension, /extension-add, /extension-debug, and /extension-publish commands.",
|
|
4
|
-
"version": "5.1.
|
|
4
|
+
"version": "5.1.1",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cezar Augusto",
|
|
7
7
|
"email": "boss@cezaraugusto.net",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 5.1.1
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- `extension_deploy` warns when a Firefox or Edge submission ships without
|
|
8
|
+
the STORE.md notes the platform submits automatically (Firefox reviewer
|
|
9
|
+
and release notes, Edge certification notes). The warnings ride along in
|
|
10
|
+
the result as `warnings` and never block the submission; Chrome-only
|
|
11
|
+
submissions stay silent.
|
|
12
|
+
|
|
3
13
|
## 5.1.0
|
|
4
14
|
|
|
5
15
|
The engine closed its entire open bug range (Extension.js 61-73) in the
|
package/dist/module.js
CHANGED
|
@@ -36,7 +36,8 @@ var deploy_namespaceObject = {};
|
|
|
36
36
|
__webpack_require__.r(deploy_namespaceObject);
|
|
37
37
|
__webpack_require__.d(deploy_namespaceObject, {
|
|
38
38
|
handler: ()=>deploy_handler,
|
|
39
|
-
schema: ()=>deploy_schema
|
|
39
|
+
schema: ()=>deploy_schema,
|
|
40
|
+
storeMdWarnings: ()=>storeMdWarnings
|
|
40
41
|
});
|
|
41
42
|
var detect_browsers_namespaceObject = {};
|
|
42
43
|
__webpack_require__.r(detect_browsers_namespaceObject);
|
|
@@ -202,7 +203,7 @@ __webpack_require__.d(whoami_namespaceObject, {
|
|
|
202
203
|
handler: ()=>whoami_handler,
|
|
203
204
|
schema: ()=>whoami_schema
|
|
204
205
|
});
|
|
205
|
-
var package_namespaceObject = JSON.parse('{"rE":"
|
|
206
|
+
var package_namespaceObject = JSON.parse('{"rE":"5.1.0","El":{"OP":"^4.0.13"}}');
|
|
206
207
|
function scaffoldEnginePin(projectPath) {
|
|
207
208
|
try {
|
|
208
209
|
const pkg = JSON.parse(node_fs.readFileSync(node_path.join(projectPath, "package.json"), "utf8"));
|
|
@@ -4462,6 +4463,32 @@ async function release_promote_handler(args) {
|
|
|
4462
4463
|
return JSON.stringify(data);
|
|
4463
4464
|
}
|
|
4464
4465
|
const deploy_DEFAULT_API = "https://www.extension.dev";
|
|
4466
|
+
function storeMdWarnings(browsers, cwd) {
|
|
4467
|
+
const wantsFirefox = browsers.includes("firefox");
|
|
4468
|
+
const wantsEdge = browsers.includes("edge");
|
|
4469
|
+
if (!wantsFirefox && !wantsEdge) return [];
|
|
4470
|
+
let content;
|
|
4471
|
+
try {
|
|
4472
|
+
content = node_fs.readFileSync(node_path.join(cwd, "STORE.md"), "utf8");
|
|
4473
|
+
} catch {
|
|
4474
|
+
return [
|
|
4475
|
+
"No STORE.md found in the project root. Reviewer notes (Firefox) and certification notes (Edge) will not accompany the submission. See the extension-dev skill's store-md reference."
|
|
4476
|
+
];
|
|
4477
|
+
}
|
|
4478
|
+
const hasField = (section, field)=>{
|
|
4479
|
+
const parts = content.split(/^## +/m);
|
|
4480
|
+
const match = parts.find((p)=>section.test(p.split("\n", 1)[0] ?? ""));
|
|
4481
|
+
if (!match) return false;
|
|
4482
|
+
const sub = match.split(/^### +/m).find((p)=>field.test(p.split("\n", 1)[0] ?? ""));
|
|
4483
|
+
if (!sub) return false;
|
|
4484
|
+
const body = sub.split("\n").slice(1).join("\n");
|
|
4485
|
+
return body.replace(/<!--[\s\S]*?-->/g, "").trim().length > 0;
|
|
4486
|
+
};
|
|
4487
|
+
const warnings = [];
|
|
4488
|
+
if (wantsFirefox && !hasField(/firefox|amo/i, /reviewer notes/i)) warnings.push("STORE.md has no Firefox reviewer notes; AMO reviews go faster with test credentials and steps.");
|
|
4489
|
+
if (wantsEdge && !hasField(/edge/i, /certification notes/i)) warnings.push("STORE.md has no Edge certification notes; the certification team gets no testing guidance.");
|
|
4490
|
+
return warnings;
|
|
4491
|
+
}
|
|
4465
4492
|
const deploy_schema = {
|
|
4466
4493
|
name: "extension_deploy",
|
|
4467
4494
|
description: "Submit a built extension to the Chrome Web Store, Firefox AMO, and/or Edge Add-ons THROUGH extension.dev, which holds your store credentials and dispatches the release from your project's mirror CI. DEFAULTS TO A DRY RUN (preflight: verifies auth, the project, that the build exists, and the store workflow - dispatches nothing); pass dryRun:false to actually submit, which is irreversible and enters store review. The target project is identified by your token (extension_login or a release token in EXTENSION_DEV_TOKEN); store credentials are never tool arguments and local files are not uploaded. Pass browsers + buildSha. Posts to the platform's CLI store-submission endpoint.",
|
|
@@ -4559,11 +4586,14 @@ async function deploy_handler(args) {
|
|
|
4559
4586
|
};
|
|
4560
4587
|
}
|
|
4561
4588
|
if (!res.ok) return deploy_fail("DeployError", `submit failed (${res.status}): ${data?.message || text || "unknown error"}`);
|
|
4562
|
-
|
|
4589
|
+
const warnings = storeMdWarnings(browsers, process.cwd());
|
|
4590
|
+
const result = {
|
|
4563
4591
|
mode: "platform",
|
|
4564
4592
|
dryRun,
|
|
4565
4593
|
...data
|
|
4566
|
-
}
|
|
4594
|
+
};
|
|
4595
|
+
if (warnings.length > 0) result.warnings = warnings;
|
|
4596
|
+
return JSON.stringify(result);
|
|
4567
4597
|
}
|
|
4568
4598
|
function doctor_readReadyContract(projectPath, browser) {
|
|
4569
4599
|
try {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@extension.dev/mcp",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.1.
|
|
4
|
+
"version": "5.1.1",
|
|
5
5
|
"description": "MCP server that lets AI agents (Claude Code, Claude Desktop, Cursor, Copilot, Codex) build, run, inspect, and publish browser extensions. 31 tools for scaffolding, live DOM inspection, log streaming, and store-ready builds across Chrome, Edge, Firefox, Safari, and every Chromium- or Gecko-based browser (Brave, Opera, Vivaldi, Yandex, Waterfox, LibreWolf). Powered by extension.dev and Extension.js.",
|
|
6
6
|
"mcpName": "io.github.extensiondev/mcp",
|
|
7
7
|
"license": "MIT",
|
package/server.json
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
9
|
"websiteUrl": "https://extension.dev",
|
|
10
|
-
"version": "5.1.
|
|
10
|
+
"version": "5.1.1",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
15
15
|
"identifier": "@extension.dev/mcp",
|
|
16
|
-
"version": "5.1.
|
|
16
|
+
"version": "5.1.1",
|
|
17
17
|
"runtimeHint": "npx",
|
|
18
18
|
"transport": {
|
|
19
19
|
"type": "stdio"
|