mcpField
E
extensiondev

extensiondev

本地服务
extension.dev开发工具01 天前更新

关于 extensiondev

extensiondev 是面向扩展开发者和编码 Agent 的 MCP 服务,可构建和调试浏览器扩展。它结合项目脚手架、实时浏览器检查、跨浏览器验证,以及可选的平台发布工具。

主要功能

  1. 01从 50 多个模板创建项目
  2. 02以热更新运行扩展
  3. 03检查 DOM、日志、存储和上下文
  4. 04通过判定测试预期行为
  5. 05验证清单并构建发布版本

适用场景

  1. 01从模板创建浏览器扩展
  2. 02在运行中的浏览器里调试扩展
  3. 03检查扩展在不同浏览器中的行为
  4. 04构建扩展并提交审核

MCP 相关

向 MCP 客户端提供创建、运行、检查、测试和构建浏览器扩展的工具。可选的平台工具支持预览、分享、发布版本和提交应用商店审核。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"extensiondev": {
"command": "npx",
"args": [
"-y",
"@extension.dev/mcp"
]
}
}
}
启动命令npx -y @extension.dev/mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@extension.dev/mcp10.15.1

工具

23

收录的工具列表 · 更新于 今天

参数类型必填说明
installboolean否创建后安装依赖项
templatestring否extension.dev 目录中的模板 slug(例如 'react'、'ai-claude'、'content-vue')。extension_templates 可发现这些模板。
parentDirstring否要在其中创建项目的目录。默认为 MCP 服务进程的 cwd,而不是调用方的 cwd,因此如果你在意项目创建位置,请务必传入。别名:parent、into。
projectNamestring是扩展项目的名称(用作目录名)。别名:name。

详细介绍

@extension.dev/mcp Version Downloads Discord

为你的 AI Agent 装上浏览器扩展开发之手。35 个 MCP 工具,可在你的机器上搭建脚手架、运行、检查、调试、测试和构建跨浏览器扩展;另有平台通道(私有 Alpha),可用于分享和发布扩展。

Logo
claude mcp add extension-dev npx @extension.dev/mcp

兼容 Claude Code、Claude Desktop、Cursor 和任何 MCP 客户端。

extension.dev · 文档 · 模板 · Discord

为什么需要扩展专用 MCP 服务

扩展出错时往往毫无提示:内容脚本始终未注入、面板始终未打开、权限返回 undefined 却没有任何错误。这些工具让 Agent 能查看实时浏览器,从而基于证据进行调试,而不是凭空猜测。

  • 搭建脚手架:使用 templates.extension.dev 上的 50 多个模板,或为现有项目添加弹出窗口、侧边栏或内容脚本
  • 运行:在 Chrome、Firefox、Edge 和下方列出的所有浏览器中运行支持 HMR 的开发服务器;macOS 上还支持 Safari(暂不支持 HMR)
  • 查看:实时 DOM、来自所有扩展上下文的日志、chrome.storage 和已加载扩展列表
  • 操作:在任意上下文中执行代码、触发操作按钮和命令、重新加载扩展
  • 测试:声明对运行中扩展的预期,并分别获取判定结果
  • 发布:验证跨浏览器清单并构建生产版本。在平台通道上,还可分享预览链接、推广构建版本并提交至应用商店

基于 Extension.js 构建,这是 extension.dev 赞助的开源框架。

查看运行效果

收到运行扩展的请求后,Agent 启动开发会话,Chrome 打开并加载扩展,随后 Agent 报告会话状态;画面来自真实的 Claude Code 会话

浏览器

extension_dev 会在你指定的浏览器中打开扩展。

ChromeChromiumEdgeBraveOperaFirefoxSafari
Google ChromeChromiumMicrosoft EdgeBraveOperaMozilla FirefoxApple Safari

Chromium 系浏览器和 Firefox 支持 HMR、控制、eval、检查和断言(Firefox 通过其调试器协议和 Agent 桥接实现,不使用 CDP)。Safari 在 macOS 上支持开发和构建,但不支持 HMR 和检查;其支持功能的完整列表见 Safari。此外还支持 Vivaldi、Yandex、Waterfox、Zen 和 Floorp,以及通过路径指定的任何 Chromium 或 Gecko 二进制文件。

客户端

Claude CodeClaude DesktopCursorVS CodeCodex
Claude CodeClaude DesktopCursorVS CodeCodex

设置

Claude Code
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
Cursor

安装 MCP 服务

或者将下面的 .mcp.json 代码块粘贴到 .cursor/mcp.json。

VS Code
code --add-mcp '{"name":"extension-dev","command":"npx","args":["@extension.dev/mcp","--features=local,platform"]}'

或者将其粘贴到 servers 下的 .vscode/mcp.json 中,并在条目中添加 "type": "stdio"。

Codex
codex mcp add extension-dev -- npx @extension.dev/mcp --features=local,platform

或者将其写入 ~/.codex/config.toml,作为 [mcp_servers.extension-dev] 表,并使用相同的 command 和 args。

其他客户端(Claude Desktop 和 .mcp.json)

.mcp.json:

{
  "mcpServers": {
    "extension-dev": {
      "command": "npx",
      "args": [
        "@extension.dev/mcp",
        "--features=local,platform"
      ]
    }
  }
}
标志
  • 默认情况下,服务会公开其在这台机器上可用的 35 个工具中的 24 个(11 个平台工具处于关闭状态)。--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 会向 us.i.posthog.com 发送一个 draft_seeded 事件(模板标识、来源和提交、每个进程随机生成的会话 ID;绝不包含路径或名称),平台工具则会在调用时发送一个每次安装的 ID 标头。设置 EXTENSION_DEV_NO_TELEMETRY=1 或 DO_NOT_TRACK=1 可同时停止这两项。完整载荷见遥测。

搭配技能使用

此服务为 Agent 提供操作能力;@extension.dev/skill 则为其提供判断力:跨浏览器规则、静默失败的注意事项、调试指南和商店检查清单,采用开放的 Agent Skills 格式。此软件包还附带 Claude Code 规则,以及 claude/ 下的四个斜杠命令。

npm i -D @extension.dev/skill
mkdir -p .claude/skills && cp -R node_modules/@extension.dev/skill/skills/extension-dev .claude/skills/

工具

默认启用、且在这台机器上可用的 24 个工具:

层级工具描述
buildextension_create根据模板生成脚手架
buildextension_templates浏览 50+ 个模板(list),并读取其中一个的源代码(source)
buildextension_docs_search按关键字搜索 Extension.js 和 extension.dev 文档
buildextension_add_feature为现有项目规划选项页面、弹出窗口、侧边面板、内容脚本、开发者工具面板或新标签页
buildextension_build构建生产版本
runextension_dev支持 HMR 的开发服务器
runextension_start构建并启动生产版本(build: false 会启动现有的 dist;outputPath 会启动任意预先构建的未打包目录)
runextension_wait轮询开发服务器的就绪契约
runextension_stop停止 dev/start/preview 会话(服务器 + 浏览器)
seeextension_manifest_validate跨浏览器清单验证
seeextension_analyze对磁盘上已构建的扩展进行静态分析
seeextension_inspect对运行中的扩展进行深入实时检查(封闭的 shadow root、探针)
seeextension_dom_snapshot通过 Agent 桥接,对选定标签页或扩展界面进行浅层 DOM 快照
seeextension_screenshot截取已打开的扩展界面或页面,并通过会话的调试端口保存为 .png
seeextension_list_extensions列出已加载的扩展(Chromium 和 Firefox)
seeextension_logs从所有上下文流式传输日志
seeextension_doctor逐项诊断开发会话(就绪契约、端口、令牌、执行器、浏览器)
seeextension_theme_verify根据 Chrome 实际渲染的颜色验证 Chrome 主题清单
testextension_assert对运行中的扩展声明状态预期,并分别获得一个判定:通过、失败或无法确定
actextension_eval在某个上下文中执行求值(extension_dev 需要设置 allowEval: true)
actextension_storage读取/写入 chrome.storage
actextension_reload重新加载扩展或标签页
actextension_open打开界面(弹出窗口、选项、侧边栏、开发者工具面板、覆盖页面)/触发 action、command
browsersextension_browsers检测、列出、安装和卸载浏览器

使用 --features=local,platform 时,其中有 11 个会访问 extension.dev 平台(私有 Alpha 版):

层级工具描述
platformextension_auth在 extension.dev 上通过设备登录单个项目或项目列表,并查看登录状态和退出登录
platformextension_workspace_create通过设备审批,以无头方式创建 extension.dev 工作区;审批者将成为其所有者
platformextension_project_create为已构建的扩展创建 extension.dev 项目,或通过一次设备审批以无头方式创建多个项目
platformextension_preview_web在网页模拟器中渲染构建产物,并生成可分享的链接
platformextension_shares列出你分享过的所有链接,将平台构建产物分享为链接,并永久撤销链接
platformextension_publish为 extension.dev 已持有的构建产物生成可分享的链接(不会上传任何内容)
platformextension_release_promote以无头方式将构建产物推送到发布渠道
platformextension_submit通过 extension.dev 提交至商店审核:Chrome、Firefox、Edge 和 Safari
platformextension_release_status查看发布渠道、发布历史、近期构建产物,以及商店配置、提交和审核状态
platformextension_builds查看平台上的构建产物(近期构建产物、单个构建产物的制品和完整性信息、其 CI 日志);根据完整性报告验证后将构建包保存到磁盘;启动重新构建;在所有者令牌下通过普通调用更改构建设置;以及添加发布渠道
platformextension_workspace使用任一项目登录信息查看工作区:套餐和限额、项目及其最近的构建产物、用量,以及项目设置

开发会话包含控制通道,extension_storage、extension_reload、extension_open 和 extension_dom_snapshot 都通过该通道运行:它仅限本地、同一台机器、同一用户,并且默认开启,除非调用 extension_dev 时设置 allowControl: false。extension_eval 是唯一默认关闭的入口,只有在调用 extension_dev 时传入 allowEval: true 才会开启(这也会启用控制通道)。再次调用不会更改会话的开关:如需更改,请使用所需参数再次调用 extension_dev 并传入 replace: true,这会停止第一个会话。

断言,而非猜测

其他每个工具都会返回一条读数。extension_assert 用于声明预期并返回判定结果。

有人询问扩展是否可用后,Agent 运行扩展、声明预期,并在真实的 Claude Code 会话中逐项读取判定结果

{
  "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" }
  ]
}

每项检查都会返回 pass、fail 或 inconclusive,只有所有检查都通过,整个运行才算通过。inconclusive 表示该平台目前无法验证这个问题;检查结果会附带 settledBy,指出哪些证据可以回答该问题:内容脚本只有在自己写入的行上才会通过;对于从未构建过的会话,“没有控制台错误”这一检查结果为 inconclusive;如果会话拒绝读取(在使用 allowControl: false 启动的会话中读取 chrome.storage),结果也会是 inconclusive,而非失败。

Safari

Safari 开发会话与其他引擎使用同一座桥:在 Extension.js 4.1.21 或更高版本上,使用 browser: "safari" 调用 extension_dev(需 macOS 和 Xcode),即可构建应用、打开应用、在每次保存时重新加载,并串流日志。Safari 的 MV3 后台 CSP 会阻止 eval;extension_inspect 没有 CDP 或 RDP 路径;打开标签页则需要 safaridriver 会话。相关限制列于 Safari。

Platform(私有 Alpha)

这 11 个平台工具可将 Agent 连接到 extension.dev。只有在启动服务时使用 --features=local,platform,这些工具才会启用;分享、发布、推广和提交都需要登录:

npx @extension.dev/mcp login --project <workspace>/<project>

你可以在 extension.dev/device 批准代码;GitHub 令牌不会传到你的机器上,项目级令牌会存储在本地,不会返回给 Agent,且最长有效期为 7 天。extension_preview_web 使用 share: true 时,会上传刚刚构建的内容,并返回一个链接,用于在网页模拟器中渲染这些字节,同时提供其 expiresAt 和 revokeUrl。extension_publish 会返回 extension.dev 已保存构建的可分享 URL;extension_submit 会通过 extension.dev 将已构建的扩展提交审核,extension.dev 会保管你的商店凭据,且该工具默认执行试运行。

Chrome 网上应用店Firefox 附加组件Edge 附加组件App Store
Chrome 网上应用店Firefox 附加组件Edge 附加组件App Store

详情、审批流程以及多个项目的批量登录,请参阅分享进行中的构建、发布不等于提交和登录。

社区

  • 加入 extension.dev 的 Discord,获取帮助并提供反馈
  • 在 templates.extension.dev 浏览可用于生产环境的模板
  • 在 GitHub 关注该平台的公开软件包
  • 在 GitHub 报告 Extension.js 框架问题

许可证

Apache-2.0,版权所有 © 2026 Cezar Augusto 和 extension.dev 合作者。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。