MCP 服务器连接成功只代表 RPC 能通,不等于 Agent 知道何时调用、怎么排序多次调用、如何识别结果错误。文章给出了 MCP 能力与实际可用之间的 gap 分析和修复思路。
客户端显示绿点,工具图标在列表里,Agent 的配置文件也注册了服务器。所有信号都显示"已连接"——但 Agent 仍然做不到你添加这个工具时所期望的事情。它要么完全忽略这个工具,要么调用了但返回了错误的结果。
这种情况大多数时候不是连接 bug,而是分类错误:连接和能力是两个不同的问题,修好第一个并不会触及第二个。
一个 MCP 服务器"已连接"意味着 Agent 可以调用它的函数——握手成功、工具 schema 已注册、RPC 能通。仅此而已。它没有说明 Agent 是否知道何时调用它、如何编排多个调用,或者什么是错误结果以便它能捕获。
大多数"我的 MCP 工具不工作"的问题实际上就出在这个差距上。Agent 有通往工具的电话线,却不知道该往里说什么。
这提供的是访问权限。例如 Composio 的 Tool Router 会颁发一个按会话的 MCP URL 给你注册——Agent 现在可以直接调用这个工具的函数了。它没有给 Agent 的是:流程。没有编排,没有"做这个之前先检查那个",没有定义好的失败模式。一个有活跃连接却没有剧本的 Agent 不会大声失败——它会产生自信、看起来合理但错误的调用。这种失败模式看起来像是"工具不工作",而实际上工具工作正常,Agent 只是在那里瞎猜。
这才是通常缺失的那块。它不需要基础设施——就是一份文档:何时使用这个工具、正确的调用模式(包括错误处理)、什么样的结果表示调用实际成功而不是静默返回了垃圾、以及要避免什么。一个 Agent 同时读取流程文档和拥有活跃连接,与一个对着原始 API 访问自行即兴发挥的 Agent 是完全不同的情况。
用于那些还没有 MCP 服务器的工具。一旦写好,同样的规则就适用——服务器是访问通道,而不是关于如何使用它的指令。
如果你的 Agent 有一个已连接的工具,但要么忽略它要么滥用它,不要从重新检查连接开始。检查 Agent 是否有任何东西告诉它何时该使用这个工具、以及正确的调用是什么样的。十有八九,"坏了的集成"其实是一个工作正常的连接加上背后零流程——而修复方法是一个文本文件,而不是对着 MCP 服务器调试。
另一个值得养成的习惯:不要把"显示已连接"当作集成工作的证明。在认为设置完成之前,让 Agent 实际运行一次真正的调用并向你展示结果。一个在握手时能连接的服务器仍然可能在第一次真实调用时失败——auth 作用域设错了、schema 不匹配、还没遇到的速率限制。"它连接了"和"它能用"是两个不同的说法,只有一个值得信任。
完整的三条路径分解,以及更多关于验证步骤的内容:https://agentkitworks.com/answers/how-to-add-tools-to-claude-code