MCP stdio handshake times out with Honeybadger MCP server despite valid initialize response

Open 💬 2 comments Opened Mar 17, 2026 by dllopes

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-Length framing 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

  1. Configure the Honeybadger MCP server in Codex via stdio
  2. Restart Codex
  3. Attempt to access MCP resources/tools
  4. Observe timeout during handshake

Notes

I can provide the bridge script and more raw handshake logs if useful.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗