Skip to content

MCP 服务器注释后工具仍出现在上下文中

问题

.mcp.json 中用 // 注释掉某个 MCP 服务器条目后,该服务器的工具仍然出现在 Claude 的 deferred tools 列表中,导致 Claude 误认为该服务器处于激活状态并尝试调用其工具。

来源:GitHub Issue #51197

解决方案

根本原因是同一 MCP 服务器在 ~/.claude.json 中也有配置,.mcp.json 注释只停用了项目级配置,全局配置仍然生效。

检查全局配置文件:

bash
cat ~/.claude.json | grep -A5 "mcpServers"

找到重复的服务器条目后删除 ~/.claude.json 中对应的配置,重启 Claude Code 即可。

注意: Claude Code 不会提示"工具来自哪个配置文件",遇到预期已禁用的工具仍出现时,应主动排查以下位置是否有重复注册:

  • ~/.claude.json(全局)
  • .claude/settings.json(项目级)
  • .mcp.json(项目 MCP 配置)