Windows: stdio MCP handshake fails with Laravel Boost (php artisan boost:mcp) in Codex CLI 0.122.0
Upstream Issue Draft
Suggested title
Windows: stdio MCP handshake fails with Laravel Boost (php artisan boost:mcp) in Codex CLI 0.122.0
Suggested labels
bugwindowsmcp
How to open after GitHub auth
The npm package points to:
- repository:
https://github.com/openai/codex - issues:
https://github.com/openai/codex/issues
After authenticating gh, open the issue with:
gh issue create --repo openai/codex --title "Windows: stdio MCP handshake fails with Laravel Boost (php artisan boost:mcp) in Codex CLI 0.122.0" --body-file docs/active/laravel-boost-codex/UPSTREAM-ISSUE.md
Summary
On Windows, Codex detects the Laravel Boost MCP server configuration and scopes it correctly to the Laravel app, but the MCP client fails during the initial handshake.
The same Boost server responds correctly outside Codex when spoken to over stdio with newline-delimited JSON-RPC, which suggests the failure is in the Codex client path on this Windows environment rather than in the Boost server itself.
Environment
- OS: Windows
- Shell: PowerShell
- Codex CLI:
0.122.0-alpha.13via VS Code extensionopenai.chatgpt0.122.0vianpm i -g @openai/codex@latest- Laravel app:
- Laravel
13.3.0 - PHP
8.3 laravel/boost v2.4.4- MCP config:
[mcp_servers.laravel-boost]
command = "php"
args = ["artisan", "boost:mcp"]
cwd = "."
required = false
startup_timeout_sec = 20
Reproduction
- Open Codex in the Laravel app directory:
codex --cd apps/api
- Let startup finish, then run:
/mcp
- Reproduce the same condition in non-interactive mode:
codex exec -C apps/api -s read-only -c mcp_servers.laravel-boost.required=true --color never "Use the laravel-boost MCP server if available and list one tool name it exposes. Do not change files."
Expected behavior
- Codex starts the
laravel-boostMCP server successfully. /mcplistslaravel-boostas active.- A Boost tool such as
application-infoorsearch-docscan be called successfully inside Codex.
Actual behavior
- Interactive TUI startup shows:
MCP client for `laravel-boost` failed to start: MCP startup failed: handshaking with MCP server failed: connection closed: initialize response
MCP startup incomplete (failed: laravel-boost)
/mcplists only:codex_appsopenaiDeveloperDocs
codex execwithrequired = truefails with:
required MCP servers failed to initialize: laravel-boost: handshaking with MCP server failed: connection closed: initialize response
Counterproof: Boost server itself is healthy
Running the server directly outside Codex works:
initializereturns successfullytools/listreturns tools- confirmed tools include:
application-infobrowser-logsdatabase-connectionsdatabase-querydatabase-schemaget-absolute-urllast-errorread-log-entries- direct calls to
application-infoandsearch-docssucceed
Additional experiments already tried
These did not change the result:
startup_timeout_sec = 60- absolute
php.exepath instead ofphp - switching Codex from the VS Code extension binary to global npm
@openai/codex@0.122.0 codex exec --enable unified_exec
Why this looks client-side
- Codex scopes the MCP config correctly:
codex mcp listin repo root does not showlaravel-boostcodex mcp listinapps/apidoes showlaravel-boost- The Boost server responds correctly over stdio outside Codex
- The same failure reproduces in both:
- interactive TUI
codex exec- The same failure reproduces on both:
0.122.0-alpha.130.122.0
Local operational decision
For now the MCP remains configured with:
required = false
We are treating installation/publication as complete, but not promoting the MCP to required startup until a Codex version newer than 0.122.0 succeeds on Windows.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗