内容
# yolo-chrome-mcp
将每个打开的 Chrome 标签页暴露给 MCP 服务器,以便 AI 可以浏览、调试和操作它们 — 使用您**已经登录**的 Chrome 会话。
- 17 种工具,涵盖标签页发现、截图、辅助树交互元素、控制台/网络/存储、点击/输入/滚动/导航、JS 评估。
- 分阶段工具设计 + 过滤默认值,以保持 AI 上下文紧密(参见 [docs/FEATURE_PLAN.md](docs/FEATURE_PLAN.md))。
- 标签页内的安全叠加层确认破坏性操作(表单提交、类似货币的标签、跨源导航、风险 `evalJs`)。
## 安装
**一条命令(Claude Code):**
```bash
npx -y yolo-chrome-mcp@latest setup
```
就这样。安装程序:
1. **将 MCP 服务器**注册到 Claude Code,名称为 `yolo-chrome`( `--scope user`,因此它在每个项目中都有效)。
2. **打开 `chrome://extensions`**,并将扩展程序文件夹路径复制到剪贴板 — 切换到“开发者模式”,点击“加载解压”,粘贴(`Cmd/Ctrl+V`),选择。
3. **安装 PreToolUse 路由钩子**(可选,提示)以阻止竞争浏览器工具(`Claude_in_Chrome`、`Control_Chrome`),因此 Claude 始终为 Chrome 操作使用此服务器。
4. **将路由规则追加到 `~/.claude/CLAUDE.md`**(可选,提示)以便 Claude 有明确的理由。用中文解释;否则为英文。
重新运行 `setup` 是幂等的。要稍后删除钩子和规则:`npx yolo-chrome-mcp uninstall-routing`。
**已经从 Chrome 网上应用商店安装了扩展程序?** 跳过“加载解压”步骤:
```bash
npx -y yolo-chrome-mcp@latest setup --routing-only
```
这是扩展程序弹出窗口显示的精确命令(带有“一键复制”按钮),当其状态点为红色时。它会自动将 MCP 服务器注册到 Claude Code 并运行路由设置,而无需重新打开 `chrome://extensions`。
### 其他客户端
- **Claude Desktop(MCPB 一键安装)** — 从 [Releases](https://github.com/rikutoe/yolo-chrome-mcp/releases) 下载最新的 `yolo-chrome-mcp-*.mcpb`,拖动到 Claude Desktop,然后通过 `chrome://extensions` → 加载解压,加载捆绑包的 `extension/` 文件夹。
- **从源代码(开发人员)**:
```bash
git clone https://github.com/rikutoe/yolo-chrome-mcp
cd yolo-chrome-mcp && npm install && npm run build
claude mcp add --scope user yolo-chrome -- node $(pwd)/server/dist/index.js
# 然后通过 chrome://extensions → 加载解压,加载 extension/dist
```
## 工作原理
```
Claude ⇄ stdio ⇄ MCP 服务器 (Node) ⇄ ws://127.0.0.1:8765 ⇄ Chrome 扩展程序 (MV3)
└── chrome.debugger (CDP) → 标签页
```
Chrome 扩展程序在您真实的 Chrome 配置文件中保持活动状态。MCP 服务器在每个 Claude 会话中启动,并通过 WebSocket 在本地连接 — 没有任何数据离开您的机器。
## 工具
| 工具 | 阶段 | 目的 |
|---|---|---|
| `listTabs` | 1 | 所有打开的标签页 |
| `getTabInfo` | 1 | 一个标签页的元数据 |
| `screenshot` | 2 | 视口截图(全页可选) |
| `getPageText` | 2 | 可见文本,分页 |
| `getInteractables` | 3 | 通过辅助树的可点击元素 |
| `getConsoleLogs` | 4 | 过滤后的控制台缓冲区 |
| `getNetworkActivity` | 4 | 过滤后的网络摘要 |
| `getNetworkRequest` | 4 | 一个请求,完整详细信息 |
| `getStorage` | 4 | cookie / localStorage / sessionStorage |
| `getSourceAt` | 5 | JS 源代码 ±N 行 |
| `click` / `type` / `scroll` | — | 通过 stableId 的 UI 操作 |
| `navigate` | — | 同标签页导航 |
| `evalJs` | — | 最后的 JS 评估 |
| `waitForStable` | — | 等待网络空闲 |
| `setSafetyMode` | — | `always` / `dangerous-only` / `off` |
## 安全叠加层
在 `dangerous-only` 模式(默认)下,扩展程序在 AI 尝试以下操作时,在标签页中显示黄色确认横幅:
- 点击标记为 `submit` / `delete` / `送信` / `削除` 的元素,或 `type=submit` 输入框,或文本匹配类似货币的模式(`¥`、`$`等)。
- 跨源导航
- 运行涉及 cookie、网络或存储的 `evalJs`
- 输入类似信用卡号码的内容
通过弹出窗口或 `setSafetyMode` 工具切换模式。
## 分发 / 发布
标记并推送:
```bash
git tag v0.2.0 && git push origin v0.2.0
```
发布工作流程构建,发布到 npm,并将 `*.mcpb` 和 `extension.zip` 附加到 GitHub 发布。
所需的存储库密钥:`NPM_TOKEN`。
## 许可证
MIT