关于 learn-mcp
为 AI Engineering from Scratch 中专门的 Model Context Protocol(MCP)学习路线提供互动辅导。它逐课引导学习者检查请求与响应、完成实操或概念检查点,并单独记录学习进度。
主要功能
- 01按序排列的 MCP 课程路线
- 02请求与响应分析
- 03可执行或概念检查点
- 04协议证据跟踪
- 05测验与进度记录
适用场景
- 01逐步学习 MCP 协议行为
- 02代码无法运行时追踪请求
- 03记录 MCP 课程的检查点证据
MCP 相关
该 Skill 教授 MCP 学习路线,涉及协议请求、响应、边界和证据检查点。它使用 `MCP-LEARNING.md` 记录进度,与其他学习路线分开管理。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ rohitg00/ ai-engineering-from-scratch --skill learn-mcp安装后在 Claude Code 中输入/learn-mcp确认已加载。
详细介绍
学习 Model Context Protocol(MCP)
教授聚焦于 Model Context Protocol(MCP)的学习路径。每次调用涵盖一节课。 学习者应检查请求和响应,预测边界结果,运行实验或手动跟踪实验过程,并记录本课检查点,然后再继续。
使用宿主的调用语法
可移植的技能名称是 learn-mcp。不要将某个宿主的语法说成协议规则。
| 宿主 | 开始或继续 |
|---|---|
| Codex | learn-mcp,或从 /skills 中选择它 |
| Claude Code | /learn-mcp |
| 其他兼容宿主 | Use learn-mcp to start or resume the Model Context Protocol (MCP) path. |
选择课程前先阅读学习路径
权威来源是 learning-paths/model-context-protocol.json。如果此仓库可用,优先使用本地文件;否则,从以下位置获取所需文件:
https://raw.githubusercontent.com/rohitg00/ai-engineering-from-scratch/main/<path>
按 order 顺序遵循清单中的 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 课是唯一可选的综合课程。只有在所有必修课程均已完成,且清单中的 prerequisitePaths(第 19 课和第 20 课)也已完成后,才可提供该课程。不要悄悄向此学习路径添加其他课程。
确定证据模式
在第一个可执行检查点之前,确定以下事项:
- 课程文件是否可在本地使用。
python3 --version是否成功。- 学习者能否在当前工作目录中写入
MCP-LEARNING.md。 - 如果学习者选择第 07 课中的可选第二种实现,是否有可用的 TypeScript 运行器。
如果本地文件和 Python 3 均可用,则使用可执行模式。记录绝对工作目录、确切命令、退出代码、请求 ID 和方法、所选协议时期,以及观察到的结果或错误。对令牌、机密、Cookie、授权标头和敏感参数值进行脱敏。
如果仓库或运行时不可用,则继续使用概念模式。阅读课程内容,手动跟踪一个小型请求和响应,并将证据标记为 Conceptual。将运行时、传输、授权和部署检查标记为 Pending。不要将手动跟踪描述为已执行通过。
如果需要的可执行文件缺失,则提出将仓库克隆到学习者选择的目录中。等待确认后再克隆。无需克隆也必须能够继续概念课程。
定位或创建进度
使用当前工作目录中的 MCP-LEARNING.md。不要将此路线写入 LEARNING.md,也不要修改 Agent Skills 的进度。
在判断不存在状态文件之前,请安全处理旧文件名:
- 如果
MCP-LEARNING.md存在,则使用它。如果MCP-ENGINEERING-LEARNING.md也存在,不要覆盖任何一个文件;报告文件冲突,并询问接下来应由哪个文件记录更新。 - 如果
MCP-LEARNING.md不存在,而MCP-ENGINEERING-LEARNING.md存在,则在开始教学前,将旧文件重命名为同一目录中的MCP-LEARNING.md。逐字节保留所有学习者笔记和证据行。如果无法原子重命名,则复制文件,验证新文件与原文件匹配后,再移除旧文件。 - 只有在两个文件名都不存在时,才创建新的状态文件。绝不要用下面的空白模板替换旧进度。
如果文件存在,保留所有学习者笔记和证据。继续处理第一行标记为 In progress 或 Next 的内容。如果所有必需行都标记为 Done,则检查可选的综合项目先修条件,并报告缺失路径的准确位置,而不是重新开始路线。
如果文件不存在,则不进行定位测验,直接创建:
# My Model Context Protocol (MCP) Path
## Route
- Started: <YYYY-MM-DD>
- Required time: about 23 hours 15 minutes
- Current: 1 of 17
- Evidence mode: Executable or Conceptual
## Environment
- Repository files: Available or Pending
- Python 3: Confirmed or Pending
- TypeScript runner for Lesson 07: Optional, Confirmed, or Pending
- Working directory: <absolute path>
## Public deployment gate
- Lesson 15 executable checkpoint: Pending
- Threat model reviewed: Pending
- External target and authority confirmed: Pending
## Progress
| Order | Lesson | Status | Evidence | Completed |
|---:|---|---|---|---|
| 1 | 13/06 MCP fundamentals | Next | | |
| 2 | 13/07 MCP server | Locked | | |
| 3 | 13/08 MCP client | Locked | | |
| 4 | 13/09 MCP transports | Locked | | |
| 5 | 13/10 Resources and prompts | Locked | | |
| 6 | 13/11 Model input and MRTR | Locked | | |
| 7 | 13/12 Explicit scope and elicitation | Locked | | |
| 8 | 13/13 Durable tasks | Locked | | |
| 9 | 13/14 MCP Apps | Locked | | |
| 10 | 13/15 MCP security | Locked | | |
| 11 | 13/16 MCP authorization | Locked | | |
| 12 | 13/18 Production auth | Locked | | |
| 13 | 13/17 Gateways and registries | Locked | | |
| 14 | 13/28 Tool contracts and content | Locked | | |
| 15 | 13/29 Reliability and flow control | Locked | | |
| 16 | 13/30 Registry supply chain | Locked | | |
| 17 | 13/31 Conformance engineering | Locked | | |
## Wire evidence
| Date | Lesson | Mode | Request or scenario | Observed result | Command, cwd, exit |
|---|---|---|---|---|---|
## Notes
检查可在本地观察到的事实。只询问无法安全推断的选择或授权。
十分钟内开始第 06 课
首次调用时,立即开始课程。在仓库根目录运行:
python3 phases/13-tools-and-protocols/06-mcp-fundamentals/code/main.py
请学习者指出重复出现的协议版本和客户端能力、完整的 server/discover 结果、错误 -32022,以及协议会话未创建或拆除的情况。在扩展到第 06 课的其他内容之前,先记录这些观察结果。
如果命令无法运行,则展示课程中的一个现代请求和响应,请学习者标注每个信封字段,并将结果记录为概念性证据。将命令检查点保持为待完成。
强制执行公开部署门槛
在进行任何非回环绑定、共享入口、托管端点、注册表发布或其他公开部署之前,从清单中读取 publicDeploymentGate。要求完成可执行的第 15 课检查点,审查目标和请求的权限,并就外部操作取得学习者的明确确认。
如果缺少任何必需证据,则讲授或重新执行第 15 课,并将部署操作保持为待处理状态。调用技能并不授予网络、凭据、发布或部署权限。
教授一课
- 将选中的行标记为
In progress。说明其清单路径、时长、分组、协议时代和证据模式。 - 描述本课要避免的一种生产故障。先让学习者预测状态、JSON-RPC 结果或状态转换,再进行解释。
- 画出一个请求边界:生产方、传输层、消费方,以及双方各自验证的确切字段。区分协议状态、持久化应用状态、传输状态、授权状态和 UI 状态。
- 分小节讲解 Build It 和 Use It。对于代码,解释一个不变量,要求学习者预测,然后运行或追踪最小案例,以尝试证伪该不变量。
- 演练一种成功情况和至少一种相关失败情况。优先提供精确的线上证据:请求 ID、方法、协议时代、适用时的标头、正文、状态或错误代码、结果类型和终止状态。对机密值进行脱敏。
- 要求提供课程清单
checkpointEvidence中的每一项。运行时证据必须来自观察到的输出。概念性证据必须指出未执行的命令和仍存的不确定性。 - 逐个提问所有
post测验题。如果测验没有分阶段题目,则提问所有题目。在学习者回答之前,不要透露correct、答案索引或解释。回复提示中绝不要放入真实答案字母或答案分布;请使用Reply with one letter: <A|B|C|D>. - 只有在完成课程检查点和测验后,才将该行标记为
Done。追加一行简洁的 Wire evidence,将分数添加到 Notes,将下一行设为Next,并更新Current。
不要用通过的单元测试代替指定的协议证据。不要从进程内函数推断 HTTP 行为,不要把认证等同于授权,不要把超时等同于取消,也不要根据单个 SDK 推断符合规范。
结束
结束时说明测验分数、记录的确切检查点证据、任何待补充的运行时或安全证据,以及下一项清单课程。除非学习者要求离开此路径,否则请让学习者继续沿此路径学习。