GPT-5.6 Sol Responses Lite hides custom MCP tools; disabling Responses Lite restores them
What version of the Codex App are you using (From “About Codex” dialog)?
Powered by Codex & OWL Version 26.707.91948 Released Jul 16, 2026
What subscription do you have?
pro
What platform is your computer?
macOS 26.5.2, Apple Silicon (arm64)
What issue are you seeing?
With gpt-5.6-sol, a healthy custom stdio MCP server is discovered and its
resources and resource templates can be listed, but its callable tools are
absent or unreachable in Codex Desktop and codex exec.
The server exposes multiple tools. A standalone MCP client successfully:
- Initializes the same server process.
- Receives all registered tools from
tools/list. - Calls a read-only status tool and receives the expected response.
In Codex, the model may call list_mcp_resources, but it cannot invoke the
server's registered tools. It instead reports that the requested MCP tool is
unavailable.
This appears to be specific to the Responses Lite request path. I copied the
current gpt-5.6-sol model catalog entry and changed only:
"use_responses_lite": false
With that single change, the same MCP tool call succeeds with both Codex0.144.5 and 0.145.0-alpha.18. Removing the override makes the tool
unavailable again. GPT-5.4 can also call the same MCP tool with the same MCP
configuration.
What steps can reproduce the bug?
- Configure a working custom stdio MCP server that exposes at least one
resource and one read-only tool:
``toml``
[mcp_servers.example_server]
command = "<MCP_SERVER_EXECUTABLE>"
args = ["<OPTIONAL_ARGUMENTS>"]
- Confirm independently that the server is healthy:
initializesucceeds.tools/listincludes the read-only tool.- Calling that tool through a standalone MCP client succeeds.
- Start a fresh Codex Desktop task using
gpt-5.6-sol.
- Ask Codex to call the tool directly:
``text``
Call the example_server MCP tool health_check exactly once.
Do not inspect files, do not use the shell, and do not modify anything.
Return only whether the MCP call succeeded and its status.
- Observe that Codex may discover the server's resources, but does not call
health_check and reports that the tool is unavailable.
- The CLI behavior can be reproduced with an equivalent command:
``shell``
codex exec --ephemeral --json \
-m gpt-5.6-sol \
-s read-only \
-C "<TRUSTED_DIRECTORY>" \
'Call the example_server MCP tool health_check exactly once. Do not inspect files, do not use the shell, and do not modify anything. Return only whether the MCP call succeeded and its status.'
- Copy the current
gpt-5.6-solmodel entry to a local model catalog,
changing only use_responses_lite to false, and configure Codex to use
it:
``toml``
model_catalog_json = "<MODEL_CATALOG_FILE>"
- Repeat the same prompt. The MCP tool now succeeds.
The results observed were:
| Codex version or configuration | Result |
| --- | --- |
| 0.144.0-alpha.4, default Sol metadata | MCP tool unavailable |
| 0.144.2, default Sol metadata | Only resource listing reached; MCP tool unavailable |
| 0.144.4, default Sol metadata | MCP tool unavailable |
| 0.144.5, default Sol metadata | MCP tool unavailable |
| 0.145.0-alpha.13, default Sol metadata | MCP tool unavailable |
| 0.145.0-alpha.18, default Sol metadata | MCP tool unavailable |
| 0.144.5, identical Sol catalog except use_responses_lite=false | MCP tool succeeds |
| 0.145.0-alpha.18, identical Sol catalog except use_responses_lite=false | MCP tool succeeds |
| GPT-5.4 with the same MCP configuration | MCP tool succeeds |
All server names, tool names, paths, and arguments in this report are
anonymized placeholders.
What is the expected behavior?
Every tool returned by an enabled MCP server's tools/list response should be
callable by the selected model.
Enabling Responses Lite must not make custom MCP tools unreachable. A request
for the read-only tool should execute normally, just as it does through a
standalone MCP client, with GPT-5.4, and with the otherwise identicalgpt-5.6-sol model catalog entry using use_responses_lite=false.
Additional information
This looks consistent with the Responses Lite tool-exposure problems reported
in:
Those issues describe tools or the tool-search mechanism being moved intoadditional_tools while the top-level tools field is absent, leaving the
tools unreachable to the model. In this reproduction, resources remain
discoverable while the custom MCP tool namespace cannot be invoked.
It may also overlap with the Codex Desktop MCP symptom reported in:
There was a working gpt-5.6-sol Desktop task before a Desktop update.
However, isolated reruns with older Codex binaries under the current model
metadata still fail. This suggests that the regression is connected to the
current Sol metadata or request path rather than solely to one client binary.
The strongest A/B evidence is:
- Same model slug
- Same prompt
- Same MCP process and configuration
- Same authentication and sandbox
- Same working directory
- Only
use_responses_litechanged fromtruetofalse - MCP tool unavailable with Responses Lite
- MCP tool succeeds without Responses Lite
A possible fix is to preserve a callable route to custom MCP tools when
Responses Lite is enabled—for example, by retaining the required MCP tool or
tool-search schema in the top-level tools collection, or otherwise ensuring
that the model can invoke the MCP namespace advertised throughadditional_tools.
4 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
please contribute to the discussion https://github.com/openai/codex/discussions/33682 to raise visibility with the team. The MCP bug reports are very clearly being ignored right now.
I can independently reproduce this with Apple's Xcode MCP bridge. The symptoms and A/B results match this issue very closely.
Environment:
26.707.919480.144.5gpt-5.6-sol26.5.2, Apple Silicon27.0beta (27A5218g)``
toml
``[mcp_servers.xcode]
enabled = true
command = "xcrun"
args = ["mcpbridge"]
The bridge resolves to:
Evidence that the MCP connection and server are healthy:
codex mcp listreports the Xcode server enabled.xcrun mcpbridge --helpruns successfully.``
text
``listed MCP server tools while building tool list server_name=xcode tool_count=47
XcodeListWindows,BuildProject,RunAllTests,RenderPreview, and the other expected Xcode tools.mcpbridge, initialize MCP, or receivetools/list.Reproduction with the current client:
With
gpt-5.6-sol, nomcp_tool_callevent is emitted. The model simply reports that the call failed or that the tool is unavailable, despite Codex having discovered all 47 tools.I also tried narrowing the server to the requested tool:
That did not restore the tool call.
The current client reports these feature states:
Passing
--disable tool_search_always_defer_mcp_toolsdid not change the behavior.codex doctorstill reported the feature enabled and reported no feature override, which is consistent with the flag being non-configurable in this release.Most importantly, the model A/B test succeeds on the same current Codex installation, MCP process, config, workspace, sandbox, and open Xcode instance:
This emitted an actual MCP tool call:
and returned:
I additionally tested locally cached older clients:
0.142.0with GPT-5.5 successfully calledXcodeListWindows.0.141.0with GPT-5.5 successfully calledXcodeListWindows.gpt-5.6-solmodel refuses those older clients, so this older-client result alone cannot isolate the client version from the model/request path.My initial suspicion was a client regression caused by forced MCP-tool deferral. After comparing the model A/B result and the evidence in this report, the more precise conclusion is that the decisive trigger is the current
gpt-5.6-solResponses Lite request path: the MCP tools are discovered internally but never become callable/model-visible. GPT-5.4 is a confirmed temporary workaround; no Xcode MCP reconfiguration is required.Written and posted by Codex on behalf of
LittleMonsterFr.Thank goodness I'm a complete coding newbie. Luckily, I had DeepSeekHarness help me find the discussion about this issue and then got it to fix Codex for me.
Great! 🎉 Here’s a quick summary of the complete fix:
The Issue Chain
gpt-5.6-solmodel uses the Responses Lite request path, it hides all custom MCP tools (including the command‑execution tools fromcodex-app-tools) — this is a known bug confirmed by the community (Issue #33679).models.jsonlocally, setuse_responses_litetofalse, forcing the old request logic.models.jsonhad a UTF‑8 BOM causing parsing failures → removed.config.tomlwas broken → switched to single‑quote literals.Current Status
codex-app-toolsMCP server is enabled (enabled: true).models.jsonis BOM‑free, strictly valid JSON, anduse_responses_lite = false.config.tomlloads correctly, withmodel_catalog_jsonpointing to a valid file.Asaki-Analysis-Labremains running, and isolation is intact.All backups are stored under
C:\Users\Administrator\.codex\JS备份\(models.json.original,config.toml.bak,codex-app-tools-mcp-backup) so you can roll back at any time.If a future Codex update overwrites the local
models.jsonor resets the configuration, causing the tools to disappear again, just apply the same fix. Feel free to reach out if you run into any other issues!