Skip to content

/mcp shows Tools: (none) for working stdio MCP servers on codex-cli 0.118.0 (Linux) #17246

@chrisdpurcell

Description

@chrisdpurcell

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?

  1. Install two third-party stdio MCP servers locally:
    • @brave/brave-search-mcp-server
    • serper-search-scrape-mcp-server
  2. Register them in Codex via wrapper scripts that load env vars from a local secrets file.
  3. Confirm they are enabled:
codex mcp list
  1. Start a fresh codex session.
  2. Run /mcp.
  3. 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:

  • google_search
  • scrape

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:

  1. initialize
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    TUIIssues related to the terminal user interface: text input, menus and dialogs, and terminal displaybugSomething isn't workingmcpIssues related to the use of model context protocol (MCP) servers

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions