Skip to content

Opencode cannot use chrome-mcp via mcp-server-stdio on Windows (Failed to connect to MCP server) #319

@OldmanY

Description

@OldmanY

Summary

When using mcp-chrome-bridge with Opencode Desktop on Windows, the Chrome MCP service itself is healthy and reachable, but tool calls inside Opencode fail with Failed to connect to MCP server.

This appears to be a compatibility issue between Opencode and the mcp-server-stdio.js proxy layer from mcp-chrome-bridge.

Environment

  • OS: Windows
  • Client: Opencode Desktop
  • mcp-chrome-bridge: 1.0.31
  • Chrome extension shows the local service is running
  • Native host registration is successful

Opencode MCP config used

"chrome-mcp": {
  "type": "local",
  "enabled": true,
  "timeout": 20000,
  "command": [
    "node",
    "G:\Users\Y3387\npm-data\npm-global\node_modules\mcp-chrome-bridge\dist\mcp\mcp-server-stdio.js"
  ]
}

What was verified

1. mcp-chrome-bridge doctor is all green

mcp-chrome-bridge doctor v1.0.31
[OK] Installation: mcp-chrome-bridge@1.0.31, win32-x64, node v22.12.0
[OK] Host files: Wrapper: G:\Users\Y3387\npm-data\npm-global\node_modules\mcp-chrome-bridge\dist\run_host.bat
[OK] Node executable: Using node_path.txt: C:\Program Files\nodejs\node.exe (v22.12.0)
[OK] Chrome manifest: C:\Users\Y3387\AppData\Roaming\Google\Chrome\NativeMessagingHosts\com.chromemcp.nativehost.json
[OK] Chrome registry: Registry entry points to manifest
[OK] Port config: http://127.0.0.1:12306/mcp
[OK] Port constant: NATIVE_SERVER_PORT=12306
[OK] Connectivity: GET http://127.0.0.1:12306/ping -> 200
[OK] Logs: C:\Users\Y3387\AppData\Local\mcp-chrome-bridge\logs

2. Local service is reachable

  • 127.0.0.1:12306 is listening
  • GET /ping returns 200
  • GET /mcp responds, e.g.:
{"error":"Invalid or missing MCP session ID for SSE."}

This suggests the HTTP MCP endpoint is alive.

3. Native messaging registration is correct

Manifest exists at:
C:\Users\Y3387\AppData\Roaming\Google\Chrome\NativeMessagingHosts\com.chromemcp.nativehost.json

And points to:
G:\Users\Y3387\npm-data\npm-global\node_modules\mcp-chrome-bridge\dist\run_host.bat

Observed problem in Opencode

Inside Opencode, Chrome MCP tools appear but actual calls fail with:

Error calling tool: Failed to connect to MCP server

Additional evidence from bridge logs

native_host_stderr_windows_.log contains a large number of repeated errors:

Error [ERR_HTTP_HEADERS_SENT]: Cannot write headers after they are sent to the client
    at ServerResponse.writeHead (node:_http_server:351:11)
    at responseViaResponseObject (...@hono/node-server...)
    at async StreamableHTTPServerTransport.handleRequest (...@modelcontextprotocol/sdk...)
    at async Object.<anonymous> (...mcp-chrome-bridge/dist/server/index.js:226:17)

This may indicate the stdio proxy / streamable HTTP bridge is mishandling some client requests.

Additional note

I also tested switching Opencode config to direct remote MCP:

"chrome-mcp": {
  "type": "remote",
  "url": "http://127.0.0.1:12306/mcp",
  "enabled": true,
  "timeout": 30000
}

But that behaved even worse in Opencode, so I reverted to the local + mcp-server-stdio.js setup.

Question

Is mcp-server-stdio.js expected to work with Opencode Desktop on Windows?

If yes, could the repeated ERR_HTTP_HEADERS_SENT errors indicate a bug in the proxy layer when handling Opencode's initialization / session flow?

If there is a recommended Opencode-specific configuration for Windows, I would appreciate it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions