learn-mcp について
AI Engineering from Scratch の Model Context Protocol(MCP)専用ルートを対話形式で教えるスキルです。リクエストとレスポンスの確認、実行または概念上のチェックポイント、専用の進捗記録を通じて、1レッスンずつ学習を進めます。
主な機能
- 01順序に沿った MCP レッスン
- 02リクエストとレスポンスの分析
- 03実行または概念上のチェックポイント
- 04プロトコル証拠の記録
- 05クイズと進捗の記録
活用シーン
- 01MCP のプロトコル動作を順に学ぶ
- 02コードを実行できない場合にリクエストを追跡する
- 03MCP レッスンの証拠を記録する
MCP 対応
このスキルは 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)の学習ルートを案内します。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/rohitg00/ai-engineering-from-scratch/main/<path>
マニフェストの lessons 配列を order 順にたどってください。必須の順序は 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 で任意の 2 つ目の実装を選ぶ場合、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
ローカルで確認できる事実を確認してください。安全に推測できない選択や権限についてのみ尋ねてください。
10 分でレッスン 06 を開始する
初回の呼び出しでは、すぐにレッスンを開始してください。リポジトリのルートから、次を実行してください。
python3 phases/13-tools-and-protocols/06-mcp-fundamentals/code/main.py
学習者に、繰り返されるプロトコルバージョンとクライアント機能、server/discover の結果全体、エラー -32022、およびプロトコルセッションが作成も終了もされていないことを確認してもらってください。レッスン 06 の残りの内容に進む前に、これらの観察結果を記録してください。
コマンドを実行できない場合は、レッスンから最新のリクエストとレスポンスを 1 つずつ示し、すべてのエンベロープフィールドにラベルを付けてもらい、その結果を概念的なエビデンスとして記録してください。コマンドのチェックポイントは未完了のままにしてください。
公開デプロイのゲートを適用する
ループバック以外へのバインド、共有イングレス、ホストされたエンドポイント、レジストリへの公開、その他の公開デプロイを行う前に、マニフェストから publicDeploymentGate を読み込んでください。実行可能なレッスン 15 のチェックポイントを必須とし、対象と要求された権限を確認し、外部アクションについて学習者の明示的な確認を得てください。
必須のエビデンスが不足している場合は、レッスン 15 を教えるか再実行し、デプロイアクションを保留のままにしてください。スキルの呼び出しによって、ネットワーク、認証情報、公開、またはデプロイの権限が付与されることはありません。
1 つのレッスンを教える
- 選択した行を
In progressにします。マニフェストのパス、所要時間、グループ、プロトコルの時代、エビデンスモードを示します。 - このレッスンで防げる本番環境での障害を 1 つ提示します。説明する前に、ステータス、JSON-RPC の結果、または状態遷移を学習者に予測してもらいます。
- リクエストの境界を 1 つ図示します。プロデューサー、トランスポート、コンシューマー、およびそれぞれが検証する正確なフィールドを示します。プロトコルの状態、永続的なアプリケーション状態、トランスポートの状態、認可の状態、UI の状態を明確に区別します。
- 「Build It」と「Use It」を小さなセクションに分けて進めます。コードについては、不変条件を 1 つ説明し、予測を求めてから、その不変条件を反証できる最小のケースを実行するか、トレースします。
- 成功例を 1 つと、関連する失敗例を少なくとも 1 つ検証します。可能な限り、リクエスト ID、メソッド、プロトコルの時代、該当する場合はヘッダー、本文、ステータスまたはエラーコード、結果の型、終端状態など、正確なワイヤー上のエビデンスを示します。シークレット値は必ず伏せます。
- レッスンのマニフェストにある
checkpointEvidenceの各項目をすべて提示するよう求めます。ランタイムエビデンスは、観測した出力に基づくものにします。概念的なエビデンスには、未実行のコマンドと残っている不確実性を明記します。 postクイズの各項目を 1 問ずつ出します。クイズに段階分けされた項目がない場合は、すべての項目を出します。学習者が回答する前に、correct、回答の選択肢番号、説明を明かしてはいけません。返信のヒントに実際の正答の選択肢や回答の分布を記載してはいけません。Reply with one letter: <A|B|C|D>.を使用します。- レッスンのチェックポイントとクイズが完了した場合にのみ、行を
Doneにします。簡潔な Wire evidence の行を 1 つ追加し、Notes にスコアを追加して、次の行をNextに設定し、Currentを更新します。
指定されたプロトコルエビデンスの代わりに、ユニットテストの成功を用いてはいけません。プロセス内関数から HTTP の挙動を推測したり、認証から認可を推測したり、タイムアウトからキャンセルを推測したり、1 つの SDK から適合性を推測したりしてはいけません。
終了
クイズのスコア、記録した正確なチェックポイントエビデンス、保留中のランタイムまたはセキュリティエビデンス、次のマニフェストレッスンを伝えて終了します。学習者からルートを外れたいとの要望がない限り、このルートを続けます。