"外接工具, 标准协议" — 发现、组装、调用,Agent 不需要知道工具是谁写的。
问题
在这一篇文章之前,Agent 的所有工具都是手写的——bash、read、write、task、worktree。每个工具的输入验证、执行逻辑、错误处理,都是你(AI)一行行写的。
现在你有 3 个外部服务想接入:公司的 Jira API(查 issue、建 ticket)、自建的部署系统(触发 deploy、看日志)、团队的 Notion 知识库(搜文档、建页面)。你不想为每个服务重写一套工具代码。
你需要一个标准协议——外部服务只要实现它,Agent 就能直接调用,不管服务用什么语言写的。
解决这个问题的就是 MCP,如果你对 MCP 还没有一个基础的了解,可以查看这篇文章:MCP
解决方案
MCP(Model Context Protocol)定义了 Agent 如何发现和调用外部工具。核心概念:
概念 | 作用 |
|---|---|
MCPClient | Agent 端的客户端,连接 server、发现工具、调用工具 |
MCP Server | 外部服务,实现 |
assemble_tool_pool | 把内置工具和 MCP 工具组装成一个工具池 |
mcp__server__tool 命名 | 避免不同 server 的工具名冲突 |