macOS desktop Browser MCP consistently returns `Transport closed` while Codex CLI succeeds on the same machine

Open 💬 2 comments Opened Mar 21, 2026 by muyueh

Summary

On macOS, Codex desktop's built-in Browser MCP consistently fails with a Transport closed error on brand new threads.

On the same machine, Codex CLI succeeds against the same Browser MCP setup.

Environment

  • Date observed: 2026-03-21
  • OS: macOS 15.7.2 (24G322)
  • Codex CLI: 0.115.0
  • Browser MCP runtime: 0.1.3
  • Browser: Google Chrome + Browser MCP extension connected

Reproduction

  1. Open Codex desktop on macOS.
  2. Open a brand new thread.
  3. Use the built-in Browser MCP tool only.
  4. Call browser_snapshot.

Actual

The desktop thread fails immediately with:

tool call error: tool call failed for `browsermcp/browser_snapshot`

Caused by:
    Transport closed

Expected
Desktop Browser MCP should either return a snapshot or a meaningful extension-connection error, and it should behave consistently with Codex CLI on the same machine.

What I verified locally
The Browser MCP wrapper/runtime is healthy.
The Browser MCP extension is connected in Chrome.
The local wrapper now launches Browser MCP 0.1.3.
resources/list and resources/templates/list both succeed locally.
browser_snapshot succeeds from Codex CLI on the same machine.
Wrapper stderr is clean; I no longer see the earlier RangeError: Maximum call stack size exceeded from Browser MCP 0.1.2.
CLI workaround that succeeds
cd /tmp
codex exec --json --skip-git-repo-check 'Use the browser MCP tools only. Call browser_snapshot. If a tool call fails, report the exact error and stop.'
Notes
This looks more like a Codex desktop MCP transport/lifecycle problem than a Browser MCP install problem, because:

the same Browser MCP config works from CLI
a fresh desktop thread still fails
the local Browser MCP runtime is responsive and not crashing
Then click Create. After submitting, report the final GitHub issue URL only.

View original on GitHub ↗

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