@ extension.dev/mcp

给您的AI代理手进行浏览器扩展开发. 38个MCP工具用于脚手架,运行,检查,调试,测试,并在你的机器上建立交叉浏览器扩展,外加一个平台道(private alpha)来共享并发布.
claude mcp add extension-dev npx @extension.dev/mcp
与克洛德代码,克洛德桌面,Cursor以及任何MCP客户端合作.
扩展名.dev • 妇女 文档 • 妇女 模板 • 妇女 解析器
为什么一个用于扩展的 MCP 服务器
扩展失败无声:从未注入的内容脚本,从未打开的面板,返回的权限 undefined 没有错误。 这些工具让代理在直播浏览器上看到,因此它从证据中调试而不是猜测.
- 脚手架 从后面的50+模板 模板.扩展.dev,或者在现有工程中添加弹出、侧边栏或内容脚本
- 运行 chrome、Firefox、Edge和HMR的dev服务器 下方每个浏览器,加上macOS上的Safari(还没有HMR)
- 见 现场DOM,每个扩展上下文的日志,
chrome.storage,以及加载扩展列表 - 行为: 在任何上下文中评价代码, 触发动作按钮和命令, 重新装入扩展名
- 测试: 状态对运行中的延期的期望, 并获得一个判决
- 船舶:验证已显示的交叉浏览器并用于生产。 打开 平台车道: 共享预览链接, 推动构建, 并提交到仓库
建造在 电话分机.js,开源框架扩展名。 dev赞助商. 每个引擎命令都运行项目 node_modules/.bin/extension 当项目有一个, 否则 npx extension@<pin> 在版本中此服务器针( e)EXTENSION_MCP_CLI_VERSION 更改接头). 运行一个尚未运出的修复器, 设置 EXTENSION_MCP_ENGINE_DIR 转到已编译的扩展.js 检查出根(文件夹持有) programs/extension/bin/extension.cjs)或致建筑物 extension 软件包文件夹( 持有) bin/extension.cjs:每个产卵然后运行 node <that bin>项目的引擎和针被绕过, extension_doctor是因为 project-engine 检查路径名称及其版本, sha和分支, 和没有 bin 的路径拒绝每个产卵, 而不是掉回 . EXTENSION_MCP_ENGINE_BIN 指定确切的本文件.
看着它工作
浏览器
extension_dev 在您命名的浏览器中打开扩展名.
| 谷歌颜色 | 铬 | 微软边缘 | 勇敢点 | 歌剧 | Mozilla Firefox 喷出火花 | 苹果沙发 |
Chromium家族和Firefox获得HMR,控制,eval,检查和断言(Firefox关于其调试器协议和代理桥,没有CDP). Safari在macOS、无HMR、无检查的基础上工作 萨法里加上维瓦尔第,扬德克斯,沃特福克克斯,禅和克洛斯普,以及任何克洛米姆或盖克多二进制.
客户
| 克劳德代码 | 克劳德桌面 | 光标 | VS 代码 | 代码 |
设置
克劳德代码
claude mcp add extension-dev -- npx @extension.dev/mcp --features=local,platform
或安装为插件, MCP 服务器加 /extension, (中文(简体) ), /extension-add, (中文(简体) ), /extension-debug,以及 /extension-publish 步骤中的命令 :
/plugin marketplace add extensiondev/mcp
/plugin install extension-mcp@extensiondev-mcp
光标
或贴上 .mcp.json 下方块为 .cursor/mcp.json。 。 。 .
VS 代码
code --add-mcp '{"name":"extension-dev","command":"npx","args":["@extension.dev/mcp","--features=local,platform"]}'
或者把它贴入 .vscode/mcp.json 下级 servers,与 "type": "stdio" 在条目.
代码
codex mcp add extension-dev -- npx @extension.dev/mcp --features=local,platform
或写入 ~/.codex/config.toml 作为 [mcp_servers.extension-dev] 相同的表格 command 财务报告和审定财务报表 args。 。 。 .
其他客户端(Claude桌面和.mcp.json)
.mcp.json数字 :
{
"mcpServers": {
"extension-dev": {
"command": "npx",
"args": [
"@extension.dev/mcp",
"--features=local,platform"
]
}
}
}
旗帜
- 默认情况下,服务器会曝光其38个工具中的25个使用此机(13个平台工具已关闭).
--features=local,platform新增平台组. 信封 :EXTENSION_DEV_FEATURES。 。 。 . --no-ship拒绝每个将某事放在他人面前的电话(出版,促销,真实提交,共享预览,撤销). 信封 :EXTENSION_DEV_NO_SHIP=1。 。 。 .--project <workspace>/<project>将服务器插入一个工程。 信封 :EXTENSION_DEV_PROJECT。 。 。 .- 当平台行为回答时
approval-required在桌面上(不是无头,不是CI,和带有显示功能的Linux),服务器在默认浏览器中打开一次批准页面.--no-ship或者说EXTENSION_DEV_NO_AUTO_OPEN=1关掉它.
一个被拒绝的呼叫回答 E_TOOL_DISABLED 换上国旗 人类批准提交储存材料和稳定升级,MCP说明每个工具都携带 <untrusted-data-ID> 页面写作文本周围的栏杆如下: 服务器旗。 。 。 .
遥测
extension_create 发送一个 draft_seeded 到 PostHog 时的事件 us.i.posthog.com 在成功脚手架(template sphot, source and controduct,随机的每个进程会话id,从没有路径或名称)后,平台工具会随他们的呼叫发送一个每个安装id头. EXTENSION_DEV_NO_TELEMETRY=1 或者说 DO_NOT_TRACK=1 停止两个。 全部有效载荷列于 遥测。 。 。 .
与技能对等
此服务器会给代理机手; @extension.dev/skill 给他们判断:交叉浏览器规则、无声失败的游戏机、调试游戏本和存储核对表 代理技能 格式。 包裹还装有克洛德密码规则 和四个斜线命令 claude/。 。 。 .
npm i -D @extension.dev/skill
mkdir -p .claude/skills && cp -R node_modules/@extension.dev/skill/skills/extension-dev .claude/skills/
工具
默认情况下,这台机器上的25架:
| 级别 | 工具 | 说明 |
|---|---|---|
| 构建 | extension_create | 模板中的脚手架 |
| 构建 | extension_templates | 浏览 50+ 模板 (S)list)并读取一个人的来源(source(中文(简体) ) |
| 构建 | extension_docs_search | 通过关键词搜索扩展名.js和扩展名.dev docs |
| 构建 | extension_add_feature | 计划一个选项页、 弹出、 侧面板、 内容脚本、 devtools 面板或对现有工程的新标签页 |
| 构建 | extension_build | 生产建筑 |
| 运行 | extension_dev | 带有 HMR 的 Dev 服务器 |
| 运行 | extension_start | 建设+启动生产建设build: false (一) 发射现有圆盘; outputPath 发射任何预建的无包装目录) |
| 运行 | extension_try | 运行一个已出版的扩展.dev在新鲜的本地浏览器中构建,使用一次带有截图,并说它能达到什么; action: "close" 移除它 |
| 运行 | extension_wait | 把德夫服务员的合约 |
| 运行 | extension_stop | 停止 Dev/ start/ preview 会话( 服务器 + 浏览器) |
| 见 | extension_manifest_validate | 交叉浏览器显示校验 |
| 见 | extension_analyze | 磁盘上已建扩展的静态分析 |
| 见 | extension_inspect | 深入现场检查运行中的扩展(封闭的阴影根,探测器) |
| 见 | extension_dom_snapshot | 选中标签或扩展面的浅色 DOM 快照 |
| 见 | extension_screenshot | 打开扩展面或页面的屏幕截图, 保存在会话调试端口上的 . png |
| 见 | extension_list_extensions | 列出已装入的扩展名( Chromium and Firefox) |
| 见 | extension_logs | 从每个上下文流出日志 |
| 见 | extension_doctor | 逐条诊断dev会话段( 已准备好的合同、 端口、 令牌、 执行器、 浏览器) |
| 见 | extension_theme_verify | 校验显示色调主题的颜色 |
| 测试 | extension_assert | 国家期望延期,并获得一个判决:通过、失败或无定论 |
| 动作 | extension_eval | 上下文评价( 需要) allowEval: true 打开 extension_dev(中文(简体) ) |
| 动作 | extension_storage | 读取/写作 chrome.storage |
| 动作 | extension_reload | 重新装入扩展名或标签 |
| 动作 | extension_open | 打开表面( 弹出、 选项、 侧边栏、 devtools 面板、 覆盖页面) / 触发 action, (中文(简体) ), command |
| 浏览器 | extension_browsers | 检测、列出、安装和卸载浏览器 |
继续 --features=local,platform,到达扩展的12个。 dev 平台( 私人 α ):
| 级别 | 工具 | 说明 |
|---|---|---|
| 平台 | extension_auth | 设备在扩展名下登录. dev用于一个工程或其中的列表,加上登录状态和登录 |
| 平台 | extension_workspace_create | 通过设备批准创建扩展.dev 工作空间, 无头; 批准者成为其所有者 |
| 平台 | extension_project_create | 为已建扩展创建扩展.dev项目, 或在一个批准下创建几个项目, 无头, 通过设备批准 |
| 平台 | extension_preview_web | 在网络仿真器中创建一个构件,并作为链接共享 |
| 平台 | extension_shares | 列出您共享的每个链接, 作为链接共享一个平台构建, 并永久取消一个 |
| 平台 | extension_publish | Mint 可共享的构建扩展链接 。 dev 已经持有( 没有上传) |
| 平台 | extension_release_promote | 释放一个构造到频道, 无头 |
| 平台 | extension_submit | 提交储存审查:Chrome、Firefox、Edge和Safari,通过扩展 |
| 平台 | extension_submit_check | 在只读的提示下, 读取商店的准备状态和状态, 排练, 并请求批准 |
| 平台 | extension_release_status | 读取发布通道、发布历史、最近构建以及存储配置、提交和审查状态 |
| 平台 | extension_approvals | 读取一份批准书,或撤销一份待决或批准或未使用批准书,使其永不运行 |
| 平台 | extension_builds | 阅读平台的建筑(最近的建筑,一个建筑的文物和完整性,它的CI日志),将一个建筑的软件包保存到与其完整性报告核对的磁盘上,启动重建,改变建筑设置作为所有者代号下的普通调用,并添加一个发布通道 |
| 平台 | extension_workspace | 读取任何项目登录的工作空间:计划和限制、项目和最后的构建、使用和项目设置 |
Dev 会话带有控制通道 extension_storage, (中文(简体) ), extension_reload, (中文(简体) ), extension_open 财务报告和审定财务报表 extension_dom_snapshot 骑行:是本地、同一台机器、同一用户和开机,除非 extension_dev 调用 allowControl: false。 。 。 . extension_eval 只有一个门,直到 allowEval: true 被传递 extension_dev (这意味着控制). 会议不会在第二次打电话时改变大门:打电话 extension_dev 再说一遍,你需要什么 replace: true,从而停止了第一课.
别猜了
所有其他工具都拿回读数. extension_assert 说明预期结果并回复判决.
{
"projectPath": "/path/to/extension",
"expect": [
{ "assert": "background-worker-booted" },
{ "assert": "surface-rendered", "surface": "popup", "selector": "[data-testid=root]" },
{ "assert": "storage-key-present", "key": "settings", "area": "local" },
{ "assert": "console-errors-empty", "context": ["background", "popup"] },
{ "assert": "content-script-injected", "url": "https://shop.example/cart" },
{ "assert": "no-outside-requests", "allow": ["api.shop.example"] }
]
}
每张支票都回来了 pass, (中文(简体) ), fail 或者说 inconclusive,而跑步只有在每张支票通过时才会通过. inconclusive 意味着这个平台无法覆盖今天的问题, 而支票携带 settledBy 命名将回答它的证据:一个内容脚本只通过它自己写的一行,“没有控制台错误”在从未构建的会话上是没有定论的,读到会话就会拒绝(chrome.storage 开始的会话 allowControl: false)是无结论的,而不是失败的.
萨法里
Safari dev会话与其它引擎在同一座桥上运行:在扩展.js 4.1.21上或更新上, extension_dev 与 browser: "safari" (macOS 有Xcode) 构建应用程序,打开它,在每一个保存上重新加载,并流出它的日志. Safari的MV3背景 CSP块 eval, 没有 CDP 或 RDP 路径 extension_inspect选项卡,打开标签时需要一个 safaridriver 会话;限制列在下面 萨法里。 。 。 .
平台( 私人 α)
13个平台工具连接代理 扩展名.dev在服务器启动前,它们不会被打开 --features=local,platform,并共享、发布、促进和提交需要登录:
npx @extension.dev/mcp login --project <workspace>/<project>
你批准一个代码在 扩展名.dev/device;没有 GitHub 令牌到达您的机器, 而工程范围令牌是存放在当地的, 从未返回代理, 最多活了7天 . extension_preview_web 与 share: true 上传刚刚制作的构件,并返回一个链接,使网页模拟器中的字节与它的 expiresAt (单位:千美元) revokeUrl。 。 。 . extension_publish 返回构建扩展名的可共享 URL。 dev 已经持有; extension_submit 通过扩展发送已建扩展到存储审查 。 dev,它持有你的商店证书, 默认为干线运行.
extension_submit_check 只读或询问的电话 readOnlyHint: true,因此客户端的许可层可以从商店行为中告诉他们:飞行前,状态,默认的干跑,以及每一个批准请求,第一个没有的呼叫 approvalId 不执行,只要求工作空间所有者批准关于扩展的确切法案。 dev( 与 dryRun: false,发布,取消,推出,发布,同步列表中包含平台获得的值,配置存储到提交模式中,将下一次上传发送到发布它的审查. 它从不寄信或信 approvalId 到平台上. extension_submit 使用需要花费批准时间的呼叫, 简单的同步列表或配置存储, 立即写入, 以及所有其他商店的行为, 因此它带有破坏性提示; 它仍然接受读取的呼叫 。 如果你也接受批准页作为这些行为的唯一大门, 允许两个工具的名字,在克洛德代码的 .claude/settings.json数字 :
{ "permissions": { "allow": ["mcp__extension-dev__extension_submit_check", "mcp__extension-dev__extension_submit"] } }
![]() | ![]() | ||
|---|---|---|---|
| Chrome 网页存储器 | Firefox 添加点数 | 边缘加进 | 应用程序存储 |
对项目建设分支的推动,仅在项目根目录下更改文件时,才会花费一个平台建设;对另一个分支的推动,一个只更改外部文件或许可证文件 public/,或者一个谁的头 承诺说 [skip build] (或 [skip ci],或携带 Extension-Build: skip 拖车在自己的线路上)无所花费 extension_builds 列出每个跳过推及其结果, SKIP_REQUESTED 最后一个. extension_workspace 读取过滤器读取的备忘和分支和根目录.
一些项目的详情、批准流程和批次登录情况如下: 共享在建工程, (中文(简体) ), 未提交出版物 财务报告和审定财务报表 登录。 。 。 .
社区
许可证
Apache-2.0(c) 2026 Cezar Augusto and the extension.dev合作者. 见 自由主义。 。 。 .



