@extension.dev/mcp 5.1.2 → 5.2.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 +17 -3
- 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.
|
|
13
|
+
"version": "5.2.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 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.
|
|
4
|
+
"version": "5.2.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cezar Augusto",
|
|
7
7
|
"email": "boss@cezaraugusto.net",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 5.2.0
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- `extension_manifest_validate` warns when a Chrome-desktop-only manifest
|
|
8
|
+
key (for example `file_browser_handlers`) rides an Edge target, where it
|
|
9
|
+
is inert. Family-level prefix resolution already worked; this adds
|
|
10
|
+
granularity inside the chromium family for Edge-targeted publishers.
|
|
11
|
+
- `extension_logout` now returns `revokeUrl` pointing at the project's
|
|
12
|
+
access-tokens page and says plainly that the token stays valid
|
|
13
|
+
server-side until revoked there. The scope is read before the local
|
|
14
|
+
credentials are cleared so the link can still be built.
|
|
15
|
+
|
|
3
16
|
## 5.1.2
|
|
4
17
|
|
|
5
18
|
### Fixed
|
package/dist/module.js
CHANGED
|
@@ -203,7 +203,7 @@ __webpack_require__.d(whoami_namespaceObject, {
|
|
|
203
203
|
handler: ()=>whoami_handler,
|
|
204
204
|
schema: ()=>whoami_schema
|
|
205
205
|
});
|
|
206
|
-
var package_namespaceObject = JSON.parse('{"rE":"5.
|
|
206
|
+
var package_namespaceObject = JSON.parse('{"rE":"5.2.0","El":{"OP":"^4.0.13"}}');
|
|
207
207
|
function scaffoldEnginePin(projectPath) {
|
|
208
208
|
try {
|
|
209
209
|
const pkg = JSON.parse(node_fs.readFileSync(node_path.join(projectPath, "package.json"), "utf8"));
|
|
@@ -1657,6 +1657,12 @@ function isChromiumFamily(browser) {
|
|
|
1657
1657
|
function isGeckoFamily(browser) {
|
|
1658
1658
|
return GECKO_FAMILY.has(browser);
|
|
1659
1659
|
}
|
|
1660
|
+
const CHROME_DESKTOP_ONLY_KEYS = [
|
|
1661
|
+
"file_browser_handlers",
|
|
1662
|
+
"file_system_provider_capabilities",
|
|
1663
|
+
"input_components",
|
|
1664
|
+
"chrome_os_system_extension"
|
|
1665
|
+
];
|
|
1660
1666
|
const KNOWN_PERMISSIONS = new Set([
|
|
1661
1667
|
"activeTab",
|
|
1662
1668
|
"alarms",
|
|
@@ -2026,6 +2032,9 @@ async function manifest_validate_handler(args) {
|
|
|
2026
2032
|
if (!perms.includes("sidePanel")) issues.push('Side panel declared but "sidePanel" permission is missing.');
|
|
2027
2033
|
}
|
|
2028
2034
|
if (manifest["firefox:browser_action"] && !effective.action) issues.push('Firefox browser_action found but no chromium:action. Chromium MV3 uses "action" instead of "browser_action".');
|
|
2035
|
+
if ("edge" === browser) {
|
|
2036
|
+
for (const key of CHROME_DESKTOP_ONLY_KEYS)if (void 0 !== effective[key]) result.warnings.push(`Manifest key "${key}" works on Chrome but is inert on Edge (it is a Chrome-only surface). The edge build ships it as a no-op; move it under "chromium:${key}" only if you also target Chrome, or remove it.`);
|
|
2037
|
+
}
|
|
2029
2038
|
}
|
|
2030
2039
|
if (isFirefox) {
|
|
2031
2040
|
const contentScripts = effective.content_scripts;
|
|
@@ -5513,18 +5522,23 @@ async function whoami_handler() {
|
|
|
5513
5522
|
}
|
|
5514
5523
|
const logout_schema = {
|
|
5515
5524
|
name: "extension_logout",
|
|
5516
|
-
description: "Delete the locally stored extension.dev credentials. Does not revoke the token server-side (
|
|
5525
|
+
description: "Delete the locally stored extension.dev credentials. Does not revoke the token server-side (the response includes the dashboard URL where the token can be revoked); only removes it from this machine.",
|
|
5517
5526
|
inputSchema: {
|
|
5518
5527
|
type: "object",
|
|
5519
5528
|
properties: {}
|
|
5520
5529
|
}
|
|
5521
5530
|
};
|
|
5522
5531
|
async function logout_handler() {
|
|
5532
|
+
const creds = readCredentials();
|
|
5533
|
+
const revokeUrl = creds?.workspaceSlug && creds?.projectSlug ? `https://console.extension.dev/${creds.workspaceSlug}/${creds.projectSlug}/settings/access-tokens` : null;
|
|
5523
5534
|
const result = clearCredentials();
|
|
5524
5535
|
return JSON.stringify({
|
|
5525
5536
|
ok: true,
|
|
5526
5537
|
cleared: result.cleared,
|
|
5527
|
-
|
|
5538
|
+
...result.cleared && revokeUrl ? {
|
|
5539
|
+
revokeUrl
|
|
5540
|
+
} : {},
|
|
5541
|
+
message: result.cleared ? revokeUrl ? `Local credentials removed. The token stays valid server-side until it expires; revoke it now at ${revokeUrl} (takes about a minute to propagate).` : "Local credentials removed. The token stays valid server-side until it expires; revoke it from the project's access-tokens page if needed." : "No stored credentials to remove."
|
|
5528
5542
|
});
|
|
5529
5543
|
}
|
|
5530
5544
|
const install_browser_schema = {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@extension.dev/mcp",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.2.0",
|
|
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.
|
|
10
|
+
"version": "5.2.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": "5.
|
|
16
|
+
"version": "5.2.0",
|
|
17
17
|
"runtimeHint": "npx",
|
|
18
18
|
"transport": {
|
|
19
19
|
"type": "stdio"
|