配置 mcp_tool_not_available_in_session api proxy

Codex MCP 工具提示 does not exist in this session's available toolset

如果 codex mcp list 显示 enabled,日志也记录了 tool_count,但当前会话仍说工具不存在,问题在 MCP 工具没有进入该会话的可调用工具集。重新认证、扩大文件权限或反复改提示词通常无效。

错误摘要

Codex 提示 MCP tool does not exist in this session's available toolset 时,先核对服务和工具发现状态,再用全新会话、codex doctor、官方 provider 与版本 A/B 判断是缓存、客户端回归还是自定义 provider 没有暴露工具。

#codex tool does not exist in this session available toolset #codex mcp tool does not exist #codex mcp tools unavailable #codex mcp list enabled but tool unavailable #codex 找不到 mcp 工具 #codex mcp 工具不可用

你已经配置了 MCP,codex mcp list 也显示 enabled,但 Codex 回答:

The callable <server> <tool> tool does not exist in this session's available toolset.

或者表现为:Codex 知道 MCP server 的名字,却坚持说当前 session 没有对应工具。

这个错误是什么意思

它表示目标 MCP 工具没有进入当前会话交给模型的可调用工具集。问题可能发生在四个阶段:服务没有真正启动、tools/list 没返回工具、客户端没有缓存工具,或者工具已被发现却没有暴露给当前会话。

所以 codex mcp list 的 enabled 不是最终验证。它只能证明配置项打开了,不能证明某个工具现在可调用。

先确认是不是同一个问题

先运行:

codex mcp list
codex doctor --json

然后核对三件事:

  1. 目标 MCP server 是否 enabled,启动有没有报错。
  2. 日志里是否出现该 server 的 tool_count,数量是否大于 0。
  3. 你明确要求调用一个已知工具时,Codex 是说“工具不存在”,还是调用后返回 Unexpected response type

如果已经发起工具调用,随后报 Unexpected response type,那是结果解析问题,应按另一条错误排查;本文只处理“工具根本不在当前 session 工具集”。

怎么解决

  1. 新建一个干净会话复测。 MCP 配置变化后,旧会话不一定会重新装载工具。重新启动 Codex,再创建新会话,明确点名一个已知工具。
  2. 确认 MCP 本身能列出工具。 日志没有 tool_count 或数量为 0 时,优先检查 MCP 命令、URL、环境变量和启动错误。
  3. 保留一组最小对照。 只启用一个 MCP server,只测试一个稳定工具,避免几十个 server 和 tool search 同时干扰判断。
  4. 比较 Codex 版本。 GitHub #33547 报告从 0.144.4 更新到 0.144.5 后出现问题,但后续用户表示降回 0.144.4 仍然复现。因此版本回退只能用于 A/B,不能承诺修复。
  5. 自定义 provider 做官方路径对照。 如果官方 OpenAI provider 能暴露工具、自定义 Responses provider 不能,重点检查 provider 是否完整传递工具声明,而不是修改 MCP server。
  6. 提交诊断信息。 附上 codex --versioncodex doctor --json 的脱敏结果、server 名、预期 tool 名,以及日志中的 tool_count

不要先删除整个 ~/.codex。这会混掉配置、认证和会话三个变量,也可能损失本地状态。更不要为找不到 MCP 工具开启 Full Access;本机文件权限和会话工具暴露不是一回事。

哪些操作通常无效

  • 反复换一种提示词:工具没有进入 toolset 时,模型无法靠措辞把它变出来。
  • 只看 codex mcp list:enabled 不等于已缓存、已暴露、可调用。
  • 没有认证错误却反复 OAuth 登录:公开案例中重新认证后仍然缺工具。
  • 直接认定是 0.144.5:目前有更新后开始复现的证据,也有降级后仍复现的反馈,根因尚未收敛。

一句话结论

tool does not exist in this session's available toolset 的核心不是 MCP 配置有没有写,而是工具有没有真正进入当前会话;按启动、发现、缓存、会话暴露四层逐一对照,别靠放大权限或重装碰运气。

相关错误

Claude Code / Codex 503 No available accounts:中转站账号池不可用排查 先不要盲目换 Key。这个错误通常说明账号池、供应商、分组或模型路由暂时不可用。先测最小请求、确认模型和分组,再判断是等待恢复、降低上下文,还是换 provider。 Codex: Selected model is at capacity. 模型容量已满排查 报错:Selected model is at capacity. Please try a different model. 先把它当作模型级容量、Admission 或流式中断问题处理。它可能出现在官方 ChatGPT 登录态 Codex CLI,也可能来自中转站账号池或 Sub2API 上游 overloaded 透传。 Codex 提示:你的对话中有多个可能的网络安全风险的标记 提示:你的对话中有多个可能的网络安全风险的标记。先把它当作 OpenAI/Codex 安全路由触发,而不是直接判断账号或中转站故障;再检查是否使用了中转 API、敏感关键词、超长代码上下文或不透明模型路由。 Error 429 Too Many Requests:AI API 中转站限流排查 报错:exceeded retry limit, last status: 429 Too Many Requests, request id: <request-id>。AI 中转站里连续 429 多半是上游账号池限流、冷却或额度耗尽,先让服务商换号、换线路或换模型。 Error 401 Unauthorized:AI API 中转站认证排查 401 是认证失败信号。先检查当前加载的是哪一个 Key、请求打到哪个 Base URL、header 格式是否正确,以及这个 Key 是否仍然在对应 provider 中有效。 中转站报错 API Error 502 origin_bad_gateway 排查步骤 报错:API Error 502、Error 502: Bad gateway、error_name: origin_bad_gateway、cloudflare_error: true。先看中转站状态页;如果目标模型或线路全红,停止反复改 Key 和重试,直接联系在线客服或站长确认号池与恢复时间。 Codex 提示:此聊天已被标记为可能存在网络安全风险 Codex 提示“此聊天已被标记为可能存在网络安全风险”时,先不要把它当作中转站故障或封号。它更像是系统级网络安全风险标记;普通开发误触发时,优先新开会话、缩小上下文、重新表述任务。 Codex: gpt-5.6-sol model is not supported with a ChatGPT account 报错:The 'gpt-5.6-sol' model is not supported when using Codex with a ChatGPT account. 先把它当作 ChatGPT 账号权限、订阅层级或灰度入口问题处理;可先切到 Terra/Luna,或改用 API Key/provider 配置。 Codex MCP 报错 Unexpected response type Codex MCP 报 Unexpected response type 时,先确认错误发生在 tools/call 返回之后,再用 MCP Inspector、直接客户端或旧版 Codex 做对照;服务端可临时简化返回内容,普通用户则应保留版本和工具名等待兼容修复。 Codex:当前环境没有提供可用的终端或文件编辑工具怎么解决 先 fork 当前对话,在新任务中回复“继续”让 Codex 重新执行。如果仍然没有工具,用 GPT-5.5 和手动 `!命令` 做一次对照测试。 Codex 报错 stream disconnected before completion Codex 报 stream disconnected before completion: error sending request for url 时,先不要急着换账号或改模型。它通常是终端网络、代理继承、中转站 Responses 兼容性或上游 SSE 流断开的信号。 Codex 报错 stream disconnected before completion: Upstream request failed Codex 报 stream disconnected before completion: Upstream request failed 时,不要只凭浏览器能上网就排除网络,也不要只凭 curl hello 能通就认定中转站没问题。先看 URL、upstream_error、response.failed、request id 和是否使用自定义 provider,再按官方链路、本地代理和中转站链路分开排查。 Codex 报错 Error creating task: Timeout / Unable to start task Codex 报 Error creating task: Timeout、Task creation timeout 或 Unable to start task 时,先测试已有任务,再临时禁用无法连接或路径失效的 MCP 服务并完全重启桌面端。

相关主题

常见问题

常见问题

codex mcp list 显示 enabled,为什么工具还是不存在?

enabled 只说明配置启用,不保证工具已经进入当前会话的可调用工具集。还要确认服务完成启动、tools/list 返回工具,并且客户端把工具缓存或暴露给当前模型。

重新登录 MCP OAuth 能解决吗?

只有认证确实失败时才有意义。公开的 0.144.5 案例里,重新认证 Atlassian 后日志仍能发现 40 个工具,但当前会话依然无法调用,说明问题不在登录本身。

把权限改成 Full Access 有用吗?

通常没有。Full Access 管的是本机命令、文件和网络权限,不会自动把缺失的 MCP 工具加入会话工具集。