What version of Codex is running?
codex-cli 0.118.0
Which model were you using?
gpt-5.4
What platform is your computer?
Linux x86_64
What issue are you seeing?
Codex registers and enables two local stdio MCP servers, but /mcp shows them with Tools: (none) in a fresh Codex session.
The two servers are:
- Brave Search MCP server
- Serper Search/Scrape MCP server
Codex shows them as enabled and launchable, but their tool lists are empty in the UI:
• brave-search
• Auth: Unsupported
• Command: /home/chris/.codex/bin/brave-search-codex
• Tools: (none)
• serper-search
• Auth: Unsupported
• Command: /home/chris/.codex/bin/serper-search-codex
• Tools: (none)
This persists in a brand-new Codex process, not just a resumed session.
What steps can reproduce the bug?
- Install two third-party stdio MCP servers locally:
@brave/brave-search-mcp-server
serper-search-scrape-mcp-server
- Register them in Codex via wrapper scripts that load env vars from a local secrets file.
- Confirm they are enabled:
- Start a fresh
codex session.
- Run
/mcp.
- Observe that both servers show
Tools: (none).
What is the expected behavior?
/mcp should show the tools exposed by each server.
For these two servers, I expect at least:
- Brave:
brave_web_search, brave_local_search, brave_video_search, brave_image_search, brave_news_search, brave_summarizer
- Serper:
google_search, scrape
What do you see instead?
The servers are present and enabled, but /mcp still shows Tools: (none).
Additional information
I verified outside Codex that both wrappers answer MCP initialize and tools/list correctly over stdio.
The important detail is that these servers use newline-delimited JSON-RPC over stdio, and both respond correctly when probed directly.
For example, Brave returns:
{"result":{"protocolVersion":"2025-03-26","capabilities":{"logging":{},"tools":{"listChanged":true}},"serverInfo":{"version":"2.0.75","name":"brave-search-mcp-server","title":"Brave Search MCP Server"}},"jsonrpc":"2.0","id":1}
and then a tools/list result containing:
brave_web_search
brave_local_search
brave_video_search
brave_image_search
brave_news_search
brave_summarizer
Serper returns:
{"result":{"protocolVersion":"2024-11-05","capabilities":{"tools":{},"prompts":{}},"serverInfo":{"name":"Serper MCP Server","version":"0.1.0"}},"jsonrpc":"2.0","id":1}
and then a tools/list result containing:
So this does not appear to be a server installation problem. It looks like a Codex-side MCP discovery / tool catalog / UI issue.
Relevant local observations:
codex mcp list shows both servers as enabled.
- The current
codex-tui.log shows warnings for resources/list and resource templates returning Method not found, which seems normal for tool-only servers.
- I did not see the known schema-conversion log signatures such as:
Failed to convert ... MCP tool to OpenAI tool
invalid type: map, expected a boolean
Related issues
#4707 /mcp showed Tools: (none) for configured MCP servers
#5770 Codex timed out awaiting tools/list and ended with aggregated 0 tools from 1 servers
#4176 MCP tools silently excluded due to errors
#4454 fix for JSON Schema handling in MCP tool conversion
Minimal local probe used to verify server behavior
I used a direct stdio probe that sends:
initialize
tools/list
and both servers returned valid tool catalogs outside Codex.
If useful, I can provide the exact local probe output and sanitized wrapper scripts.
What version of Codex is running?
codex-cli 0.118.0Which model were you using?
gpt-5.4What platform is your computer?
Linux x86_64
What issue are you seeing?
Codex registers and enables two local stdio MCP servers, but
/mcpshows them withTools: (none)in a fresh Codex session.The two servers are:
Codex shows them as enabled and launchable, but their tool lists are empty in the UI:
This persists in a brand-new Codex process, not just a resumed session.
What steps can reproduce the bug?
@brave/brave-search-mcp-serverserper-search-scrape-mcp-servercodexsession./mcp.Tools: (none).What is the expected behavior?
/mcpshould show the tools exposed by each server.For these two servers, I expect at least:
brave_web_search,brave_local_search,brave_video_search,brave_image_search,brave_news_search,brave_summarizergoogle_search,scrapeWhat do you see instead?
The servers are present and enabled, but
/mcpstill showsTools: (none).Additional information
I verified outside Codex that both wrappers answer MCP
initializeandtools/listcorrectly over stdio.The important detail is that these servers use newline-delimited JSON-RPC over stdio, and both respond correctly when probed directly.
For example, Brave returns:
{"result":{"protocolVersion":"2025-03-26","capabilities":{"logging":{},"tools":{"listChanged":true}},"serverInfo":{"version":"2.0.75","name":"brave-search-mcp-server","title":"Brave Search MCP Server"}},"jsonrpc":"2.0","id":1}and then a
tools/listresult containing:brave_web_searchbrave_local_searchbrave_video_searchbrave_image_searchbrave_news_searchbrave_summarizerSerper returns:
{"result":{"protocolVersion":"2024-11-05","capabilities":{"tools":{},"prompts":{}},"serverInfo":{"name":"Serper MCP Server","version":"0.1.0"}},"jsonrpc":"2.0","id":1}and then a
tools/listresult containing:google_searchscrapeSo this does not appear to be a server installation problem. It looks like a Codex-side MCP discovery / tool catalog / UI issue.
Relevant local observations:
codex mcp listshows both servers as enabled.codex-tui.logshows warnings forresources/listandresource templatesreturningMethod not found, which seems normal for tool-only servers.Failed to convert ... MCP tool to OpenAI toolinvalid type: map, expected a booleanRelated issues
#4707/mcpshowedTools: (none)for configured MCP servers#5770Codex timed out awaitingtools/listand ended withaggregated 0 tools from 1 servers#4176MCP tools silently excluded due to errors#4454fix for JSON Schema handling in MCP tool conversionMinimal local probe used to verify server behavior
I used a direct stdio probe that sends:
initializetools/listand both servers returned valid tool catalogs outside Codex.
If useful, I can provide the exact local probe output and sanitized wrapper scripts.