Chrome MCP: ENXIO error connecting to native host socket on Linux
Resolved 💬 3 comments Opened Feb 15, 2026 by tomsmithtld Closed Feb 19, 2026
Description
Chrome MCP (--chrome flag) fails to connect to the Chrome extension on Linux (Ubuntu 24.10, kernel 6.17.0-14-generic). The MCP server attempts to connect to the native host's Unix socket but gets ENXIO: no such device or address.
Environment
- OS: Ubuntu 24.10, Linux 6.17.0-14-generic
- Claude Code version: 2.1.42
- Chrome: Google Chrome 134.x with Claude extension v1.0.50
- Architecture: x86_64
Steps to Reproduce
- Start Claude Code with
--chromeflag - Open Chrome (Default profile) — extension activates, native host spawns
- Native host creates listening socket at
/tmp/claude-mcp-browser-bridge-<user>/<PID>.sock - Call any Chrome MCP tool (e.g.,
tabs_context_mcp) - Get: "Browser extension is not connected"
Debug Findings
From the debug log:
2026-02-15T10:13:43.445Z [ERROR] Error: ENXIO: no such device or address, open '/tmp/claude-mcp-browser-bridge-sirbob/206532.sock'
The error shows open() syscall on a Unix domain socket. Unix sockets require connect() (via net.connect() in Node.js), not open() (via fs.open()). The open() call on a socket file returns ENXIO.
Verified working:
- Native host process is running and listening on the socket (
ssshows LISTEN state) - Chrome extension is installed and active (nativeMessaging permission granted)
- Native messaging host manifest is correctly configured
- Socket file exists with correct permissions (
srw-------)
Verified broken:
- MCP server (PID for
--claude-in-chrome-mcp) has NO connection to the native host socket - MCP server is also NOT connected to
bridge.claudeusercontent.com(160.79.104.10) - MCP server has only one TCP connection to a Google Cloud IP (34.149.66.137:443)
- The ENXIO error occurs once and the MCP server does not retry
Expected Behavior
The MCP server should connect to the native host's Unix socket using a socket connection (not file open), and should retry if the initial connection fails.
Additional Context
- Starting Claude Code BEFORE Chrome means the socket doesn't exist at MCP server startup. The MCP server should poll for new sockets.
- The
config: ~/.claude.jsonhascachedChromeExtensionInstalled: trueandclaudeInChromeDefaultEnabled: true - Running
/chromecommand does not trigger a reconnect attempt
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗