MCP 模型上下文协议:十二、自测、练习与源码入口

🇬🇧 English version: mcp-guide/07-next-steps.md | 📦 GitHub: https://github.com/geekchow/mcp-explain
你在哪里: 六个阶段之后。这一篇是发射台,不是课程。


一、自测

如果下面这些你能不翻书答上来,这个系列你就算读完了:

  1. MCP 为什么把审批闸门放在宿主,而不是服务器或协议里?
  2. initialize 时的能力协商,究竟买到了运行时特性探测买不到的什么?
  3. 某个服务器需要用户在操作中途从三个选项里挑一个。用哪个原语?而且在此之前必须发生过什么,它才是合法的?
  4. 什么时候该用 JSON-RPC 错误,什么时候该用 isError: true?在 TypeScript SDK 里,一个非法的枚举值会产生哪一种------为什么那才是对的选择?
  5. 你的服务器返回了 5000 行,模型被绕晕了。按帮助程度从大到小说出三个修法。
  6. 是什么阻止了签发给服务器 A 的令牌被重放到服务器 B?
  7. stdio 服务器为什么绝不能往 stdout 写东西?违反了会表现出什么症状?
  8. "当前值班排班表"该做成资源 还是工具?为什么?

答案分别在深入 01 §2.3深入 02 §2.2深入 04 §2.5深入 04 §2.2深入 04 §2.6深入 05 §2.1深入 03 §2.1深入 04 §2.1

二、动手做,按这个顺序

  1. 把示例跑起来。examples/README.md------安装、连上 Claude Code,然后用 printf 直接手搓协议,直到那些报文不再神秘。
  2. 写一个 40 行的服务器,做你真正需要的事:把团队的操作手册做成资源、一个针对开发库的查询工具、一个把你反复重复的流程编码下来的提示。
  3. 故意给它写一段糟糕的描述,看着模型用错,然后改好那段文字。没有比这更快的工具设计教学法。
  4. 给一个会改动状态的工具加上征询,亲身体会"模型问了一下"和"服务器坚持要问"之间的差别。
  5. 把它迁到 Streamable HTTP 并加上 OAuth。 这是一个玩具服务器变成组织级服务器的分水岭,也是深入 05不再是理论的时刻。

三、源码入口

当规范和现实打架时,按这个顺序读代码:

你想搞懂什么 去哪看
规范本身 modelcontextprotocol.io 上的规范------先读 lifecycle ,再读 tools ,然后 authorization;其余略读
一个服务器实际是怎么组装的 @modelcontextprotocol/sdk(TypeScript)------server/mcp.tsregisterTool/registerResource/registerPromptserver/stdio.tsserver/streamableHttp.ts 看传输
客户端如何驱动一个会话 同一个 SDK 的 client/index.ts------请求表、超时、进度与取消都在这里
线上到底跑的是什么报文 MCP Inspectornpx @modelcontextprotocol/inspector <你的服务器命令>
宿主侧的配置与权限 claude mcp --helpclaude mcp list,以及你 settings.json 里的 permissions 块------再加上会话里的 /mcp
参考实现 modelcontextprotocol/servers 仓库------先读小的;filesystem 服务器是工具粒度的好范本

四、延伸阅读(按投入产出排序)

  1. 规范的 Authorization 那一页。 很短,而且是绝大多数实现做错的那部分。
  2. 规范的 Security best practices 那一页。 混淆代理、令牌透传、会话劫持------深入 05点名过的攻击,在这里有规范性的表述。
  3. Claude Code 的 MCP 文档。 作用域、.mcp.json--mcp-config--strict-mcp-configMAX_MCP_OUTPUT_TOKENS、插件打包的服务器。
  4. LSP(Language Server Protocol,语言服务器协议)规范。 MCP 的前辈。两份规范并排读,会让 MCP 的选择显得必然,而不是任意。
  5. 随便挑两个参考服务器做 diff。 工具粒度是一种靠比较养成的品味,不是靠规则。

五、本系列刻意停在哪里

好让你知道自己还不知道什么:

  • 2025-06-18 之后的协议修订版。 这里的概念是稳定的,但更新的修订版会加特性;查一下你的 SDK 协商的是哪个版本,读那个版本的变更说明。
  • 服务端扩缩容。 会话亲和性、负载均衡后的无状态模式、连接数限制,这些部署话题本系列只是点到(深入 03 §2.2)。
  • 注册中心与分发。 服务器如何在一个组织内被发现、发布和版本锁定。
  • 评估工具设计。 衡量模型是否真的用好了你的服务器------这门功夫才能把一个能跑的服务器变成一个好服务器。

📦 配套代码仓库

本文是一个开源指南系列的一部分。整个系列、全部图表源码,以及一个可以直接让 Claude Code 连上去的可运行 MCP 服务器,都在同一个仓库里:

https://github.com/geekchow/mcp-explain

本页源文件 mcp-guide-zh/07-next-steps.md
英文原版 mcp-guide/07-next-steps.md
可运行示例服务器 mcp-guide/examples/orders-db-server
系列起点 mcp-guide-zh/00-overview.md

欢迎指正------如果某个协议细节随新版本发生了变化,欢迎提 issue。


📚 返回专栏目录

相关推荐
cubestudio1 小时前
海光 DCU 怎么接入 Kubernetes 和 AI 平台?CubeStudio 海光 DCU 适配实操(整卡 / 共享 / 两种 vDCU 虚拟化 + DeepSeek 部署)
人工智能·机器学习·gpu
火眼金睛炼单词1 小时前
单词发音学习深度解读:方法步骤与优化策略
人工智能·学习
dreamrise1 小时前
Windows AI 编程环境从零搭建指南[20260909]
人工智能
旺仔小馒头wang1 小时前
AI 与教育行业如何协同,助力孩子高效学习
人工智能·学习
空堂与归1 小时前
六步带你从零搭 Claude 电商 Agent(附源码解析)
人工智能
进击的横打1 小时前
【人工智能】AI时代公司组织架构的重构
大数据·人工智能·重构
枫彩1 小时前
WorkBuddy + 悟道 MCP:把盘后复盘保存成三个可对照的文件
人工智能·a股·股票数据·mcp·workbuddy
SimpleLearingAI1 小时前
DFL:分布焦点损失——让框回归“学分布“,而不只是“猜数字“
人工智能·数据挖掘·回归
唐兴通个人1 小时前
新华保险集团携手浙江大学,邀请唐兴通老师主讲AI时代b保险新媒体营销增长专项培训
人工智能