用途
learn-mcp 是一个聚焦“模型上下文协议(Model Context Protocol,简称 MCP)”学习路线的交互式导师技能,属于 AI Engineering from Scratch 项目的 learn-mcp 技能。它的目标是引导学习者沿着一条既定的 MCP 学习路径逐步学习:一次调用覆盖一节课,学习者在学习过程中需要检查请求与响应、预测边界结果、运行或手工跟踪实验,并在推进到下一课之前记录课程检查点。
主要能力
- 启动或恢复学习路径:支持 Codex(使用
learn-mcp,或从/skills中选择)与 Claude Code(使用/learn-mcp)等主机;其他兼容主机可使用learn-mcp来启动或恢复 MCP 路径。技能名称为可移植的learn-mcp,不应把某一主机的语法当作协议规则。 - 读取路线后选择课程:以
learning-paths/model-context-protocol.json为事实来源;优先使用本地文件,否则从https://raw.githubusercontent.com/rohitg00/ai-engineering-from-scratch/main/<path>获取所需文件。按照清单中的 lessons 数组顺序推进,必需的顺序为 06、07、08、09、10、11、12、13、14、15、16、18、17、28、29、30、31。第 16 课之后的数字顺序导航不再是路线。 - 逐课教学:针对选定的课程,完整阅读
docs/en.md与quiz.json;仅在当前教学步骤需要时读取或运行code/与outputs/。使用课程声明的协议时代,不得把旧版握手规则混入现代无状态跟踪。第 23 课是唯一的可选顶峰课程,仅在所有必需行完成后,且清单中两个前置路径第 19 与第 20 课完成后提供。 - 确定证据模式:在第一个可执行检查点之前,需要判断课程文件是否在本地可用、
python3 --version是否成功、学习者是否能在当前工作目录写入MCP-LEARNING.md,以及若学习者选择第 07 课的可选第二实现,是否存在 TypeScript 运行器。 - 进度管理:使用当前工作目录中的
MCP-LEARNING.md;不要把该路线放进LEARNING.md,也不要修改 Agent Skills 的进度。若MCP-LEARNING.md存在则使用它;若MCP-ENGINEERING-LEARNING.md同时存在,不覆盖任一文件,报告冲突并询问哪个文件应负责下一次更新。若MCP-LEARNING.md缺失而MCP-ENGINEERING-LEARNING.md存在,则在同目录将其重命名为MCP-LEARNING.md后再教学,逐字节保留所有学习者笔记与证据行。仅在两个文件名都不存在时创建新状态文件,不得用空白模板替换旧进度。
使用方式
- 开始时:首次调用时立即开始第 06 课。从仓库根目录运行
python3 phases/13-tools-and-protocols/06-mcp-fundamentals/code/main.py,请学习者识别重复的协议版本与客户端能力、完整的server/discover结果、错误-32022,以及不存在协议会话创建或拆除。在展开第 06 课其余内容前记录这些观察。若命令无法运行,则展示第 06 课中一个现代请求与响应,请学习者标注每个信封字段,并将结果记录为概念证据,命令检查点保持待定。 - 证据模式:当本地文件与 Python 3 可用时使用可执行模式,记录绝对工作目录、确切命令、退出码、请求 id 与方法、所选协议时代,以及观察到的结果或错误;对令牌、密钥、Cookie、授权头和敏感参数值做脱敏。当仓库或运行时不可用时继续概念模式,阅读课程、手工跟踪一个小型请求与响应,并将证据标记为 Conceptual,运行时、传输、授权和部署检查保持 Pending,不得把手工跟踪描述为已执行通过。若需要可执行文件但缺失,可提出将仓库克隆到学习者选择的目录,等待确认后再克隆;概念课程必须在没有克隆的情况下仍然可用。
- 单课教学流程:标记选定行为 In progress,说明其清单路径、时长、组别、协议时代与证据模式;围绕该课要预防的一个生产故障提问,请学习者在解释前预测状态、JSON-RPC 结果或状态转换;画出一个请求边界:生产者、传输、消费者,以及各方验证的确切字段;区分协议状态、持久应用状态、传输状态、授权状态与 UI 状态;以小组块推进 Build It 与 Use It,对代码先解释一个不变量、请学习者预测,再运行或跟踪能证伪它的最小用例;练习一次成功与至少一次相关失败,优先使用确切的线上证据;要求课程清单 checkpointEvidence 中的每一项;逐条提问 quiz,不出示正确答案、答案索引或解释;仅在课程检查点与 quiz 完成后标记 Done,追加一行简洁的 Wire evidence,将分数加入 Notes,把下一行设为 Next 并更新 Current。
适用场景
适用于希望系统学习 MCP 的学习者,涵盖 MCP 基础、MCP 服务器、MCP 客户端、MCP 传输、资源与提示、模型输入与 MRTR、显式作用域与引出、持久任务、MCP Apps、MCP 安全、MCP 授权、生产认证、网关与注册表、工具契约与内容、可靠性与流控、注册表供应链、一致性工程等主题。必需时长约 23 小时 15 分钟,共 17 节必需课程加一节可选顶峰课程。
限制
- 不得将某一主机的语法呈现为协议规则。
- 不得把旧版握手规则合并进现代无状态跟踪。
- 不得用通过的单元测试替代指定的协议证据;不得从进程内函数推断 HTTP 行为,从认证推断授权,从超时推断取消,或从一个 SDK 推断一致性。
- 技能调用不授予网络、凭据、发布或部署权限。在任何非回环绑定、共享入口、托管端点、注册表发布或其他公开部署之前,需读取清单中的
publicDeploymentGate,要求可执行的 Lesson 15 检查点,审查目标与请求的权限,并获得学习者对外部操作的明确确认;若缺少必需证据,则教学或重跑 Lesson 15 并保持部署动作待定。 - 本地文件与运行时的可用性、TypeScript 运行器、可选顶峰课程的前置条件等依赖具体环境。