AICU Study

CLAUDE ACADEMY 公式レクチャー

MCP 応用 — sampling・notifications・roots とトランスポート

Academy 唯一の「上級」コース

上級 全12レッスン 約1.5時間 クイズあり 修了バッジあり 提供: Anthropic · 英語

マーシャが教える学習ポイント

この講座で何を学べるかを、日本語で聴けます。約8分21秒。
受講を始める前に聴いておくと、公式サイトを見ながらの理解度が上がります。

再生速度

話しているのは AICU のボイス「マーシャ・アランチャ」(合成音声)です。 内容は AICU が独自に書いた解説で、公式教材の音読ではありません。

このコースの内容

入門の先にあるプロトコル仕様側のトピックを、解説とウォークスルーの2レッスン構成で扱う。sampling はサーバーが接続先クライアント経由でLLM呼び出しを依頼する仕組みで、AIのコストと複雑さをサーバーからクライアントへ移せる。notifications はコンテキストオブジェクトとログコールバック、長時間処理の進捗報告。roots は特定ディレクトリへのアクセスをセキュリティ境界付きでサーバーに与える仕組み。後半は仕様の中身で、request-result 対と notification の違い、STDIO トランスポートで必須となる初期化ハンドシェイク、SSE によるサーバーからクライアントへの通信とセッション管理・二重接続構成、設定フラグが機能に与える影響、そしてロードバランサ下で水平スケールさせるためにステートレスHTTPを選ぶ判断とそのトレードオフ。全12レッスン1.5時間。

マーシャの注目ポイントCloudflare Workers に MCP サーバーを載せるなら、ステートフル/ステートレスの判断を扱う終盤3レッスンが直接効きます。

学習目標

日本語は AICU による要約です。Anthropic 公式の翻訳ではありません。

カリキュラム — 全12レッスン

  1. 1
    サンプリングSampling

    このレッスンでは、MCP の Sampling 機能が解決する課題と実際の動作フローを学べます。サーバー側とクライアント側でどのコードを用意すればよいか(サンプリング要求の送受信やコールバック実装)を実践的に理解し、費用負担や認証の扱いがどう変わるかを把握できます。公開サーバーでの活用場面や導入すべきタイミングも明確になります。

    • サンプリングが解く問題
    • サンプリングの仕組み
    • サンプリングの利点
    • 実装
    • サーバー側
    • クライアント側
    • サンプリングの適用場面
  2. 2
    サンプリング実装ウォークスルーSampling walkthrough

    このレッスンでは、MCP のサンプリング機能を実装レベルで理解し、実際にモデル応答のサンプル生成がどのように行われるかを把握できます。サンプリングの流れや重要な概念、エッジケースを通して、サンプラーの振る舞いを制御・デバッグする方法が学べます。開発者が CLAUDE.md と連携して正確な出力を得るための実践的な知見が得られます。

  3. 3
    ログと進捗の通知Log and progress notifications

    MCP のツール実行中にクライアント側へリアルタイムでログや進捗を返す仕組みとその活用方法が分かります。Context 経由でログ(info)や進捗(report_progress)を送る実装例、クライアントでのコールバック登録方法、CLI/Web/デスクトップそれぞれに適した通知表示の選択肢まで学べます。長時間処理の可視化でユーザー体験を改善する実践的な指針が得られます。

    • 仕組みの概要
    • クライアント実装
    • 提示オプション
  4. 4
    通知の実装ウォークスルーNotifications walkthrough

    このレッスンでは MCP の通知機能がどのように設計され、実装されるかを実例で学べます。通知の種類とライフサイクル、サブエージェントやフックとの関係、トランスポート経由で通知を送受信する際の注意点を把握できます。実装上の典型的なパターンと落とし穴を理解して、自分のエージェントやサービスに通知を安全かつ効率的に組み込めるようになります。

  5. 5
    RootsRoots

    このレッスンでは、MCP サーバーがローカルの特定フォルダやファイルに安全にアクセスする仕組み「Roots」を学びます。Roots の導入でユーザーはフルパスを入力する手間を省け、サーバーは指定された領域だけを探索して目的ファイルを見つけられるようになります。実装時の境界設定やアクセスチェック(is_path_allowed 等)の考え方、セキュリティ上の注意点と運用メリットについて理解できるようになります。

    • Roots が解決する課題
    • Roots の実例
    • セキュリティと境界
    • 実装の詳細
    • 主要な利点
  6. 6
    Roots の実装ウォークスルーRoots walkthrough

    このレッスンでは、Roots の設計と実装フローを追いながら、MCP におけるルート管理の役割と動作を実践的に理解できます。Roots がどのように会話コンテキストを構成し、サブエージェントやフックと連携して情報の流れを制御するかが分かります。実装上の注意点やトラブルシュートの考え方、関連するトランスポート(STDIO や StreamableHTTP)との結合も学べます。これにより、複雑なマルチエージェント構成の設計とデバッグが容易になります。

  7. 7
    JSON メッセージの型JSON message types

    MCP における JSON メッセージの役割と種類が把握できる回です。Request-Result の対になったやり取りと、応答不要の Notification を区別できるようになり、クライアント/サーバーのどちらがどのメッセージを送るかが理解できます。特に双方向通信としての設計意図や、StreamableHTTP などトランスポート選択が動作に与える影響点も学べます。これにより適切なトランスポート設計やデバッグがしやすくなります。

    • メッセージ形式
    • MCP 仕様
    • メッセージ分類
    • リクエスト・結果メッセージ
    • 通知メッセージ
    • クライアントとサーバのメッセージ
    • 重要性の理由
  8. 8
    STDIO トランスポートThe STDIO transport

    このレッスンでは、MCP クライアントとサーバー間の基本的な通信手段としての stdio トランスポートの仕組みと実践的な使い方が分かります。stdin/stdout を使ったプロセス間通信でどちらからでもメッセージを送受信できる点、接続時の三段階ハンドシェイク(Initialize Request → Initialize Result → Initialized Notification)やリクエスト/通知の違いを理解できます。開発・テストでの手軽さと、HTTP 等ほかのトランスポートとの設計上の違いも把握できます。

    • Stdio トランスポート
    • Stdio の実演
    • MCP 接続手順
    • メッセージ種別と流れ
    • 4つの通信シナリオ
    • 重要性の理由
  9. 9
    StreamableHTTP トランスポートThe StreamableHTTP transport

    StreamableHTTP トランスポートがどのように HTTP の制約と折り合いを付けて MCP を遠隔ホスト可能にするかが分かる回です。stateless_http や json_response といった設定が何を壊すか(進捗通知、ログ、サーバー発信のリクエストなど)を具体的に理解し、どの場面で STDIO と使い分けるべきか設計判断できるようになります。必要なら妥協点や代替パターンの検討方法も学べます。

    • 重要な設定項目
    • HTTP 通信の課題
    • 影響を受ける MCP メッセージ
    • Streamable HTTP 解決策
  10. 10
    StreamableHTTP を掘り下げるStreamableHTTP in depth

    このレッスンでは、HTTPの制約を踏まえつつ、MCP 上でサーバー→クライアント通信を実現する仕組みを理解できます。初期化フローとセッションIDの役割、Server-Sent Events を使った長期接続の動き、ツール呼び出し時に発生する二つのSSE接続の使い分け(進捗はプライマリ、ログやツール結果はツール専用)を学べます。また、stateless_http や json_response のフラグがワークアラウンドを壊す影響も押さえ、デバッグや設計判断に活かせる知識が身につきます。

    • 中核的な問題
    • StreamableHTTP の仕組み
    • 初期接続の設定
    • SSE ワークアラウンド
    • ツール呼び出しと二重 SSE 接続
    • メッセージルーティング
    • ワークアラウンドを壊す設定フラグ
    • 主要な要点
  11. 11
    状態管理と StreamableHTTPState and the StreamableHTTP transport

    このレッスンでは、StreamableHTTP トランスポートでの状態管理とそれがサーバー設計に与える影響を学べます。stateless_http フラグが有効な場合の制約(SSEによるサーバー→クライアント通信の不可、サンプリング不可、サブスクリプション不可など)と利点(初期ハンドシェイク不要で水平スケールしやすい)を理解します。また json_response フラグによるレスポンスの非ストリーミング化がもたらす簡易化と制約、開発時に本番と同じトランスポートで検証すべき理由も把握できます。

    • ステートレス HTTP が必要な場面
    • ステートレス HTTP の解決方法
    • JSON レスポンスの理解
    • これらのフラグを使う場合
    • 開発環境と本番環境
  12. 12
    MCP の概念アセスメントAssessment on MCP concepts

    MCP のコア概念を確認し、Sampling・Notifications・Roots・トランスポートの役割と相互関係を理解できるようになります。各機能の仕組みや実装上の注意点を押さえ、どの場面でどの機能を使うべきか判断できるようになります。特に StreamableHTTP と STDIO の違いや、ログや進捗通知の扱い方、コンテキスト管理(Roots)による動作への影響を学べます。

見出しは公式の構成にもとづく日本語の要約です。レッスン本文は公式サイト上でのみ提供されています。各行から公式ページへ移動します。

この講座に出てくる用語 — 5語

この講座で扱う概念です。意味が分からない語で止まったら、ここから辞典を引けます。数字は難易度(1が易しく5が難しい)。
本文中でも初めて出てきた箇所にリンクを張っています。

用語の解説は AICU term(AICU が独自に編集している用語辞典)。

原題: Model Context Protocol: Advanced Topics — https://academy.claude.com/courses/model-context-protocol-advanced-topics