mcp-server: `model` parameter schema documents stale example ids (gpt-5.2), misleading MCP clients into pinning an old model
Nobody has claimed this yet.
Assessment
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Newbie friendliness
- 88/100
Research direction
Start in codex-rs/mcp-server/src/codex_tool_config.rs and inspect the doc comment for the codex tool's model parameter. Update the description so it documents the stable fallback behavior or current model information, then run codex mcp-server and inspect the tools/list schema to confirm the stale example is gone.
Written by the indexing model from the issue text.
Description
Summary
The model parameter of the codex tool exposed by codex mcp-server documents gpt-5.2 / gpt-5.2-codex as its examples. Those ids are several releases stale, and the doc comment is still on main.
codex-rs/mcp-server/src/codex_tool_config.rs:
/// Optional override for the model name (e.g. 'gpt-5.2', 'gpt-5.2-codex').
Why this is worth fixing rather than cosmetic
For an MCP client, that string is not decoration — it is the only concrete model id anywhere in the tool contract. An LLM-driven client reading the schema to learn how to call the tool sees gpt-5.2 presented as the exemplar and can reasonably pass it, silently pinning a session to an old model. The parameter is a free-form string with no enum and no validation, so nothing rejects the stale value; the downgrade is invisible until someone inspects the session rollout.
This is not hypothetical. Driving the tool from two MCP client agents, one of them stopped and asked whether gpt-5.2 was the model it was supposed to use, because the schema was the only model information available to it. The same binary's own model registry lists the current family, so the doc comment is the sole stale surface.
Reproduce
$ codex --version
codex-cli 0.148.0
$ strings "$(npm root -g)/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/bin/codex" \
| grep -oE "Optional override for the model name \(e\.g\.[^)]*\)\."
Optional override for the model name (e.g. 'gpt-5.2', 'gpt-5.2-codex').
Or start codex mcp-server and read the model property description in the codex tool's tools/list schema.
Confirmed present on main as of this writing, so 0.150.0 does not fix it.
Suggested fix
Either refresh the examples to current ids, or — since any literal id will drift again the same way — drop the examples and describe the fallback behaviour instead, which is stable:
/// Optional override for the model name. When omitted, the model is resolved
/// from CODEX_HOME/config.toml.
The second form is self-maintaining and, for an MCP client, more actionable than any example: what a client most needs to know is that omitting the field is the correct default.
Environment
- codex-cli 0.148.0, macOS (darwin-arm64), installed via npm
- Also verified against
codex-rs/mcp-server/src/codex_tool_config.rsonmain
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
CLI enhancement model-behavior
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
gitbutlerapp/gitbutler#15998 · 1 comment ·
-
bug triage:deciding
Difficulty 1/5 Under an hour Newbie friendliness 88/100
open-telemetry/otel-arrow#4132 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100