3.8 KiB
3.8 KiB
browser-mcp-gateway
把本机的 browser-mcp(Chrome 扩展 + 本地 stdio MCP server)桥接到局域网,让其他主机远程驱动这台机器上的 Chrome 浏览器,用于网页爬取、自动化操作等场景。
架构
本机 MCP client ──stdio──┐
├─→ 本机 WS 中枢(127.0.0.1:9876) ─→ Chrome 扩展 ─→ Chrome
局域网主机 ──HTTP──→ 本网关 ──stdio──┘ (gateway 上游 spawn browser-mcp)
网关内部 spawn 一个 browser-mcp stdio 进程作为上游(自动重连),对外在同一端口暴露两类接口,所有接口均需 Bearer 认证(也支持 ?token= 查询参数)。
接口
| 路径 | 说明 |
|---|---|
GET / |
HTML 使用说明页(含示例地址设置栏:默认当前访问 host:port,可自定义/重置) |
GET /docs |
HTML 格式 API 文档 |
GET /docs.json |
JSON 格式 API 文档(浏览器访问自动渲染为高亮 HTML,curl 获取原始 JSON) |
POST /mcp |
MCP Streamable HTTP 端点(无状态,仅 POST),供 MCP client 接入 |
GET /api/health |
存活与上游状态 |
GET /api/tools |
列出全部浏览器工具 |
POST /api/call |
调用工具,body:{"name": "工具名", "arguments": {...}} |
快速开始
npm install
echo "你的token" > token.txt # 或使用环境变量 GATEWAY_TOKEN
npm start # 或双击 start-gateway.bat
默认监听 0.0.0.0:9109。
配置项(环境变量)
| 变量 | 默认值 | 说明 |
|---|---|---|
PORT |
9109 |
监听端口 |
HOST |
0.0.0.0 |
监听地址 |
GATEWAY_TOKEN |
读取 token.txt |
Bearer 认证 token |
BROWSER_MCP_CLI |
%APPDATA%\npm\node_modules\@agent360\browser-mcp\bin\cli.js |
上游 browser-mcp 入口 |
使用
REST API(curl / 脚本)
TOKEN=你的token
curl -s http://10.1.1.6:9109/api/call \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"browser_navigate","arguments":{"url":"https://example.com"}}'
MCP client(Kimi Code)
~/.kimi-code/mcp.json 的 mcpServers 中加入(保存后新建会话生效):
"browser-remote": {
"url": "http://10.1.1.6:9109/mcp",
"headers": { "Authorization": "Bearer 你的token" }
}
Claude Code
claude mcp add --transport http browser-remote http://10.1.1.6:9109/mcp \
--header "Authorization: Bearer 你的token"
注意事项
- 浏览器在网关所在机器上:远程调用驱动的是本机 Chrome(Cookie、登录态共享),需保持 Chrome 的 browser-mcp 扩展处于连接状态。
- 会话隔离:每个 MCP client 获得独立的浏览器会话(各自开标签页),互不干扰;但同一标签页不要两边同时操作。
- 防火墙:Windows 需放行端口,建议限制来源网段(管理员 PowerShell):
New-NetFirewallRule -DisplayName "browser-mcp-gateway" -Direction Inbound -Protocol TCP -LocalPort 9109 -RemoteAddress 10.1.1.0/24 -Action Allow - 截图路径限制:
browser_screenshot的path参数只能写在网关进程工作目录内(browser-mcp 的安全限制),远程调用请传相对路径。 - Token 即全部权限:请勿泄露到不可信网络;
token.txt已加入.gitignore。 - 持久化运行可挂到 Windows 任务计划程序(开机执行
start-gateway.bat)。
文件
gateway.js # 网关主程序:HTTP 服务 + 认证 + stdio 上游管理 + MCP 代理
pages.js # /、/docs、/docs.json 三个页面的 HTML/JSON 渲染
package.json # 仅依赖 @modelcontextprotocol/sdk
token.txt # Bearer token(gitignore)
start-gateway.bat # Windows 启动脚本