Github 原文:shareAI-lab/learn-claude-code
问题
在这一篇文章之前,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 | 外部服务,实现 tools/list + tools/call |
| assemble_tool_pool | 把内置工具和 MCP 工具组装成一个工具池 |
| mcp__server__tool 命名 | 避免不同 server 的工具名冲突 |