Chrome extension bridge connection fails on Windows - MCP server uses wrong socket path
Environment:
- Claude Code version: 2.1.37
- Chrome extension version: 1.0.47 (extension ID: fcoeoabgfenejglbffodgkkbkcdhcgfn)
- OS: Windows 11
- Shell: PowerShell (Claude Code uses Git Bash internally)
Description:
The Claude in Chrome MCP server cannot connect to the Chrome extension's native messaging host on Windows because they use different socket/pipe paths. The native host creates a Windows named pipe, but the MCP server attempts to connect using Unix-style
socket paths that don't exist.
Native host behavior:
When Chrome launches the native host (claude.exe --chrome-native-host), it creates a Windows named pipe at:
\\.\pipe\claude-mcp-browser-bridge-{username}
This pipe is confirmed to exist via [IO.Directory]::GetFiles("\\.\pipe\").
MCP server behavior:
When the MCP server executes a tool call (e.g., tabs_context_mcp), it attempts to connect to two paths, neither of which exist on Windows:
C:\Users\{username}\AppData\Local\Temp\claude-mcp-browser-bridge-{username}
/tmp/claude-mcp-browser-bridge-{username}
Both fail with ENOENT (error code -4058), and after a 5-second timeout the server reports "No connected sockets in pool" and returns "Browser extension is not connected."
Relevant debug log output (from bridge log file):
[Claude in Chrome] Executing tool: tabs_context_mcp
[Claude in Chrome] Adding socket to pool: C:\Users\eganh\AppData\Local\Temp\claude-mcp-browser-bridge-eganh
[Claude in Chrome] Adding socket to pool: /tmp/claude-mcp-browser-bridge-eganh
[Claude in Chrome] Attempting to connect to: C:\Users\eganh\AppData\Local\Temp\claude-mcp-browser-bridge-eganh
[Claude in Chrome] Attempting to connect to: /tmp/claude-mcp-browser-bridge-eganh
[Claude in Chrome] Socket error (code: ENOENT): Error: connect ENOENT C:\Users\eganh\AppData\Local\Temp\claude-mcp-browser-bridge-eganh
[Claude in Chrome] Socket error (code: ENOENT): Error: connect ENOENT /tmp/claude-mcp-browser-bridge-eganh
[Claude in Chrome] No connected sockets in pool
[Claude in Chrome] Server is connected: false.
Expected behavior:
The MCP server should include \\.\pipe\claude-mcp-browser-bridge-{username} in its socket pool on Windows, matching the path the native host actually creates.
Notes:
- The MCP server itself initializes correctly: MCP server "claude-in-chrome": Connection established with capabilities: {"hasTools":true,...}
- The native host manifest, registry entries, and extension detection all work correctly
- The /chrome CLI command successfully detects the extension and opens a tab group, but the bridge between the MCP server and native host never connects
- Fresh reinstall of the extension does not resolve the issue (since the bug is in the path resolution)
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗