MCP stdio handshake times out with Honeybadger MCP server despite valid initialize response
Summary
Codex fails to complete the MCP handshake with the Honeybadger MCP server over stdio.
Codex reports:
MCP startup failed: timed out handshaking with MCP server after 10s
However, the server does respond correctly to initialize when tested manually outside the Codex MCP host.
Environment
- Codex CLI:
0.114.0 - Transport:
stdio - Host OS: macOS
- Honeybadger MCP server image:
ghcr.io/honeybadger-io/honeybadger-mcp-server:latest - Docker server version:
29.2.1
MCP config
[mcp_servers.honeybadger]
command = "/Users/<redacted>/.codex/bin/honeybadger_mcp_stdio_bridge.py"
args = []
[mcp_servers.honeybadger.env]
HONEYBADGER_PERSONAL_AUTH_TOKEN = "redacted"
LOG_LEVEL = "error"
What I expected
Codex should connect to the Honeybadger MCP server and list resources/tools normally.
What happened
Codex consistently fails with:
MCP startup failed: timed out handshaking with MCP server after 10s
Important detail
I verified manually that the wrapped server does return a valid MCP initialize response when sent a Content-Length framed request:
Content-Length: 190
{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-06-18","capabilities":{"logging":{},"tools":{"listChanged":true}},"serverInfo":{"name":"honeybadger-mcp-server","version":"1.0.0"}}}
So the server side appears responsive outside the Codex MCP host.
Additional investigation
- The Honeybadger MCP server itself appears to use a line-delimited JSON style internally.
- I added a local bridge that translates between
Content-Lengthframing and line-delimited JSON. - The bridge works in direct manual tests.
- Codex still times out during handshake when trying to use the same bridge via MCP config.
Related issues
These may be related to broader MCP handshake / timeout / protocol compatibility issues in Codex:
- #5444
- #5161
- #6127
- #5619
Repro steps
- Configure the Honeybadger MCP server in Codex via
stdio - Restart Codex
- Attempt to access MCP resources/tools
- Observe timeout during handshake
Notes
I can provide the bridge script and more raw handshake logs if useful.
2 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
This looks related to #13766, but my case may be a narrower variant.
In my setup, the Honeybadger MCP server does respond correctly to a manual
initializerequest outside Codex, and I can also reproduce that through a local stdio bridge. The timeout only happens when the Codex MCP host tries to complete the handshake with that same process.So this may be the same MCP handshake bug family, but with a different server/runtime combination.