《MCP 协议设计与实现》完整目录
- 前言(当前)
- 第1章 为什么需要 MCP
- 第02章 架构总览:Host-Client-Server 模型
- 第03章 JSON-RPC 与消息格式
- 第04章 生命周期与能力协商
- 第05章 Tool:让 Agent 调用世界
- 第6章 Resource:结构化的上下文注入
- 第7章 Prompt:可复用的交互模板
- 第8章 TypeScript Server 实现剖析
- 第09章 TypeScript Client 实现剖析
- 第10章 Python Server 实现剖析
- 第11章 Python Client 实现剖析
- 第12章 STDIO 传输:本地进程通信
- 第13章 Streamable HTTP:远程流式传输
- 第14章 SSE 与 WebSocket
- 第15章 OAuth 2.1 认证框架
- 第16章 服务发现与客户端注册
- 第17章 sampling
- 第18章 Elicitation、Roots 与配置管理
- 第19章 Claude Code 的 MCP 客户端:12 万行的实战
- 第20章 从零构建一个生产级 MCP Server
- 第21章 设计模式与架构决策
前言
写作动机
2025 年,AI Agent 生态面临一个尴尬的现实:每个 Agent 框架都在重新发明工具集成的轮子。
Claude Code 有自己的工具系统,LangChain 有自己的 Tool 抽象,Cursor 有自己的集成方式。一个开发者写了一个"搜索 Jira 工单"的工具,想在 Claude Code 里用——得按 Claude Code 的格式实现一遍。想在 LangChain 里用——得按 LangChain 的 BaseTool 重写一遍。想在 Cursor 里用——又得再来一遍。
这就像 USB 标准出现之前的外设市场:每个厂商有自己的接口,买个鼠标还要看主板兼容性。
MCP(Model Context Protocol)就是 Agent 生态的 USB 标准。
它定义了一个开放的、标准化的协议,让任何工具只要实现一次 MCP Server,就能被所有支持 MCP 的 Client 调用——Claude Code、Claude Desktop、Cursor、Windsurf、Zed,以及未来更多的 Agent 平台。
2024 年 11 月 Anthropic 发布 MCP 的第一个版本时,社区的反应是"又一个协议?"。但短短半年内,MCP 的 GitHub 仓库获得了数万星标,被主流 AI 编程工具采纳,生态中涌现了数百个 MCP Server。这种增长速度说明了一个事实:Agent 生态确实需要一个标准协议,MCP 来得正是时候。
这本书讲什么
本书不是 MCP 的使用教程——官方文档已经做得很好了。
本书关注的是协议的设计与实现:
- 为什么选择 JSON-RPC 而不是 gRPC 或 REST?
- 能力协商机制如何保证前后向兼容?
- OAuth 2.1 认证框架为什么这么复杂?解决了什么问题?
- STDIO 和 Streamable HTTP 两种传输层各自的设计权衡是什么?
- Sampling 机制如何让 Server 反向调用 LLM 而不暴露 API Key?
- Claude Code 的 MCP 客户端(12 万行 TypeScript)是怎么集成的?
每一章从设计意图出发,深入 TypeScript SDK 和 Python SDK 的源码实现,最后提炼可迁移的协议设计模式。
本书读者
- MCP Server 开发者:想构建自己的 MCP Server,需要理解协议细节
- Agent 框架开发者:想在自己的框架中集成 MCP Client,需要理解 SDK 内部
- 协议设计者:对开放协议的设计方法论感兴趣
- AI 应用架构师:需要评估 MCP 是否适合你的 Agent 平台
本书组织
graph TD
P1["开篇\nCh0-1\n为什么需要 MCP"] --> P2["协议基础\nCh2-4\n架构·消息·生命周期"]
P2 --> P3["三大原语\nCh5-7\nTool·Resource·Prompt"]
P3 --> P4["SDK 实现\nCh8-11\nTS/Python Server/Client"]
P4 --> P5["传输层\nCh12-14\nSTDIO·HTTP·SSE·WS"]
P5 --> P6["认证安全\nCh15-16\nOAuth·发现·注册"]
P6 --> P7["高级特性\nCh17-19\nSampling·Elicitation·实战"]
P7 --> P8["总结\nCh20-21\n构建Server·设计模式"]
源码版本
本书基于以下版本分析:
| 组件 | 版本 | 获取方式 |
|---|---|---|
| MCP 协议规范 | 2025-11-25 | git clone https://github.com/modelcontextprotocol/specification.git |
| TypeScript SDK | 2.0.0-alpha.0 | git clone https://github.com/modelcontextprotocol/typescript-sdk.git |
| Python SDK | latest | git clone https://github.com/modelcontextprotocol/python-sdk.git |
核心源码目录:
- 规范文档:
docs/specification/2025-11-25/ - TS SDK:
packages/core/,packages/client/,packages/server/ - Python SDK:
src/mcp/client/,src/mcp/server/
致谢
感谢 Anthropic 团队发起 MCP 并保持开源,感谢社区贡献者构建了丰富的 MCP Server 生态。