@extension.dev/mcp 4.3.0 → 4.4.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 +5 -2
- package/CHANGELOG.md +30 -0
- package/LICENSE +1 -1
- package/README.md +8 -7
- package/bin/extension-mcp.js +7 -0
- package/claude/CLAUDE.md +29 -39
- package/claude/commands/extension-debug.md +2 -3
- package/claude/rules/mcp-tools.md +68 -18
- package/dist/module.js +332 -17
- package/dist/src/lib/browser-family.d.ts +1 -0
- package/dist/src/lib/launch-flags.d.ts +43 -0
- package/dist/src/tools/build.d.ts +24 -0
- package/dist/src/tools/dev.d.ts +45 -7
- package/dist/src/tools/preview.d.ts +44 -1
- package/dist/src/tools/start.d.ts +44 -1
- package/dist/src/tools/uninstall-browser.d.ts +24 -0
- package/package.json +20 -14
- package/server.json +3 -3
package/dist/src/tools/dev.d.ts
CHANGED
|
@@ -1,9 +1,51 @@
|
|
|
1
|
+
import { type LaunchFlagArgs } from "../lib/launch-flags";
|
|
1
2
|
export declare const schema: {
|
|
2
3
|
name: string;
|
|
3
4
|
description: string;
|
|
4
5
|
inputSchema: {
|
|
5
6
|
type: "object";
|
|
6
7
|
properties: {
|
|
8
|
+
allowControl: {
|
|
9
|
+
type: string;
|
|
10
|
+
default: boolean;
|
|
11
|
+
description: string;
|
|
12
|
+
};
|
|
13
|
+
allowEval: {
|
|
14
|
+
type: string;
|
|
15
|
+
default: boolean;
|
|
16
|
+
description: string;
|
|
17
|
+
};
|
|
18
|
+
profile: {
|
|
19
|
+
readonly type: "string";
|
|
20
|
+
readonly description: "Browser profile path, or \"false\" to reuse the default user profile. Omit for a fresh throwaway profile.";
|
|
21
|
+
};
|
|
22
|
+
startingUrl: {
|
|
23
|
+
readonly type: "string";
|
|
24
|
+
readonly description: "URL the browser opens on launch";
|
|
25
|
+
};
|
|
26
|
+
chromiumBinary: {
|
|
27
|
+
readonly type: "string";
|
|
28
|
+
readonly description: "Path to a custom Chromium-based binary (overrides browser)";
|
|
29
|
+
};
|
|
30
|
+
geckoBinary: {
|
|
31
|
+
readonly type: "string";
|
|
32
|
+
readonly description: "Path to a custom Gecko/Firefox binary (overrides browser)";
|
|
33
|
+
};
|
|
34
|
+
host: {
|
|
35
|
+
readonly type: "string";
|
|
36
|
+
readonly description: "Dev server bind host. Use 0.0.0.0 for Docker or devcontainers. Defaults to 127.0.0.1";
|
|
37
|
+
};
|
|
38
|
+
publicHost: {
|
|
39
|
+
readonly type: "string";
|
|
40
|
+
readonly description: "Connectable host the browser dials for HMR and reload when it differs from the bind host";
|
|
41
|
+
};
|
|
42
|
+
extensions: {
|
|
43
|
+
readonly type: "array";
|
|
44
|
+
readonly items: {
|
|
45
|
+
readonly type: "string";
|
|
46
|
+
};
|
|
47
|
+
readonly description: "Companion extension paths or store URLs to load alongside the project";
|
|
48
|
+
};
|
|
7
49
|
projectPath: {
|
|
8
50
|
type: string;
|
|
9
51
|
description: string;
|
|
@@ -22,12 +64,7 @@ export declare const schema: {
|
|
|
22
64
|
default: boolean;
|
|
23
65
|
description: string;
|
|
24
66
|
};
|
|
25
|
-
|
|
26
|
-
type: string;
|
|
27
|
-
default: boolean;
|
|
28
|
-
description: string;
|
|
29
|
-
};
|
|
30
|
-
allowEval: {
|
|
67
|
+
polyfill: {
|
|
31
68
|
type: string;
|
|
32
69
|
default: boolean;
|
|
33
70
|
description: string;
|
|
@@ -41,6 +78,7 @@ export declare function handler(args: {
|
|
|
41
78
|
browser?: string;
|
|
42
79
|
port?: number;
|
|
43
80
|
noBrowser?: boolean;
|
|
81
|
+
polyfill?: boolean;
|
|
44
82
|
allowControl?: boolean;
|
|
45
83
|
allowEval?: boolean;
|
|
46
|
-
}): Promise<string>;
|
|
84
|
+
} & LaunchFlagArgs): Promise<string>;
|
|
@@ -1,9 +1,41 @@
|
|
|
1
|
+
import { type LaunchFlagArgs } from "../lib/launch-flags";
|
|
1
2
|
export declare const schema: {
|
|
2
3
|
name: string;
|
|
3
4
|
description: string;
|
|
4
5
|
inputSchema: {
|
|
5
6
|
type: "object";
|
|
6
7
|
properties: {
|
|
8
|
+
profile: {
|
|
9
|
+
readonly type: "string";
|
|
10
|
+
readonly description: "Browser profile path, or \"false\" to reuse the default user profile. Omit for a fresh throwaway profile.";
|
|
11
|
+
};
|
|
12
|
+
startingUrl: {
|
|
13
|
+
readonly type: "string";
|
|
14
|
+
readonly description: "URL the browser opens on launch";
|
|
15
|
+
};
|
|
16
|
+
chromiumBinary: {
|
|
17
|
+
readonly type: "string";
|
|
18
|
+
readonly description: "Path to a custom Chromium-based binary (overrides browser)";
|
|
19
|
+
};
|
|
20
|
+
geckoBinary: {
|
|
21
|
+
readonly type: "string";
|
|
22
|
+
readonly description: "Path to a custom Gecko/Firefox binary (overrides browser)";
|
|
23
|
+
};
|
|
24
|
+
host: {
|
|
25
|
+
readonly type: "string";
|
|
26
|
+
readonly description: "Dev server bind host. Use 0.0.0.0 for Docker or devcontainers. Defaults to 127.0.0.1";
|
|
27
|
+
};
|
|
28
|
+
publicHost: {
|
|
29
|
+
readonly type: "string";
|
|
30
|
+
readonly description: "Connectable host the browser dials for HMR and reload when it differs from the bind host";
|
|
31
|
+
};
|
|
32
|
+
extensions: {
|
|
33
|
+
readonly type: "array";
|
|
34
|
+
readonly items: {
|
|
35
|
+
readonly type: "string";
|
|
36
|
+
};
|
|
37
|
+
readonly description: "Companion extension paths or store URLs to load alongside the project";
|
|
38
|
+
};
|
|
7
39
|
projectPath: {
|
|
8
40
|
type: string;
|
|
9
41
|
description: string;
|
|
@@ -13,6 +45,15 @@ export declare const schema: {
|
|
|
13
45
|
enum: string[];
|
|
14
46
|
default: string;
|
|
15
47
|
};
|
|
48
|
+
port: {
|
|
49
|
+
type: string;
|
|
50
|
+
description: string;
|
|
51
|
+
};
|
|
52
|
+
noBrowser: {
|
|
53
|
+
type: string;
|
|
54
|
+
default: boolean;
|
|
55
|
+
description: string;
|
|
56
|
+
};
|
|
16
57
|
};
|
|
17
58
|
required: string[];
|
|
18
59
|
};
|
|
@@ -20,4 +61,6 @@ export declare const schema: {
|
|
|
20
61
|
export declare function handler(args: {
|
|
21
62
|
projectPath: string;
|
|
22
63
|
browser?: string;
|
|
23
|
-
|
|
64
|
+
port?: number;
|
|
65
|
+
noBrowser?: boolean;
|
|
66
|
+
} & LaunchFlagArgs): Promise<string>;
|
|
@@ -1,9 +1,41 @@
|
|
|
1
|
+
import { type LaunchFlagArgs } from "../lib/launch-flags";
|
|
1
2
|
export declare const schema: {
|
|
2
3
|
name: string;
|
|
3
4
|
description: string;
|
|
4
5
|
inputSchema: {
|
|
5
6
|
type: "object";
|
|
6
7
|
properties: {
|
|
8
|
+
profile: {
|
|
9
|
+
readonly type: "string";
|
|
10
|
+
readonly description: "Browser profile path, or \"false\" to reuse the default user profile. Omit for a fresh throwaway profile.";
|
|
11
|
+
};
|
|
12
|
+
startingUrl: {
|
|
13
|
+
readonly type: "string";
|
|
14
|
+
readonly description: "URL the browser opens on launch";
|
|
15
|
+
};
|
|
16
|
+
chromiumBinary: {
|
|
17
|
+
readonly type: "string";
|
|
18
|
+
readonly description: "Path to a custom Chromium-based binary (overrides browser)";
|
|
19
|
+
};
|
|
20
|
+
geckoBinary: {
|
|
21
|
+
readonly type: "string";
|
|
22
|
+
readonly description: "Path to a custom Gecko/Firefox binary (overrides browser)";
|
|
23
|
+
};
|
|
24
|
+
host: {
|
|
25
|
+
readonly type: "string";
|
|
26
|
+
readonly description: "Dev server bind host. Use 0.0.0.0 for Docker or devcontainers. Defaults to 127.0.0.1";
|
|
27
|
+
};
|
|
28
|
+
publicHost: {
|
|
29
|
+
readonly type: "string";
|
|
30
|
+
readonly description: "Connectable host the browser dials for HMR and reload when it differs from the bind host";
|
|
31
|
+
};
|
|
32
|
+
extensions: {
|
|
33
|
+
readonly type: "array";
|
|
34
|
+
readonly items: {
|
|
35
|
+
readonly type: "string";
|
|
36
|
+
};
|
|
37
|
+
readonly description: "Companion extension paths or store URLs to load alongside the project";
|
|
38
|
+
};
|
|
7
39
|
projectPath: {
|
|
8
40
|
type: string;
|
|
9
41
|
description: string;
|
|
@@ -18,6 +50,15 @@ export declare const schema: {
|
|
|
18
50
|
default: boolean;
|
|
19
51
|
description: string;
|
|
20
52
|
};
|
|
53
|
+
port: {
|
|
54
|
+
type: string;
|
|
55
|
+
description: string;
|
|
56
|
+
};
|
|
57
|
+
noBrowser: {
|
|
58
|
+
type: string;
|
|
59
|
+
default: boolean;
|
|
60
|
+
description: string;
|
|
61
|
+
};
|
|
21
62
|
};
|
|
22
63
|
required: string[];
|
|
23
64
|
};
|
|
@@ -26,4 +67,6 @@ export declare function handler(args: {
|
|
|
26
67
|
projectPath: string;
|
|
27
68
|
browser?: string;
|
|
28
69
|
polyfill?: boolean;
|
|
29
|
-
|
|
70
|
+
port?: number;
|
|
71
|
+
noBrowser?: boolean;
|
|
72
|
+
} & LaunchFlagArgs): Promise<string>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const schema: {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
inputSchema: {
|
|
5
|
+
type: "object";
|
|
6
|
+
properties: {
|
|
7
|
+
browser: {
|
|
8
|
+
type: string;
|
|
9
|
+
enum: string[];
|
|
10
|
+
description: string;
|
|
11
|
+
};
|
|
12
|
+
all: {
|
|
13
|
+
type: string;
|
|
14
|
+
default: boolean;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
required: never[];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export declare function handler(args: {
|
|
22
|
+
browser?: string;
|
|
23
|
+
all?: boolean;
|
|
24
|
+
}): Promise<string>;
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@extension.dev/mcp",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.
|
|
5
|
-
"description": "MCP server that lets AI agents (Claude Code, Claude Desktop, Cursor, Copilot, Codex) build, run, inspect, and publish browser extensions.
|
|
4
|
+
"version": "4.4.0",
|
|
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": "MIT",
|
|
8
8
|
"author": {
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"engines": {
|
|
22
22
|
"node": ">=20.18"
|
|
23
23
|
},
|
|
24
|
+
"packageManager": "pnpm@10.19.0",
|
|
24
25
|
"exports": {
|
|
25
26
|
".": {
|
|
26
27
|
"types": "./dist/module.d.ts",
|
|
@@ -42,8 +43,20 @@
|
|
|
42
43
|
"CHANGELOG.md",
|
|
43
44
|
"LICENSE"
|
|
44
45
|
],
|
|
46
|
+
"scripts": {
|
|
47
|
+
"clean": "rm -rf dist",
|
|
48
|
+
"watch": "rslib build --watch",
|
|
49
|
+
"compile": "rslib build",
|
|
50
|
+
"build": "pnpm run compile",
|
|
51
|
+
"start": "node bin/extension-mcp.js",
|
|
52
|
+
"test": "vitest run",
|
|
53
|
+
"prepack": "node scripts/readme-logo-width.mjs npm",
|
|
54
|
+
"postpack": "node scripts/readme-logo-width.mjs github",
|
|
55
|
+
"prepublishOnly": "pnpm run test && pnpm run compile"
|
|
56
|
+
},
|
|
45
57
|
"publishConfig": {
|
|
46
58
|
"access": "public",
|
|
59
|
+
"provenance": true,
|
|
47
60
|
"registry": "https://registry.npmjs.org"
|
|
48
61
|
},
|
|
49
62
|
"keywords": [
|
|
@@ -62,6 +75,7 @@
|
|
|
62
75
|
"chrome-extension",
|
|
63
76
|
"firefox-addon",
|
|
64
77
|
"edge-extension",
|
|
78
|
+
"safari-web-extension",
|
|
65
79
|
"manifest-v3",
|
|
66
80
|
"webextension",
|
|
67
81
|
"cross-browser",
|
|
@@ -74,9 +88,9 @@
|
|
|
74
88
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
75
89
|
"browser-extension-manifest-fields": "^2.2.9",
|
|
76
90
|
"cross-spawn": "^7.0.6",
|
|
77
|
-
"extension-create": "^4.0.
|
|
78
|
-
"extension-develop": "^4.0.
|
|
79
|
-
"extension-install": "^4.0.
|
|
91
|
+
"extension-create": "^4.0.11",
|
|
92
|
+
"extension-develop": "^4.0.11",
|
|
93
|
+
"extension-install": "^4.0.11",
|
|
80
94
|
"ws": "^8.20.0"
|
|
81
95
|
},
|
|
82
96
|
"devDependencies": {
|
|
@@ -85,13 +99,5 @@
|
|
|
85
99
|
"@types/ws": "^8.18.1",
|
|
86
100
|
"typescript": "6.0.2",
|
|
87
101
|
"vitest": "^4.1.3"
|
|
88
|
-
},
|
|
89
|
-
"scripts": {
|
|
90
|
-
"clean": "rm -rf dist",
|
|
91
|
-
"watch": "rslib build --watch",
|
|
92
|
-
"compile": "rslib build",
|
|
93
|
-
"build": "pnpm run compile",
|
|
94
|
-
"start": "node bin/extension-mcp.js",
|
|
95
|
-
"test": "vitest run"
|
|
96
102
|
}
|
|
97
|
-
}
|
|
103
|
+
}
|
package/server.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json",
|
|
3
3
|
"name": "io.github.extensiondev/mcp",
|
|
4
|
-
"description": "Build, run, inspect, and publish browser extensions from any MCP client.
|
|
4
|
+
"description": "Build, run, inspect, and publish browser extensions from any MCP client. 30 tools, 11 browsers.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/extensiondev/mcp",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
9
|
"websiteUrl": "https://extension.dev",
|
|
10
|
-
"version": "4.
|
|
10
|
+
"version": "4.4.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": "4.
|
|
16
|
+
"version": "4.4.0",
|
|
17
17
|
"runtimeHint": "npx",
|
|
18
18
|
"transport": {
|
|
19
19
|
"type": "stdio"
|