浏览器mcp扩展
通过MCP(模型上下文协议)和HTTP API实现浏览器自动化,由Chrome扩展+Go二进制提供支持。
该系统有三个组成部分:
- Chrome扩展程序(MV3): 将脚本注入网页,并通过WebSocket与Go二进制文件通信。
- 转到二进制: 公开用于AI代理的MCP服务器(stdio)和用于curl/脚本的HTTP API。
- JS脚本: 页面级自动化脚本(单击、键入、导航、观察等)。
先决条件
- 转到1.24+
- 铬或铬
快速开始
# Build the binary
make build
# Wrap JS scripts into the extension (required before first run)
make sync-scripts加载Chrome扩展程序
- 打开
chrome://extensions/在Chrome浏览器中 - 启用“开发人员模式”
- 点击“加载解包”并选择
extension/目录
扩展通过配置端口上的WebSocket连接到Go二进制文件。 在任何MCP工具或HTTP端点工作之前,必须加载并连接扩展。
运行模式
# MCP server on stdio (for AI agents)
make mcp
# HTTP API + WebSocket server (for curl/scripting)
make serve使用Claude代码进行设置
创建一个 .mcp.json 要使用浏览器自动化的项目中的文件:
{
"mcpServers": {
"browser-automation": {
"command": "/absolute/path/to/browser-mcp-extension/browser-cmd",
"args": ["--mcp"]
}
}
}替换 /absolute/path/to/browser-mcp-extension/browser-cmd 以及构建二进制文件的实际路径。然后重新启动Claude Code以启动MCP服务器。
配置
所有配置都是通过环境变量进行的。看 env.example 对于违约。
| 变量 | 默认值 | 描述 |
|---|---|---|
WS_PORT | 9001 | Chrome扩展程序连接到的WebSocket端口 |
WS_TOKEN | _(空)_ | WebSocket身份验证的可选承载令牌 |
HTTP_PORT | 9082 | HTTP API服务器端口 |
JS_SCRIPTS_PATH | ./resources/js_scripts | JS脚本目录路径 |
OBSERVATIONS_DIR | _(空)_ | 页面快照目录。空=仅在内存中 |
MCP工具
在MCP模式下运行时可用的工具(./browser-cmd --mcp):
| 工具 | 说明 |
|---|---|
browser_navigate | 导航到URL |
browser_navigate_back | 返回浏览器历史记录 |
browser_snapshot | 捕获页面状态(交互元素、可见文本) |
browser_get_state | 获取当前页面的URL和标题 |
browser_click | 按索引单击元素 |
browser_type | 在元素中键入文本 |
browser_hover | 将鼠标悬停在元素上 |
browser_press_key | 按键盘键 |
browser_select_option | 在下拉列表中选择一个选项 |
browser_scroll | 滚动页面 |
browser_drag | 在元素之间拖放 |
browser_fill_form | 一次填写多个表单字段 |
browser_wait_for | 等待文本出现在页面上 |
browser_evaluate | 执行任意JavaScript |
browser_take_screenshot | 截图 |
browser_tabs | 列出、创建、选择或关闭选项卡 |
browser_execute_script | 执行一个命名的JS脚本 |
browser_list_scripts | 列出可用的JS脚本 |
HTTP API
HTTP API绑定到 127.0.0.1 只有。终点:
| 方法 | 路径 | 描述 |
|---|---|---|
| 得到 | /api/state | 当前页面状态 |
| 职位 | /api/observe | 运行观察脚本并返回快照 |
| 职位 | /api/execute | 执行命名脚本 |
| 职位 | /api/execute-raw | 执行原始JavaScript |
| 得到 | /api/scripts | 列出可用脚本 |
| 得到 | /api/screenshot | 截图 |
| 得到 | /api/tabs | 列出浏览器选项卡 |
发展
make test # Unit tests
make vet # Go vet
make e2e # E2E tests (runs headful Chromium via playwright-go)
make clean # Remove binary, observations, wrapped scripts
make help # Show all available commands