关于 codex 无法调用 mcp 的问题

BnFeng 2026-05-16 10:16 1

自从 codex 升级过后,无论是桌面端还是 cli 或者是 vs code,都没法调用配置好的 mcp 工具,但是同样的工具在 claude 是正常使用的,因为这个问题 每日每夜尝试去解决去修复,最后换来的都是


当前可调用工具里没有 mcp__server__tool 这种形式的 MCP tool 命名空间。




  • list_mcp_resources 返回空:[]




  • list_mcp_resource_templates 返回空:[]





实在没办法了,最后迫不得已尝试到一个可行的方案:


在AGENTS.md文件添加规则:


## MCP 调用兜底策略
1. 当用户要求使用 MCP,或项目任务明显需要已配置 MCP server 时,优先检查当前会话是否存在原生 MCP tool 命名空间,例如 `mcp__server__tool`。

2. 若原生 MCP tools 未注入、`list_mcp_resources` 为空,或只能看到 resources 而没有 tools,不要据此判定 MCP 不可用;很多 MCP server 只暴露 tools。

3. 对 `stdio` 类型的 MCP server,必须尝试使用 stdio JSON-RPC 兜底直连:从 `codex mcp get/list` 或 `~/.codex/config.toml` 读取 `command`/`args`,以一行一个 JSON-RPC 消息的 NDJSON 方式写入 stdin。

4. stdio JSON-RPC 调用顺序为:先发送 `initialize`,再发送 `notifications/initialized`,然后调用 `tools/list` 或 `tools/call`。

5. 不要默认使用 `Content-Length` 帧格式,除非该 MCP server 明确要求。

6. 进行 MCP 抓包、浏览器调试、JS 逆向等任务时,如果 Codex 原生 MCP tools 不可见,应优先用上述 stdio JSON-RPC 方法验证 `tools/list`,并在验证通过后通过 `tools/call` 调用对应工具;只有 stdio 直连也失败时,才说明 MCP 当前不可调用,并给出真实错误输出。

运行效果:




大佬们如果有更好的方法 或者已经有解决方案,希望能够分享分享 或者一起交流,感谢!

最新回复 (5)
  • admini 05-16 10:31
    1

    使用 cc swtich 这种同一管理的会好一点吧。

  • BnFeng 楼主 05-16 10:34
    2

    好的老师,我尝试一下,之前没用过这个

  • admini 05-16 10:36
    3

    你可以先确定是不是新版本的问题,如果是的话应该 github 上有人讨论的。如果不是应该是环境没配置好。

  • BnFeng 楼主 05-16 10:38
    4

    之前和朋友 研究过一番, 120 版本的 cli 就能正常调用,往上就不行了 后来没办法只能放弃,一些必要工具就去使用 claude

  • youguess 07-02 04:38
    5

    http类型的mcp还是无法调用,不知道是哪里的bug ^-^

* 帖子来源Linux.do
返回