浏览 AI 知识库

MCP 出现 404、429、超时和断线,怎样检查端点、限流与网络

404、429、超时和断线分别指向端点、限流与网络状态。保留每次请求的地址、时间和响应,再决定改配置、等待还是停止重试。

先认准故障

先 404、再 429、最后超时,不能都解释成“配置坏了”

一次 MCP 调用先 404、改 URL 后 429、继续重试又超时。用户把三种响应都归因于“本地配置坏了”,不断重装。

  • 每个状态使用对应证据入口
  • 重试有限并遵守服务提示
  • 上游故障未误归因本地
按现象分支

MCP 429 超时,先从“404”这一类现象查起

404

原因
Server URL、base path、版本、资源或代理路由不匹配。
怎么改
从健康或能力端点开始核对最终 URL,检查代理实际转发路径和资源存在性。

429

原因
客户端、Server、上游或账号在某个时间窗限流。
怎么改
读取响应头和官方限制,降低并发并按退避重试;写操作先确认幂等。

超时

原因
连接、Server 处理、外部依赖或客户端总时限先触发。
怎么改
记录各阶段耗时和超时配置,缩小请求,避免只把时限调大。

断线

原因
进程退出、休眠、代理空闲、网络切换或服务重启。
怎么改
关联重连与 Server 生命周期,确认是否能安全恢复未完成调用。
本例材料

复测前,固定原始现象、环境和目标

需要确认本例内容
现有材料请求时间线含端点、状态、Retry-After、耗时和 requestId;远程服务有状态页与日志。
不能越过的边界404 查端点/资源,429 查限流和重试,超时查网络与上游耗时;遵守 Retry-After;设置有限重试。
要交付的结果请求时间线与重试决定
实际排错输入包

先收齐同一请求的 URL、时间、响应头与三层日志

输入证据脱敏后的实际值能回答的问题
最终 URL`https://mcp.example.test/mcp`;POST;Client v1.4是否请求了正确协议、路径和版本
时间与请求 ID2026-09-22T10:02:31+08:00;a17能否把 Client、Server 和上游记录对齐
状态与响应头429;`Retry-After: 30`;`X-Request-Id: a17`限流发生后应等待多久,哪一层返回
Client 日志第 1 次调用 30 秒后失败;随后立即重试 2 次是否存在过快重试或客户端总超时
Server 日志能力发现成功;工具调用转发上游;未执行写操作排除基础 404,并判断重试是否会产生副作用
网络条件公司代理开启;同一只读请求直连测试一次代理路径是否改变连接或超时

域名和请求 ID 为安全示例。真实排错要保留脱敏后的原始时间戳、完整响应头和对应日志,不粘贴 Token、Cookie 或业务数据。

请求时间线

同一条调用跨过 Client、Server 和上游三层

时间层级结果下一步
10:02:01Client向 `/mcp` 发起请求,请求 ID a17保留最终 URL 和超时设置
10:02:01Server能力发现成功,工具调用开始排除基础 404
10:02:31上游无响应,Server 30 秒超时测上游耗时,不只调大 Client 超时
10:03:10重试原调用是否成功未知写操作停止自动重放,只读请求按上限退避

URL、时间和请求 ID 是演示值。真实排错必须使用脱敏后的实际日志和响应头。

重试判断

先确认副作用,再决定是否自动重试

调用类型状态未知时可否自动重试条件
只读查询可能未返回通常可以有次数上限、退避和请求 ID
幂等更新可能已生效有条件服务明确支持幂等键并可回读
创建/发送/付款可能已改变外部状态不可以先查询实际状态并人工确认
修复前后

MCP 429 超时:按原条件复测的结果

Before

原始现象

不同失败被压成一条“连接不上”,每次同时改 URL、Token 和重试参数。

After

请求时间线与重试决定

404 由旧端点修正;429 按 Retry-After 等待且不并发重试;随后超时在服务状态页确认上游故障,停止本地修改。时间线清楚标出三段因果。

验收方式

请求时间线与重试决定通过哪些检查才算完成

进一步核对

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