@extension.dev/mcp 10.8.0 → 10.9.0
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 +13 -0
- package/dist/module.js +8 -8
- package/package.json +9 -4
- 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 50+ 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": "10.
|
|
13
|
+
"version": "10.9.0",
|
|
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 50+ 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": "10.
|
|
4
|
+
"version": "10.9.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cezar Augusto",
|
|
7
7
|
"email": "hello@extension.dev",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 10.9.0
|
|
4
|
+
|
|
5
|
+
The client ran its browser work through CLI packages pinned three minor
|
|
6
|
+
releases back, so an agent driving the MCP got 4.0.30's behavior while the
|
|
7
|
+
same person running `extension` on their own machine got 4.1.2's. Every fix
|
|
8
|
+
shipped in between reached the terminal and stopped at the MCP.
|
|
9
|
+
|
|
10
|
+
- `extension-create`, `extension-develop` and `extension-install` move from
|
|
11
|
+
4.0.30 to 4.1.2. The browser, logging and install paths the MCP tools call
|
|
12
|
+
into now behave the way the documented CLI does.
|
|
13
|
+
- No tool surface changes: the same tools take the same inputs and answer the
|
|
14
|
+
same shapes.
|
|
15
|
+
|
|
3
16
|
## 10.8.0
|
|
4
17
|
|
|
5
18
|
Some MCP actions change what a public channel serves or hand something to a
|
package/dist/module.js
CHANGED
|
@@ -222,7 +222,7 @@ __webpack_require__.d(wait_namespaceObject, {
|
|
|
222
222
|
handler: ()=>wait_handler,
|
|
223
223
|
schema: ()=>wait_schema
|
|
224
224
|
});
|
|
225
|
-
var package_namespaceObject = JSON.parse('{"rE":"10.
|
|
225
|
+
var package_namespaceObject = JSON.parse('{"rE":"10.9.0","El":{"OP":"4.1.2"}}');
|
|
226
226
|
const ENVELOPE_SCHEMA = 1;
|
|
227
227
|
const collectWarnings = (warnings)=>{
|
|
228
228
|
if (!warnings) return [];
|
|
@@ -950,7 +950,7 @@ async function readJson(url, res) {
|
|
|
950
950
|
}
|
|
951
951
|
}
|
|
952
952
|
async function readRefusal(res) {
|
|
953
|
-
let text
|
|
953
|
+
let text;
|
|
954
954
|
try {
|
|
955
955
|
text = await res.text();
|
|
956
956
|
} catch {
|
|
@@ -960,7 +960,7 @@ async function readRefusal(res) {
|
|
|
960
960
|
code: ""
|
|
961
961
|
};
|
|
962
962
|
}
|
|
963
|
-
let body
|
|
963
|
+
let body;
|
|
964
964
|
try {
|
|
965
965
|
body = JSON.parse(text);
|
|
966
966
|
} catch {
|
|
@@ -5843,7 +5843,7 @@ async function openSurfaceAsTab(projectPath, browser, surface) {
|
|
|
5843
5843
|
const doc = surfaceDocument(projectPath, browser, surface);
|
|
5844
5844
|
if (!doc) return missingSurfaceError(projectPath, browser, surface, "so there is no page to render as a tab");
|
|
5845
5845
|
let url;
|
|
5846
|
-
let extensionId
|
|
5846
|
+
let extensionId;
|
|
5847
5847
|
if (isChromiumFamily(browser)) {
|
|
5848
5848
|
extensionId = await resolveExtensionId(projectPath, browser);
|
|
5849
5849
|
if (!extensionId) return envelope_envelope({
|
|
@@ -6163,7 +6163,7 @@ function parseArtifactRef(input) {
|
|
|
6163
6163
|
const raw = String(input ?? "").trim();
|
|
6164
6164
|
if (!raw) return null;
|
|
6165
6165
|
if (ARTIFACT_ID.test(raw)) return raw;
|
|
6166
|
-
let parsed
|
|
6166
|
+
let parsed;
|
|
6167
6167
|
try {
|
|
6168
6168
|
parsed = new URL(raw);
|
|
6169
6169
|
} catch {
|
|
@@ -7028,7 +7028,7 @@ async function preview_web_handler(args) {
|
|
|
7028
7028
|
distDir
|
|
7029
7029
|
}
|
|
7030
7030
|
});
|
|
7031
|
-
let manifest
|
|
7031
|
+
let manifest;
|
|
7032
7032
|
try {
|
|
7033
7033
|
manifest = JSON.parse(node_fs.readFileSync(manifestPath, "utf8"));
|
|
7034
7034
|
} catch (err) {
|
|
@@ -14967,7 +14967,7 @@ const tools = [
|
|
|
14967
14967
|
doctor_namespaceObject
|
|
14968
14968
|
];
|
|
14969
14969
|
function toolResultFrame(result) {
|
|
14970
|
-
let refused
|
|
14970
|
+
let refused;
|
|
14971
14971
|
try {
|
|
14972
14972
|
const parsed = JSON.parse(result);
|
|
14973
14973
|
refused = isEnvelope(parsed) && false === parsed.ok;
|
|
@@ -15093,7 +15093,7 @@ async function runCli(cmd, args) {
|
|
|
15093
15093
|
api: flag("api")
|
|
15094
15094
|
});
|
|
15095
15095
|
log(out);
|
|
15096
|
-
let parsed
|
|
15096
|
+
let parsed;
|
|
15097
15097
|
try {
|
|
15098
15098
|
parsed = JSON.parse(out);
|
|
15099
15099
|
} catch {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@extension.dev/mcp",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "10.
|
|
4
|
+
"version": "10.9.0",
|
|
5
5
|
"description": "MCP server that lets AI agents (Claude Code, Claude Desktop, Cursor, Copilot, Codex) build, run, inspect, and publish browser extensions. 30 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": "Apache-2.0",
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
"compile": "rslib build",
|
|
51
51
|
"build": "pnpm run compile",
|
|
52
52
|
"start": "node bin/extension-mcp.js",
|
|
53
|
+
"lint": "eslint .",
|
|
53
54
|
"test": "vitest run",
|
|
54
55
|
"typecheck": "tsc --noEmit && tsc --noEmit -p src/__tests__/tsconfig.json",
|
|
55
56
|
"prepack": "node scripts/readme-logo-width.mjs npm",
|
|
@@ -90,17 +91,21 @@
|
|
|
90
91
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
91
92
|
"browser-extension-manifest-fields": "^2.2.9",
|
|
92
93
|
"cross-spawn": "^7.0.6",
|
|
93
|
-
"extension-create": "4.
|
|
94
|
-
"extension-develop": "4.
|
|
95
|
-
"extension-install": "4.
|
|
94
|
+
"extension-create": "4.1.2",
|
|
95
|
+
"extension-develop": "4.1.2",
|
|
96
|
+
"extension-install": "4.1.2",
|
|
96
97
|
"ws": "^8.20.0"
|
|
97
98
|
},
|
|
98
99
|
"devDependencies": {
|
|
100
|
+
"@eslint/js": "^10.0.1",
|
|
99
101
|
"@rslib/core": "^0.19.4",
|
|
100
102
|
"@types/cross-spawn": "^6.0.6",
|
|
101
103
|
"@types/node": "^25.2.0",
|
|
102
104
|
"@types/ws": "^8.18.1",
|
|
105
|
+
"eslint": "^10.7.0",
|
|
106
|
+
"globals": "^17.7.0",
|
|
103
107
|
"typescript": "6.0.2",
|
|
108
|
+
"typescript-eslint": "^8.64.0",
|
|
104
109
|
"vite": "^8.1.5",
|
|
105
110
|
"vitest": "^4.1.3"
|
|
106
111
|
},
|
package/server.json
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
9
|
"websiteUrl": "https://extension.dev",
|
|
10
|
-
"version": "10.
|
|
10
|
+
"version": "10.9.0",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
15
15
|
"identifier": "@extension.dev/mcp",
|
|
16
|
-
"version": "10.
|
|
16
|
+
"version": "10.9.0",
|
|
17
17
|
"runtimeHint": "npx",
|
|
18
18
|
"transport": {
|
|
19
19
|
"type": "stdio"
|