当你的 MCP 工具失败时:错误、挂起和空结果——Claude Code 各自怎么处理
来源:dev.to — 2026-08-20
📋 概述
作者在 Bluesky 发了一句话:报错的 MCP 工具教给模型一些东西,而挂起的工具什么也教不了它。有人补充了比两者都糟的第三种情况——返回成功但空结果的工具:它不烧掉这一轮,而是烧掉接下来六轮,因为模型会继续在一个从未存在的答案上推理。于是作者回到规范和 Claude Code 文档,逐一核实三种失败模式实际会发生什么。
🔑 核心要点
- MCP 规范定义了两种独立错误通道:协议错误(JSON-RPC 标准错误)与工具执行错误(在工具结果里用 isError: true 上报)。
- 协议错误由客户端机制处理;工具执行错误被放进对话里,模型能读到并做出反应。
- 空结果比挂起更糟——它不消耗当前这一轮,而是让模型在虚构答案上连续浪费后续多轮推理。
- 区分两条错误通道,是自制 MCP 服务器最容易出错的第一步。
💡 金句
报错的工具教给模型一些东西,挂起的工具什么也教不了——而返回成功空结果的工具,烧掉的不是这一轮,而是接下来的六轮。
👍 0
👎 0
← 返回 dev.to 首页