learn-mcp について
Model Context Protocol(MCP)を学ぶ人向けのレッスンスキルです。指定ルートに沿って進み、実行結果と概念的な追跡を区別して証拠を記録します。初回は第06課から始まります。
主な機能
- 01manifestの必修順に沿ったレッスン
- 02実行モードと概念モードの区別
- 03リクエスト、応答、進捗の記録
- 04クイズとチェックポイントによる確認
- 05公開デプロイ前のゲート
活用シーン
- 01指定ルートに沿ったMCP学習
- 02実行やトレースによるリクエスト分析
- 03証拠を記録して学習を再開
MCP 対応
Model Context Protocol(MCP)を教えるスキルで、プロトコルのやり取りとレッスンのチェックポイントを案内します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ fancyboi999/ ai-engineering-from-scratch-zh --skill learn-mcpインストール後、Claude Code で/learn-mcpを入力して読み込まれたか確認します。
詳細
Model Context Protocol(MCP)を学ぶ
教授向けに特化した Model Context Protocol(MCP)学習パスです。1 回の呼び出しで 1 レッスンを扱います。学習者はリクエストとレスポンスを確認し、境界での結果を予測し、ラボを実行または手動で追跡してから、次に進む前にレッスンのチェックポイントを記録します。
ホストの呼び出し構文を使用する
ポータブルなスキル名は 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/fancyboi999/ai-engineering-from-scratch-zh/main/<path>
manifest の lessons 配列とその order に従います。必修の順序は 06、07、08、09、10、11、12、13、14、15、16、18、17、28、29、30、31 です。第 16 課の後は、数字上の次の課がこの学習パスの次の課ではありません。
選択したレッスンの docs/zh.md と quiz.json を完全に読みます。現在の指導ステップで必要な場合に限り、code/ と outputs/ を読み取るか実行します。レッスンで宣言された protocol era を使用します。legacy handshake のルールを最新のステートレスなトレースに決して混在させないでください。
第 23 課は唯一の任意の capstone です。必修項目をすべて完了し、manifest の prerequisitePaths にある第 19 課と第 20 課の両方を完了した後に限り、提示できます。この学習パスに他のレッスンを黙って追加しないでください。
証拠モードを確立する
最初の実行可能なチェックポイントの前に、次の項目を確認します。
- レッスンファイルをローカルで利用できるか。
python3 --versionが成功するか。- 学習者が現在の作業ディレクトリに
MCP-LEARNING.mdを書き込めるか。 - 学習者が第 07 課の任意の第 2 実装を選ぶ場合、TypeScript runner があるか。
ローカルファイルと Python 3 の両方を利用できる場合は、executable mode を使用します。絶対作業ディレクトリ、正確なコマンド、exit code、request id と method、選択した protocol era、および観察した結果またはエラーを記録します。tokens、secrets、cookies、authorization headers、および機密性の高いパラメーター値は伏せます。
リポジトリまたは runtime を利用できない場合は、conceptual mode を使用します。レッスンを読み、小規模な request と response を手動で追跡し、証拠に Conceptual と記します。runtime、transport、authorization、および deployment の確認事項は Pending のままにします。手動での追跡を、実行して成功したものとして説明しないでください。
実行可能なファイルが必要なのに存在しない場合は、学習者が選択したディレクトリにリポジトリを clone する選択肢を提示します。clone する前に確認を待ちます。clone しない場合でも、概念学習は利用できる状態にしてください。
進捗を見つける、または作成する
現在の作業ディレクトリで MCP-LEARNING.md を使用します。この学習パスを LEARNING.md に書き込んだり、Agent Skills の進捗を変更したりしないでください。
状態が存在しないと判断する前に、旧ファイル名を安全に処理します。
MCP-LEARNING.mdが存在する場合は、それを使用します。MCP-ENGINEERING-LEARNING.mdも存在する場合、どちらのファイルも上書きせず、競合を報告し、次回の更新をどちらのファイルが担当するか尋ねます。MCP-LEARNING.mdが存在せず、MCP-ENGINEERING-LEARNING.mdが存在する場合は、指導を始める前に、同じディレクトリ内で legacy ファイルの名前をMCP-LEARNING.mdに変更します(rename the legacy file toMCP-LEARNING.md)。学習者のメモと証拠行をすべて、バイト単位で保持します(Preserve every learner note and evidence row byte for byte)。アトミックな rename ができない場合は、先にコピーし、新しいファイルが一致することを確認してから legacy ファイルを削除します。- 新しい状態ファイルを作成するのは、両方のファイル名が存在しない場合に限ります。legacy の進捗を空のテンプレートで置き換えないでください。
ファイルが存在する場合は、学習者のメモと証拠をすべて保持します。最初に In progress または Next と記された行から続けます。必修項目がすべて Done の場合は、任意の capstone の前提条件を確認し、不足しているパスを正確に報告します。学習パスを再開してはいけません。
ファイルが存在しない場合は、判定テストを行わずに作成します。
# 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
ローカルで観察できる事実を確認します。安全に推測できない選択や権限についてのみ質問します。
10 分以内に第 06 課を開始する
初回の呼び出しでは、直ちにレッスンを開始します。リポジトリのルートから実行します。
python3 phases/13-tools-and-protocols/06-mcp-fundamentals/code/main.py
学習者に、重複した protocol version と client capabilities、完全な server/discover result、エラー -32022、および protocol-session の作成も終了処理もないことを特定してもらいます。第 06 課の残りの内容に進む前に、これらの観察結果を記録します。
コマンドを実行できない場合は、レッスンから最新の request と response を提示し、各 envelope field を特定してもらい、その結果を conceptual evidence として記録します。コマンドのチェックポイントは pending のままにします。
公開デプロイの必須ゲートを適用する
non-loopback bind、共有 ingress、hosted endpoint、registry publication、またはその他の公開デプロイの前に、manifest から publicDeploymentGate を読みます。第 15 課の executable checkpoint を必須とし、対象と request の authority を確認し、外部操作の前に学習者の明示的な確認を得ます。
必須の証拠が不足している場合は、第 15 課を教えるか再実行し、デプロイ操作を pending のままにします。スキルの呼び出しは、network、credential、publishing、または deployment の権限を与えるものではありません。
レッスンを教える
- 選択した項目を
In progressに設定します。manifest path、duration、group、protocol era、および evidence mode を説明します。 - このレッスンで防げる本番環境の障害を 1 つ説明します。先に status、JSON-RPC result、または state transition を予測してもらってから、説明します。
- request boundary を図示します。producer、transport、consumer、および各要素が検証する正確な fields を示します。protocol state、durable application state、transport state、authorization state、および UI state を互いに区別します。
- Build It と Use It をセクションに分けて進めます。コードについては 1 つの invariant を説明し、結果を予測してもらってから、その invariant を反証できる最小限のケースを実行または追跡します。
- 成功例を 1 つと、関連する失敗例を少なくとも 1 つ演習します。正確な wire evidence を優先して記録します。具体的には request id、method、protocol era、該当する場合は headers、body、status または error code、result type、および terminal state です。secret の値は伏せます。
- コースの manifest にある
checkpointEvidenceの各項目を求めます。runtime evidence は観察した出力に基づく必要があります。conceptual evidence では、実行していないコマンドと残る不確実性を明示する必要があります。 postの quiz 項目をすべて 1 問ずつ出題します。quiz に staged 項目がない場合は、すべての項目を出題します。学習者が回答する前に、correct、答えのインデックス、または解説を明かさないでください。回答を促す文に実際の正解の文字や回答の分布を含めてはいけません。Reply with one letter: <A|B|C|D>.を使用します。- コースのチェックポイントと quiz の両方が完了した場合に限り、
Doneに設定します。簡潔な Wire evidence を追記し、得点を Notes に追加し、次の行をNextに設定して、Currentを更新します。
単体テストに合格しても、指定された protocol evidence の代わりにはなりません。in-process function から HTTP behavior を推測したり、authentication から authorization を推測したり、timeout から cancellation を推測したり、1 つの SDK から conformance を推測したりしないでください。
終了
最後に、quiz の得点、記録した正確な checkpoint evidence、pending の runtime または security evidence、および manifest 上の次のレッスンを提示します。学習者が終了を希望しない限り、この学習パスを続けます。