Codex prioritizes MCP server tools over native tools when Claude Code is configured as MCP server
What version of Codex is running?
codex-cli 0.55.0
What subscription do you have?
Plus
Which model were you using?
gpt-5-codex
What platform is your computer?
Darwin 25.1.0 arm64 arm
What issue are you seeing?
When Claude Code is configured as an MCP server in Codex, Codex preferentially routes tool calls to Claude's MCP-provided tools (e.g., claude.Grep, claude.Glob) instead of using its own native/local equivalents. This creates unnecessary overhead and unexpected behavior, as Codex should prefer its own optimized tools for local filesystem operations.
Ordinarily, I have to specifically tell codex to use claude for actions. The reason claude is configured this way is to provide an easy way to have the two agents work together on issues.
What steps can reproduce the bug?
Config Example:
[mcp_servers.claude]
command = "claude"
args = ["mcp", "serve"]
Example:
➜ fp-vercel git:(main) codex exec "find notes for issue nod-000"
OpenAI Codex v0.55.0 (research preview)
--------
workdir: /Users/anichols/code/fp-vercel
model: gpt-5-codex
provider: openai
approval: never
sandbox: workspace-write [workdir, /tmp, $TMPDIR]
reasoning effort: high
reasoning summaries: auto
session id: 019a54a8-c62f-7942-aa46-b646baf42bbb
--------
user
find notes for issue nod-000
deprecated: `experimental_use_rmcp_client` is deprecated. Use `rmcp_client` instead.
You can either enable it using the CLI with `--enable rmcp_client` or through the config.toml file with `[features].rmcp_client`
thinking
**Searching for issue nod-000 notes**
tool claude.Grep({"pattern":"nod-000","path":".","output_mode":"content","n":true,"head_limit":20})
claude.Grep({"pattern":"nod-000","path":".","output_mode":"content","n":true,"head_limit":20}) success in 16ms:
{
"content": [
{
"text": "{\"mode\":\"content\",\"numFiles\":0,\"filenames\":[],\"content\":\"\",\"numLines\":0,\"appliedLimit\":20}",
"type": "text"
}
]
}
thinking
**Checking for case and format variations**
tool claude.Grep({"pattern":"nod[-_]000","path":".","output_mode":"content","i":true,"n":true,"head_limit":20})
claude.Grep({"pattern":"nod[-_]000","path":".","output_mode":"content","i":true,"n":true,"head_limit":20}) success in 36ms:
{
"content": [
{
"text": "{\"mode\":\"content\",\"numFiles\":0,\"filenames\":[],\"content\":\"\",\"numLines\":0,\"appliedLimit\":20}",
"type": "text"
}
]
}
What is the expected behavior?
Codex uses it's native tools instead of MCP:
➜ fp-vercel git:(main) ✗ codex exec "find notes for issue nod-000"
OpenAI Codex v0.55.0 (research preview)
--------
workdir: /Users/anichols/code/fp-vercel
model: gpt-5-codex
provider: openai
approval: never
sandbox: workspace-write [workdir, /tmp, $TMPDIR]
reasoning effort: high
reasoning summaries: auto
session id: 019a54b0-5631-7f03-81b3-ae66687f5528
--------
user
find notes for issue nod-000
deprecated: `experimental_use_rmcp_client` is deprecated. Use `rmcp_client` instead.
You can either enable it using the CLI with `--enable rmcp_client` or through the config.toml file with `[features].rmcp_client`
thinking
**Searching repository for nod-000 issue**
exec
bash -lc 'rg -n "nod-000"' in /Users/anichols/code/fp-vercel exited 1 in 182ms:
thinking
**Trying alternative match cases**
exec
bash -lc 'rg -ni "nod-000"' in /Users/anichols/code/fp-vercel exited 1 in 27ms:
Additional information
This has been configured in codex for weeks and was working fine - but just surfaced in the last day or so as a new behavior, so seems related to the 0.54/0.55 release changes.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗