MCP tools return 'unsupported call' with custom Responses API provider (llama.cpp)
Open 💬 3 comments Opened Jun 8, 2026 by kxy56618573
💡 Likely answer: A maintainer (github-actions[bot], contributor)
responded on this thread — see the highlighted reply below.
Summary
Codex Desktop with custom provider (wire_api = "responses") returns unsupported call for all MCP tools. Built-in tools work fine.
Environment
- Codex Desktop 26.602.40724 (macOS)
- llama.cpp master as custom provider
- Model: Unsloth Qwen3.6-27B-Q8_0_MTP
- MCP servers: tavily, firecrawl, context7, node_repl
Config
model_provider = "llama_cpp"
model = "Qwen3.6-27B-Q8_0_MTP.gguf"
[model_providers.llama_cpp]
base_url = "http://llama-server:10000/v1"
wire_api = "responses"
requires_openai_auth = false
[mcp_servers.tavily]
command = "npx"
args = ["-y", "tavily-mcp"]
Behavior
Model generates correct tool calls, Codex responds:
unsupported call: tavily_search
All MCP tools across all servers fail identically.
What works
- exec_command, list_mcp_resources, list_mcp_resource_templates, apply_patch ✅
- MCP servers functional via exec_command + curl ✅
- API keys valid (HTTP 200 from both tavily and firecrawl endpoints) ✅
What we tried (nothing helped)
- npm_config_cache=/tmp/.npm-cache env var
- Global npm install + absolute binary path instead of npx
- Various sandbox configurations
- Different model variants
- Patched llama.cpp to flatten namespace tools (tools now properly sent to model)
- --reasoning on/off on llama-server
Analysis
list_mcp_resources works (returns empty resources) but individual MCP tool calls fail.
This suggests the MCP server process lifecycle management differs for custom providers vs OpenAI.
When using custom provider with responses wire_api, Codex may not spawn MCP server processes
or the communication channel isn't established.
Related
Companion issue filed on llama.cpp for namespace/web_search handling.
3 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Hi I face the same issue, same model, setup, but with brave search MCP
Did you manage to solve it ?
For anyone still hitting this with llama.cpp/Qwen, I published the compatibility proxy I ended up using in production: https://github.com/madmax24-ubuntu/codex-proxy-llama.cpp
It fixes the custom Responses-provider path by flattening Codex MCP namespace tools for llama.cpp and restoring them on the way back, and it also normalizes native
apply_patch, tool history replay, SSE events, reasoning, and compaction. My primary test case is local Qwen on llama.cpp with Codex CLI/IDE.Since this issue specifically uses Qwen3.6-27B + llama.cpp, it should be a close match. The repo includes an automatic installer and
doctor.pyso it can be tested without replacing the user's normal Codex config.