Token导航 LogoToken导航TokenDH.com
Chrome Extension MCP Bridge logo
浏览器工具未说明官方级别未说明来源级核验

Chrome Extension MCP Bridge

MCP Server

通过MCP协议、Chrome扩展和WebSocket桥接实现AI代理控制浏览器操作的工具,适用于自动化测试和网页交互场景。

工具数

6

提示词数

0

GitHub Stars

1

资源数

0
浏览器自动化JavaScriptClaudeClaude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ivoglent

提供方

ivoglent

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Chrome扩展程序MCP桥

AI代理通过MCP协议+Chrome扩展+WebSocket桥控制Chrome浏览器

建筑

[AI Agent]
    ⇅ (MCP Tools via stdio)
[Node.js App — MCP Server + WebSocket Server]
    ⇅ (WebSocket on port 7890)
[Chrome Extension (Manifest V3)]
    ⇅ (chrome.* APIs)
[Browser Tabs]

运作原理

  1. AI 代理 调用MCP工具(例如。, capture_screenshot, execute_js)通过MCP协议(stdio传输)
  2. Node.js服务器 接收MCP工具调用,生成 requestId,并通过WebSocket向Chrome扩展程序发送JSON命令
  3. Chrome 扩展 (service worker)接收命令,使用Chrome API执行浏览器操作,并返回具有相同内容的JSON响应 requestId
  4. Node.js服务器 解析待定的Promise并将结果返回给AI代理

______________________________________________________________________

项目结构

/chrome-extension-mcp
├── extension/                  # Chrome Extension (Manifest V3)
│   ├── manifest.json           # Extension manifest
│   ├── background.js           # Service worker — WS client + action handlers
│   └── content.js              # Content script (placeholder)
├── server/                     # Node.js backend
│   ├── index.js                # Entry point — starts WS + MCP servers
│   ├── wsServer.js             # WebSocket server — client management + command dispatch
│   ├── mcpServer.js            # MCP server — tool registration via @modelcontextprotocol/sdk
│   ├── cli.js                  # CLI tool for testing commands
│   ├── tools/                  # MCP tool definitions
│   │   ├── captureScreenshot.js
│   │   ├── getHtml.js
│   │   ├── executeJs.js
│   │   ├── openTab.js
│   │   ├── listTabs.js
│   │   └── closeTab.js
│   └── package.json            # Server dependencies
├── package.json                # Root scripts
└── README.md                   # This file

______________________________________________________________________

MCP工具

工具描述输入
capture_screenshot以base64 PNG格式捕获选项卡屏幕截图{ tabId?, title? }
get_html获取页面的完整HTML源代码{ tabId? }
execute_js在页面上下文中执行JavaScript{ tabId?, script }
open_tab打开新的浏览器选项卡{ url }
list_tabs列出所有打开的选项卡{}
close_tab按ID关闭选项卡{ tabId }

其他扩展操作(可通过CLI/Webocket获得)

动作描述有效载荷
focus_tab聚焦/激活选项卡{ tabId }
get_text从页面中提取可见文本{ tabId? }
get_element通过CSS选择器获取元素{ tabId?, selector }

______________________________________________________________________

通信协议

请求(服务器→ 扩展)

{
  "requestId": "550e8400-e29b-41d4-a716-446655440000",
  "action": "capture_screenshot",
  "payload": {
    "tabId": 123
  }
}

响应(扩展→ 服务器)

{
  "requestId": "550e8400-e29b-41d4-a716-446655440000",
  "success": true,
  "data": {
    "tabId": 123,
    "format": "png",
    "base64": "iVBORw0KGgo..."
  },
  "error": null
}

错误响应

{
  "requestId": "550e8400-e29b-41d4-a716-446655440000",
  "success": false,
  "data": null,
  "error": "No active tab found"
}

______________________________________________________________________

安装说明

先决条件

  • Node.js v18+(建议使用LTS)
  • 谷歌浏览器 浏览器
  • npm 包管理器

1.安装服务器依赖关系

cd server
npm install

或者从项目根目录:

npm run install:server

2.启动Node.js服务器

服务器同时运行两个组件:

  • WebSocket服务器 在港口 7890 (可通过以下方式配置 WS_PORT 任何人)
  • MCP服务器 在stdio上(用于AI代理通信)
cd server
node index.js

或者从项目根目录:

npm start

您应该看到:

[WS] WebSocket server attached to HTTP server
[Server] HTTP + WebSocket server listening on port 7890
[MCP] Server started on stdio transport

3.加载Chrome扩展程序

  1. 打开Chrome浏览器并导航到 chrome://extensions/
  2. 启用 开发人员模式 (在右上角切换)
  3. 点击 “未包装装载”
  4. 选择 extension/ 此项目中的文件夹
  5. 扩展将加载并自动连接到WebSocket服务器

您可以验证连接:

  • 打开扩展的服务工作者控制台(在扩展页面上单击“检查视图:服务工作者”)
  • 您应该看到: [MCP Extension] Connected to server

4.验证健康检查

curl http://localhost:7890/health

预期响应:

{
  "status": "ok",
  "connectedClients": 1,
  "clients": [""]
}

______________________________________________________________________

测试MCP工具

使用CLI工具

CLI工具直接连接到WebSocket服务器,并向扩展发送命令。

单命令模式

# List all open tabs
cd server
node cli.js list_tabs

# Open a new tab
node cli.js open_tab '{"url":"https://www.google.com"}'

# Capture screenshot of active tab
node cli.js capture_screenshot

# Capture screenshot by tab title
node cli.js capture_screenshot '{"title":"Google"}'

# Get HTML of active tab
node cli.js get_html

# Execute JavaScript
node cli.js execute_js '{"script":"return document.title"}'

# Close a tab (use tabId from list_tabs)
node cli.js close_tab '{"tabId":123}'

# Get visible text
node cli.js get_text

# Get element by selector
node cli.js get_element '{"selector":"h1"}'

交互模式

cd server
node cli.js

这将启动一个REPL,您可以在其中键入命令:

mcp> list_tabs
mcp> open_tab {"url":"https://github.com"}
mcp> capture_screenshot {"title":"GitHub"}
mcp> execute_js {"script":"return document.title"}
mcp> exit

与AI代理(MCP客户端)一起使用

配置您的MCP客户端(例如,Claude Desktop、Cursor等)以使用此服务器:

Claude桌面配置

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "chrome-browser": {
      "command": "node",
      "args": ["/absolute/path/to/chrome-extension-mcp/server/index.js"],
      "env": {
        "WS_PORT": "7890"
      }
    }
  }
}

光标配置

添加到您的 .cursor/mcp.json:

{
  "mcpServers": {
    "chrome-browser": {
      "command": "node",
      "args": ["/absolute/path/to/chrome-extension-mcp/server/index.js"],
      "env": {
        "WS_PORT": "7890"
      }
    }
  }
}

配置后,AI Agent将可以访问所有6个MCP工具来控制您的Chrome浏览器。

______________________________________________________________________

配置

环境变量

变量默认值描述
WS_PORT7890WebSocket+HTTP服务器端口
WS_URLws://localhost:7890WebSocket URL(仅限CLI)

扩展设置

WebSocket URL是硬编码的 extension/background.js:

const WS_URL = 'ws://localhost:7890';

如果您的服务器在其他主机/端口上运行,请更改此设置。

______________________________________________________________________

安全考虑

  1. 默认情况下仅限本地:WebSocket服务器绑定到 localhost。该扩展仅连接到 localhost.
  2. 没有明确的工具调用,就无法执行任意代码:The execute_js 工具需要明确的 script 参数——如果没有正确的请求,扩展将不会执行代码。
  3. 请求-响应相关性:每个命令都使用一个唯一的 requestId (UUID v4)以防止响应欺骗。
  4. 超时保护:命令在30秒后超时,以防止挂起。
  5. 客户端标识:每个扩展都用一个唯一的标识来标识自己 clientId 连接。

生产建议

  • 向WebSocket连接添加身份验证令牌
  • 限制 execute_js 进入允许脚本的白名单
  • 使用带有TLS证书的WSS(WebSocket安全)
  • 添加速率限制以防止滥用

______________________________________________________________________

错误处理

服务器端

  • 未连接客户端:退货 "No Chrome extension clients connected"
  • 请求超时:退货 "Request timed out after 30000ms"
  • 发送失败:退货 "Failed to send command: ..."

延伸侧

  • 未知动作:退货 "Unknown action: "
  • 缺少必填字段:退货 "Missing required field: "
  • 未找到选项卡:退货 "No tab found matching title: "
  • 脚本执行错误:从页面上下文返回错误消息

______________________________________________________________________

发展

调试扩展

  1. 首选 chrome://extensions/
  2. 查找“Chrome扩展程序MCP桥”
  3. 点击 “检查视图:服务人员” 打开DevTools
  4. 所有日志都以前缀 [MCP Extension]

调试服务器

所有服务器日志都转到 stderr (因此它们不会干扰MCP stdio通信):

  • [WS] --WebSocket服务器事件
  • [MCP] --MCP服务器事件
  • [Server] --常规服务器事件

添加新工具

  1. 在中创建新文件 server/tools/ 遵循现有模式
  2. 导出一个工厂函数,该函数需要 wsServer 并返回 { name, description, inputSchema, handler }
  3. 导入并注册 server/mcpServer.js
  4. 在中添加相应的操作处理程序 extension/background.js

______________________________________________________________________

故障排除

问题解决方案
扩展无法连接请确保服务器正在首先运行(node server/index.js)
“未连接Chrome扩展程序客户端”检查扩展程序是否已加载,服务工作程序是否处于活动状态
截图返回错误某些页面(chrome://,file://)不允许截图
execute_js失败某些页面具有阻止注入脚本的CSP限制
服务工作者处于非活动状态Chrome可能会暂停空闲的服务工作者;自动重新连接会处理此问题
端口7890已在使用中更改 WS_PORT 环境变量或终止现有进程

______________________________________________________________________

许可证

麻省理工学院

目录标签

目录标签

浏览器自动化JavaScriptClaude本地部署MCP协议WebSocket桥接Chrome扩展AI代理控制

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明nonelocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP