Chrome中的克劳德——本地MCP
一个MCP服务器,用本地Unix套接字替换Chrome扩展程序中与Claude的WSS连接。 支持多个同时进行的客户端连接,并可与任何MCP客户端配合使用。
Chrome连接问题中的克劳德(#20298) --用不同的方法解决。
- 无WSS --未通过
bridge.claudeusercontent.com - 始终连接到本地Chrome --无跨设备不匹配(#25551)
- 同时连接数 --单个本机主机为多个客户端提供服务
- 适用于任何MCP客户端 --不限于克劳德桌面/代码
- Claude桌面+代码共存 --避免本地主机冲突(#20887)
建筑
Standard: Claude Desktop / Code --WSS--> bridge.claudeusercontent.com --WSS--> chrome-native-host --stdio--> Chrome
This project: Claude Desktop / Code --stdio--> claude-code-chrome-mcp --Unix socket--> chrome-native-host --stdio--> Chrome______________________________________________________________________
设置
claude --chrome # 1. Initialize the native host (first time only)
git clone https://github.com/mimimiku778/claude-in-chrome-local-mcp.git
cd claude-in-chrome-local-mcp
./install-local-mcp.sh # 2. Register MCP server & disable Claude Desktop's native host仅限Linux(可选): 为Claude Desktop启用Chrome中的标准Claude(WSS):
./install-standard.sh # requires sudo for symlinkMCP服务器(claude-code-chrome-mcp)从这个克隆的目录运行。请勿将其移除。
安装后重新启动Claude Desktop。 如果稍后安装Claude Desktop,请重新运行 ./install-local-mcp.sh.
先决条件
- macOS/Linux
- 克劳德代码
- 谷歌Chrome浏览器+ Chrome扩展程序中的Claude
- Python 3.10+
- 克劳德桌面(可选)
Claude Desktop的官方Linux版本不可用。使用 克劳德桌面debian.
______________________________________________________________________
脚本
| 脚本 | 它的作用 |
|---|---|
install-local-mcp.sh | 登记簿 claude-code-chrome-mcp 作为MCP服务器。重写本机消息清单以使用Claude Code的二进制文件。 |
install-standard.sh | 仅限Linux。 启用Chrome for Claude Desktop中的标准内置Claude(本机消息清单+符号链接) |
uninstall.sh | 删除上述脚本安装的所有内容 |
claude-code-chrome-mcp | MCP服务器--将MCP协议转换到本地主机的Unix套接字或从本地主机的Unix套接字转换MCP协议 |
卸载
./uninstall.sh______________________________________________________________________
故障排除
- 扩展未连接 --奔跑
claude --chrome验证本机主机设置
- 本地MCP不工作 --检查
ls /tmp/claude-mcp-browser-bridge-$USER/和~/.config/Claude/logs/claude-code-chrome-mcp.log
- 未检测到标准连接器(Linux) --检查
ls -la /usr/lib/claude-desktop/node_modules/electron/dist/resources/chrome-native-host
______________________________________________________________________
背景:Chrome中Claude的已知问题
Chrome中的克劳德 通过Anthropic的WSS中继连接到克劳德桌面/Claude Code(bridge.claudeusercontent.com).自发布以来,已经报告了几类问题。
浏览器定位——无法选择哪个浏览器
WSS中继可以路由到同一帐户上的任何Chrome,导致多设备局域网上的浏览器连接错误。
| 日期 | 发布 |
|---|---|
| 2025-12-18 | #14536 允许选择浏览器,而不是打开默认浏览器 |
| 2025-12-23 | #15125 支持针对特定的Chrome实例/配置文件 |
| 2026-02-13 | #25551 --chrome 连接到LAN上的错误浏览器 |
本地主机冲突——克劳德桌面与克劳德代码
两者都为同一个扩展程序ID注册了一个本地消息主机。Chrome只能使用一个,因此最后安装的主机获胜。
| 日期 | 发布 |
|---|---|
| 2026-01-23 | #20341 Claude Desktop原生主机拦截Chrome扩展程序 |
| 2026-01-26 | #20887 扩展连接到Claude Desktop而不是Claude Code |
连接失败
| 日期 | 发布 |
|---|---|
| 2026-01-23 | #20298 浏览器扩展未连接(macOS) |
| 2026-01-26 | #21033 沙盒阻止本地消息套接字(macOS) |
| 2026-02-06 | #23539 未在Windows上连接 |
| 2026-02-08 | #24192 从未在Linux上创建套接字(ENOENT) |
| 2026-02-10 | #24593 持续无法连接(macOS) |
______________________________________________________________________
技术细节
这个项目是如何运作的
Chrome原生消息生成 chrome-native-host,它创建了一个本地Unix套接字:
/tmp/claude-mcp-browser-bridge-{USER}/{PID}.sock此项目直接连接到该套接字。 这就是在本地控制Chrome所需要的一切。
为什么标准路径使用WSS继电器
chrome-native-host 不仅创建本地Unix套接字,还通过WSS连接到Anthropic的外部服务器 bridge.claudeusercontent.com标准MCP服务器连接到同一服务器,中继桥接两者:
MCP server --WSS--> bridge.claudeusercontent.com chrome-native-host
(stays on the same machine)以下内容是从Claude Code v2.1.42捆绑二进制文件重建的(Claude Desktop也使用此代码)。
本地主机(runChromeNativeHost,由Chrome生成)创建本地Unix套接字:
// chrome-native-host — process spawned by Chrome
this.server = net.createServer((socket) => this.handleMcpClient(socket));
this.server.listen(this.socketPath, () => { // /tmp/claude-mcp-browser-bridge-{USER}/{PID}.sock
fs.chmodSync(this.socketPath, 0o600);
});MCP服务器(runClaudeInChromeMcpServer)可以连接到此套接字,但当启用功能标志时,它会重定向到外部WSS中继:
function getBridgeUrl() {
// Fetched from LaunchDarkly (remote feature flag service)
// Second arg (false) is the offline fallback only — normally returns true
if (!getFeatureFlag("tengu_copper_bridge", false)) return;
return "wss://bridge.claudeusercontent.com";
}
let bridgeUrl = getBridgeUrl();
let config = {
socketPath: getSocketPath(), // ← local Unix socket (same machine only)
clientTypeId: "claude-code",
...bridgeUrl && { bridgeConfig: { url: bridgeUrl, ... } },
// ↑ when bridgeUrl exists, WSS relay (Anthropic's external server, enables cross-device) takes priority
};本地套接字代码存在,但从未使用过——LaunchDarkly总是返回 true,因此WSS中继优先。此项目绕过该标志并直接连接到套接字。
