2026-07-31T11:54:49.731Z
Claude Code MCP 日志:找到第一个失败的边界
使用事件范围的调试收据诊断 Claude Code MCP 的配置、批准、启动、发现、工具调用和结果故障。
如果您正在查找 Claude Code MCP 日志 ,请从解析的服务器状态开始,然后捕获一个事件范围的调试文件。不要从跟踪 Claude Desktop 日志目录开始:当前的 MCP 文档专门针对 Desktop 标记了这些文件系统路径,而 Claude Code 文档则为 /mcp 、 claude mcp list 、 claude --debug mcp 和 --debug-file 。 有用的结果不是“找到日志”。它是为了识别第一个失败的边界:配置、项目批准、流程启动、工具发现、工具执行或工具应该产生的外部结果。一根日志可以解释一个边界。它无法证明所有六个。 本指南使用最新的 Claude Code 文档和 npm 版本 2.1.220 ,于 2026 年 7 月 30 日检查。在每个事件中固定您安装的版本,因为 MCP 行为和诊断仍在变化。 在读取原始输出之前检查已解析状态 从出现问题的同一工作目录和用户帐户运行这些检查: 在受影响的 Claude Code 会话中,运行: 官方配置调试指南 表示 /mcp 显示已配置的服务器、连接状态和项目审批。 MCP 参考 添加了两个重要的操作细节: - 项目范围内的 .mcp.json 服务器可以保持待处理状态,直到工作区受到信任且服务器获得批准; - 连接的服务器仍然可以公开零个工具,并且 /mcp 报告该计数。 这些事实消除了三类盲目日志搜索: 已解决的证据 第一个决定 为什么日志不放在第一位 --- --- --- 服务器缺席 CONFIG MISSING 尚无加载的服务器进程可供诊断。检查范围和设置来源。 待批准 APPROVAL WAIT 这是合法的权限边界,而不是崩溃。以交互方式审核和批准它。 连接失败 捕获 MCP 调试证据 命令、路径、环境、身份验证或传输可能失败。 连接、零工具 重新连接,然后捕获 MCP 调试证据 启动成功,足以连接,但发现未生成可用的注册表。 互联互通,工具齐备 重现一次有界调用 连接运行状况没有说明所选工具或其外部效果。 对于本地 stdio 服务器,相对路径值得特别怀疑。 Claude Code 记录了 command 和 args 路径从 Claude Code 启动的目录解析,而不是从 .mcp.json 的位置解析。因此,服务器可以在一个存储库中工作,并在具有相同配置文本的另一个存储库中失败。 捕获范围内的 Claude Code MCP 调试文件 当前的 克劳德代码 CLI 参考 记录了两个相关标志: - --debug 启用调试模式并接受 mcp 等类别过滤器; - --debug-file <path 将调试输出写入显式路径并隐式启用调试模式。 创建一个私有事件目录,仅使用 MCP 调试类别启动一个新会话,并重现一个有限症状: 在该会话中,检查 /mcp 。如果服务器使用零工具连接,请使用其 重新连接 操作一次。如果存在工具,则仅调用重现问题的最小只读工具。不要仅仅为了使日志更有趣而重试可写调用。 将调试文件视为敏感文件。它可能包含绝对路径、服务器名称、环境详细信息、请求元数据或服务器 stderr。在事件收据中记录派生证据,然后根据您的安全策略保留或删除原始文件。不要仅仅因为文件包含访问令牌、提示正文、工具参数、结果或 stderr 文本而将它们复制到监视系统中。 公开的 针对每个 MCP 服务器日志文件的 Claude Code 功能请求 报告称,用户想要 Claude Code 的桌面样式持久文件。该问题是有用的边界证据,而不是产品保证。支持的事件过程应取决于记录的显式调试文件,而不是假定的默认每服务器路径。 将证据路径与传输相匹配 MCP协议修订调试指南 2026-07-28 绘制了关键的传输边界。 对于本地 stdio 服务器,stdout 携带协议消息。服务器诊断属于 stderr;将诊断文本写入标准输出可能会损坏协议流。当连接的服务器公开零工具时,Claude Code 的故障排除指南特别建议使用 claude --debug mcp ,因为这使得服务器 stderr 在调试证据中可用。 对于 Streamable HTTP ,客户端无法捕获远程服务器进程的 stderr。 Claude Code 调试文件仍然可以显示客户端连接和请求行为,但服务器内部故障需要服务器端日志或 OpenTelemetry 加上 HTTP 级别的检查。空的客户端调试段并不能证明远程服务没有执行任何操作。 这种区别可以防止一个常见的错误结论: 在收据中记录运输情况。没有它,“无 stderr”就会含糊不清。 构建内容最小化的事件收据 原始日志是调查的证据。收据是持久的健康记录。它可以在不存储内容的情况下保持有用: 保持分类器优先级明确: 我针对八个综合案例重述了这条规则。它正确区分了丢失的配置、批准等待、捕获的启动失败、零连接工具、工具错误、成功的工具响应但没有结果、已验证的结果以及调试证据不足的失败连接。所有八个预期状态都通过了。 最后两种情况是重要的边界。 JSON-RPC 成功或无错误工具结果是活动证据。如果任务承诺创建问题、更改记录、交付文件或更新目标,请单独验证该目标。如果没有该收据,正确的状态是 OUTCOME UNVERIFIED ,不健康。 选择最小的安全下一步动作 每个状态都应该导致一个有界响应: - CONFIG MISSING :检查设置范围和加载的克劳德代码的确切文件。不要更改服务器代码。 - APPROVAL WAIT :将批准传递给负责人。不要将等待描述为崩溃。 - STARTUP FAILED :修复范围调试证据中的第一个具体启动原因,然后重新连接一次。 - DISCOVERY EMPTY :比较初始化和工具列表证据;如果需要,使用 MCP Inspector 独立测试服务器。 - TOOL CALL FAILED :保留请求身份,识别重试是否安全,避免重放不确定的写入。 - OUTCOME UNVERIFIED :通过稳定标识符查询目的地。在您知道效果是否已经发生之前,请勿重新运行该工具。 - UNCERTAIN :收集缺失的边界证据或升级。未知是一种运行状态,而不是邀请猜测。 - HEALTHY :需要可用的 MCP 链和新鲜的、确定性的结果收据。 日志使失败变得可以解释。已解决的状态使其可定位。目的地收据可以验证恢复情况。将这些工作分开,克劳德代码 MCP 事件就变成了一个简短的证据练习,而不是一系列风险越来越大的重试。 Sidewisp 的设计围绕着连接、有用进展、工具和结果之间健康第一的区别。 Sidewisp 目前处于私密预览阶段。 通常不发货生产监控适配器和恢复执行器。