浏览 AI 知识库

MCP 连接失败怎么排查:检查进程、配置、认证、网络和权限

MCP 连接失败时,依次固定进程、配置、认证、网络和权限中的一层。每次只改变一个条件并保存日志,偶尔连上才不会掩盖真正原因。

沿完整工作流推进

前一阶段的可检查结果,是下一阶段的输入;中间证据不足时停在当前阶段。

  1. 01反复重装以后偶尔连上了,仍然不能说明故障已经解决
  2. 02先确认这次任务的起点、边界和交付
  3. 03从“进程或服务”走到“调用与资源权限”
  4. 04工具列表为空时,按证据顺序排除五层原因
  5. 05完成后的分层诊断报告
沿一件真实任务走到底

反复重装以后偶尔连上了,仍然不能说明故障已经解决

MCP 连接失败后用户反复重装包,配置、认证、网络和权限同时改变。最后偶尔连上,也没有证据说明问题在哪。

  • 失败层级与证据对应
  • 唯一改动可复现
  • 工具发现和真实调用都复测
本例材料

先确认这次任务的起点、边界和交付

需要确认本例内容
现有材料客户端显示 disconnected;Server 单独启动正常;stderr 有 `handshake timeout`;使用本地代理。
不能越过的边界按进程、配置加载、握手、认证、网络、工具发现与调用逐层;每次只改一个条件并保留日志。
要交付的结果分层诊断报告
处理记录

从“进程或服务”走到“调用与资源权限”

当前阶段实际处理
进程或服务本地命令是否启动、退出码和 stderr;远程端点是否解析、连通和返回预期协议。
配置文件位置、语法、作用域、命令路径、参数和环境变量是否被当前客户端实际读取。
认证Token 类型、过期、OAuth 回调、scope、用户和组织是否匹配目标资源。
工具发现连接成功后是否列出能力,Server 是否声明工具,客户端是否支持并授权。
调用与资源权限使用最小参数调用,关联客户端与 Server 日志,确认失败来自工具、网络还是资源本身。
一次故障记录

工具列表为空时,按证据顺序排除五层原因

层级观察到的现象记录的证据下一步
进程本地 Server 启动后立即退出stderr:找不到启动命令,退出码 127确认命令路径和运行时,不先改权限
配置命令在终端可运行,Client 看不到Client 实际读取的配置路径与编辑路径不同修正作用域后重新列工具
认证远程端点返回 401Token 已过期,scope 不含目标资源按官方流程续期并用最小权限复测
发现连接成功但工具列表为空Server 日志未声明工具或客户端版本不支持核对 Server 能力声明和客户端版本
资源工具可见但读取目录被拒绝资源路径不在允许根目录调整测试目录或授权,不扩大生产范围

每次只推进一层并保留原始错误;重新安装后恢复,不等于已经找到根因。

最终输出

完成后的分层诊断报告

诊断表确认进程与配置正常,关闭代理后握手成功,问题定位到代理拦截本地连接;恢复代理并加正确 bypass 后工具列表和只读调用都通过。没有重装 Server。

常见失败

为什么“连接恢复一会儿又断”还不能交付

连接恢复一会儿又断

原因
只验证了启动,没有观察生命周期和超时
怎么改
保留连续日志与时间线,检查进程退出、心跳、代理和资源限制
验收方式

分层诊断报告通过哪些检查才算完成

进一步核对

安全与排错:参考资料与核对入口