Summary
Codex Desktop sees a custom stdio MCP server and successfully discovers its tools via tools/list, but the tools are not exposed to Desktop threads or tool_search.
This appears to be a regression or exposure-layer bug in Desktop/App Server 0.124.0-alpha.2.
Environment
- Codex Desktop client:
26.422.21637
- Codex/App Server:
0.124.0-alpha.2
- Platform: macOS
- Server type: custom stdio MCP server
- Config location: project-scoped
.codex/config.toml
MCP config
[mcp_servers.interdomestik_qa]
command = "/bin/bash"
args = ["scripts/start-repo-qa.sh"]
cwd = "."
The wrapper script resolves the repo root, changes into it, and starts a TypeScript MCP server over stdio.
Expected behavior
The following custom MCP tools should be exposed to Desktop threads and callable via names like mcp__interdomestik_qa__project_map:
project_map
read_files
code_search
check_health
pr_verify
security_guard
e2e_gate
Actual behavior
- Desktop
/mcp shows the server enabled.
codex mcp list --json shows the server enabled.
- Repo preflight passes, including live MCP
tools/list discovery.
- Desktop logs show the server starts and returns a
ListToolsResult containing the expected custom QA tools.
tool_search returns 0 callable interdomestik_qa tools.
- Thread request payloads do not include any
mcp__interdomestik_qa__* tools.
- The current thread's
thread_dynamic_tools only contains generic Desktop tools such as automation_update, read_thread_terminal, load_workspace_dependencies, and install_workspace_dependencies.
Evidence collected locally
Manual/repo preflight confirms live MCP discovery works:
Desktop logs show the custom server is started and queried successfully:
- custom QA server starts on stdio
- client initializes against the server
ListToolsRequest is sent
ListToolsResult is received with the expected custom tools
But those discovered tools are not present in the thread/deferred tool surface.
Historical comparison from local Codex state/logs:
- An Apr 20 thread on Codex
0.91.0 successfully called tools such as:
mcp__interdomestik_qa__read_files
mcp__interdomestik_qa__code_search
mcp__interdomestik_qa__project_map
- Apr 24 threads on Codex
0.124.0-alpha.2 do not expose those tools, despite successful /mcp discovery.
I also checked whether stale Desktop workspace state was the cause. The active workspace root and thread cwd both point to the correct repo, but the custom MCP tools are still not exposed.
Suspected failure point
The failure appears to be after successful MCP tools/list discovery and before Desktop registers/indexes those tools into the per-thread/deferred tool surface.
It does not appear to be caused by the MCP server implementation, stdio transport, project config, or CLI discovery, because live tools/list discovery succeeds outside the Desktop thread tool surface.
Summary
Codex Desktop sees a custom stdio MCP server and successfully discovers its tools via
tools/list, but the tools are not exposed to Desktop threads ortool_search.This appears to be a regression or exposure-layer bug in Desktop/App Server
0.124.0-alpha.2.Environment
26.422.216370.124.0-alpha.2.codex/config.tomlMCP config
The wrapper script resolves the repo root, changes into it, and starts a TypeScript MCP server over stdio.
Expected behavior
The following custom MCP tools should be exposed to Desktop threads and callable via names like
mcp__interdomestik_qa__project_map:project_mapread_filescode_searchcheck_healthpr_verifysecurity_guarde2e_gateActual behavior
/mcpshows the server enabled.codex mcp list --jsonshows the server enabled.tools/listdiscovery.ListToolsResultcontaining the expected custom QA tools.tool_searchreturns 0 callableinterdomestik_qatools.mcp__interdomestik_qa__*tools.thread_dynamic_toolsonly contains generic Desktop tools such asautomation_update,read_thread_terminal,load_workspace_dependencies, andinstall_workspace_dependencies.Evidence collected locally
Manual/repo preflight confirms live MCP discovery works:
Desktop logs show the custom server is started and queried successfully:
ListToolsRequestis sentListToolsResultis received with the expected custom toolsBut those discovered tools are not present in the thread/deferred tool surface.
Historical comparison from local Codex state/logs:
0.91.0successfully called tools such as:mcp__interdomestik_qa__read_filesmcp__interdomestik_qa__code_searchmcp__interdomestik_qa__project_map0.124.0-alpha.2do not expose those tools, despite successful/mcpdiscovery.I also checked whether stale Desktop workspace state was the cause. The active workspace root and thread
cwdboth point to the correct repo, but the custom MCP tools are still not exposed.Suspected failure point
The failure appears to be after successful MCP
tools/listdiscovery and before Desktop registers/indexes those tools into the per-thread/deferred tool surface.It does not appear to be caused by the MCP server implementation, stdio transport, project config, or CLI discovery, because live
tools/listdiscovery succeeds outside the Desktop thread tool surface.