专项能力 / Specialized
MCP 服务器
chrome-use mcp 起一个 stdio Model Context Protocol 服务器,
给那些只会说 MCP、不能跑 shell 命令的宿主用——Claude Desktop、ChatGPT connector、n8n、Dify。
能跑 shell 的编码 agent(Claude Code、Cursor、Codex)请继续用技能 + CLI:更轻量,
直接调用二进制不用绕一层协议。MCP 是专门留给「说 MCP 但不能 shell out」的那类宿主的。
chrome-use snapshot -i 这类命令。
只能通过 MCP 协议接入、没有 shell 的宿主(Claude Desktop、ChatGPT connector、n8n/Dify 的
MCP 节点)——用这一页的 chrome-use mcp。
12 个核心工具
MCP 服务器暴露一套精简的核心 profile:12 个有类型的工具,覆盖打开页面、
读取、快照、交互和导航。每一次工具调用都会转发给同一个 chrome-use 二进制的
--json 模式——底层能力和用 CLI 是完全一样的一套。
| 工具 | 作用 |
|---|---|
chrome_use_open | 打开一个 URL / 新标签 |
chrome_use_read | 把当前标签或某个 URL 读成 agent 可读文本 |
chrome_use_snapshot | 拉取结构化、带 @ref 的可访问性快照 |
chrome_use_click | 按选择器 / @ref 点击 |
chrome_use_fill | 清空后填入表单字段 |
chrome_use_type | 在现有内容后追加输入 |
chrome_use_press | 按一个键或组合键 |
chrome_use_eval | 在页面里执行 JavaScript |
chrome_use_wait | 等待某个条件或超时 |
chrome_use_back | 后退一页 |
chrome_use_forward | 前进一页 |
chrome_use_reload | 刷新当前页 |
扩展 profile:--tools all
默认的 12 个工具够大多数任务用了。需要更多能力时加 --tools all,
把 profile 从 12 个扩到24 个工具——核心 12 个之外,再加上下面这些
(仍不是完整的 CLI 全集):
| 工具 | 作用 |
|---|---|
chrome_use_hover | 把鼠标悬停到某个元素上 |
chrome_use_select | 选中 <select> 下拉项 |
chrome_use_screenshot | 截图(仅作输出,不作为读取手段) |
chrome_use_scroll | 滚动页面或某个容器 |
chrome_use_tabs | 列出 / 切换本会话的标签 |
chrome_use_extract | 按 schema 把页面抓成结构化 JSON |
chrome_use_expect | 断言某个条件,不满足即报错 |
chrome_use_find | 按文本 / URL 定位元素或标签 |
chrome_use_network_route | 拦截 / 改写网络请求 |
chrome_use_site | 跑社区站点适配器做结构化提取 |
chrome_use_upload | 给文件输入框上传文件 |
chrome_use_download | 触发并抓取一次下载 |
# 24 工具扩展 profile
$ chrome-use mcp --tools all
启动服务器
mcp 是 chrome-use 的一个子命令,跟其他命令一样在 PATH 上就有。
# 起一个 stdio MCP 服务器(宿主会替你拉起这个进程)
$ chrome-use mcp
在 Claude Desktop 里配置
编辑 Claude Desktop 的 MCP 配置文件,加一个 chrome-use server:
{
"mcpServers": {
"chrome-use": {
"command": "chrome-use",
"args": ["mcp"]
}
}
}
chrome-use 不在 Claude Desktop 启动时能看到的 PATH 上,把
command 换成二进制的绝对路径(例如 which chrome-use
的输出)。改完配置后重启 Claude Desktop 才会生效。
chrome-use mcp 只说 stdio——宿主拉起这个进程、用标准输入输出通信。
能按 command + args 拉起本地进程的宿主(Claude Desktop、n8n)直接接就行。
但 ChatGPT 的 connector 和 Dify 只认远程 HTTP/SSE 的 MCP 端点,不会替你拉起本地进程——
它们连不了裸的 stdio 服务器,得先用一层桥把 stdio 转成 HTTP/SSE(见下)。
接入 n8n
n8n 的 MCP Client 节点能按命令拉起一个 stdio server,配置和 Claude Desktop 是同一套——
命令填 chrome-use(或它的绝对路径),参数填 mcp:
# Command
chrome-use
# Arguments(扩展 profile 就写 mcp --tools all)
mcp
接入 ChatGPT connector / Dify(需要 HTTP 桥)
这两个宿主只接受一个远程 MCP 端点的 URL,不会拉起本地进程。用一个 stdio→SSE 的桥
(比如 supergateway)把 chrome-use mcp 包成一个 HTTP/SSE 端点,
再把那个 URL 填进宿主的 MCP / connector 配置:
# 把 stdio 服务器暴露成本机的 SSE 端点
$ npx -y supergateway --stdio "chrome-use mcp" --port 8000
# 端点:http://localhost:8000/sse —— 填进 connector / Dify 的 MCP 配置
supergateway 是第三方通用工具,chrome-use 不捆绑它。ChatGPT connector 还要求端点
可被公网访问(本机地址得先过一层隧道),并且桥所在的机器要能连上你真实的 Chrome——
因为最终干活的还是本机那套扩展 + 原生消息路径。
工作原理
MCP 服务器是手写的 JSON-RPC over stdio,没有引入额外依赖。每个工具
调用被翻译成对同一个 chrome-use 二进制的 --json 模式调用,再把结果
包回 MCP 的响应格式。安装、浏览器扩展连接、真实 Chrome 的那一整套逻辑完全不变——
MCP 只是换了一层协议外壳。
chrome-use mcp 本身不解决「怎么连你的浏览器」——那部分仍然靠
安装 里的浏览器扩展。先按那一页把扩展装好、确认能跑通
chrome-use snapshot -i,再把 MCP 服务器接进宿主。
会话隔离:session 参数
每个工具都收一个可选的 session 参数,映射到 CLI 的 --session <name>。
不传就都走同一个默认会话——同一个宿主里连续几次调用共享一个后台守护进程、
一组标签页,上一步的导航和登录状态下一步还在。要并行跑互不干扰的流程,就给不同的流程传不同的
session 名,各自拿到独立的守护进程和标签组。守护进程空闲 10 分钟自动退出并关掉自己
建的标签页(AGENT_BROWSER_IDLE_TIMEOUT_MS 可调,0 关闭)。
batch
一个来回跑完;要在步骤之间传值、加循环和条件判断,用
单次脚本(script)——目前它是 CLI 动词、还没进 MCP 的工具集,
但在 MCP 里如果想把多步逻辑压进一次调用,可以走 chrome_use_eval 在页面里跑一段
JavaScript。原理见 单次脚本。