レッスン 4 15分

業務で使う!MCPの実践ワークフロー

MCPの3大プリミティブ(ツール・リソース・プロンプト)の仕組みと、エージェンティックルプーでの実務ワークフロー設計。

🔄 レッスン3で必須MCPサーバー5選を設定しました。でも、サーバーが「何を」AIに提供しているのか — その内部の仕組みをまだ理解していません。

MCPの3大プリミティブ

MCPサーバーがAIに提供するものは、3つに分類されます。

ツール(Tools)— AIが呼び出す「動詞」

Model-driven(AIモデル主導)。AIが会話の文脈を判断して、必要なタイミングで自動的に呼び出します。

@mcp.tool()
def search_issues(repo: str, query: str) -> str:
    """GitHubリポジトリのイシューを検索する"""
    # GitHub APIを呼び出して結果を返す

ユーザーが「このリポジトリのバグイシューを見せて」と言うと、AIが search_issues ツールを呼び出すべきだと判断し、実行します。

特徴: 副作用がある操作(ファイル作成、メッセージ送信、DB書き込み)はツールとして定義します。

リソース(Resources)— アプリが提供する「名詞」

App-driven(アプリ主導)。アプリケーションがコンテキストとしてAIに渡す読み取り専用データです。

@mcp.resource("file://{path}")
def read_file(path: str) -> str:
    """ファイルの内容を読み取る"""
    return open(path).read()

ファイルの中身、DBスキーマ、設定情報など — AIが判断材料として使うデータはリソースです。

特徴: 読み取り専用。副作用なし。安全にAIに提供できます。

プロンプト(Prompts)— ユーザーが選ぶ「テンプレート」

User-driven(ユーザー主導)。あらかじめ定義されたプロンプトテンプレートを、ユーザーが選択して実行します。

@mcp.prompt()
def code_review_prompt(pr_url: str) -> str:
    """PRのコードレビューテンプレート"""
    return f"{pr_url} のコードをレビューしてください。\n\n観点:バグ、パフォーマンス、セキュリティ、可読性"

Claude Desktopではスラッシュコマンド(/)でプロンプト一覧を呼び出せます。チーム内でレビュー手順を標準化するのに使えます。

Quick Check: 「Slackにメッセージを送信する」機能は、ツール・リソース・プロンプトのどれとして実装すべき?(ツールです。メッセージ送信は副作用のあるアクションなので、AIモデルが必要性を判断して呼び出すツールとして定義します。)

3つのプリミティブの使い分け

プリミティブ主導者用途
ツールAIモデル副作用のあるアクションメッセージ送信、ファイル作成、API呼び出し
リソースアプリ読み取り専用のデータ提供ファイル内容、DBスキーマ、設定値
プロンプトユーザーテンプレート実行コードレビュー手順、レポート生成フォーマット

この3つの区別を覚えておくと、レッスン5でサーバーを自作するときの設計がスムーズになります。

高度な機能:Sampling、Roots、Elicitation

3大プリミティブ以外にも、2025年の仕様更新で追加された機能があります。

機能説明追加時期
SamplingサーバーがAIモデルに推論を依頼(再帰的な思考が可能に)初期仕様
Rootsクライアントがサーバーに許可するファイルパスを明示2025年
Elicitationサーバーがユーザーに追加入力を動的に要求(OAuth認証画面等)2025年6月

これらは上級者向けです。まずは3大プリミティブをしっかり理解しましょう。

エージェンティックループ:MCPの真価

MCPが本当に力を発揮するのは、エージェンティックループ — 複数ステップを自動で回すワークフローです。

[ステップ1:コンテキスト収集]
├── GitHub MCP → 未解決イシュー一覧を取得
├── ファイルシステム → 関連コードを読み取り
└── DB MCP → 最近のエラーログを取得

[ステップ2:分析・判断]
├── AIが情報を統合して優先度を判定
└── 修正方針を決定

[ステップ3:アクション実行]
├── ファイルシステム → コードを修正
├── GitHub MCP → PRを作成
└── Slack MCP → チームに通知

[ステップ4:検証]
├── テスト結果を確認
└── 問題があればステップ2に戻る

この「コンテキスト収集 → アクション → 検証 → 繰り返し」がエージェンティックループの基本パターン。

実務ワークフロー例

週次レポート自動化

ユーザー:「先週の開発活動をまとめてSlackに投稿して」

AIの動作:
1. GitHub MCP → 先週マージされたPR一覧を取得
2. GitHub MCP → 新規・クローズしたイシューを取得
3. 分析 → PRをカテゴリ分け(機能追加、バグ修正、リファクタリング)
4. レポート生成 → マークダウン形式で整理
5. Slack MCP → #dev-updates に投稿

LINEヤフーの事例

LINEヤフーのエンジニアチームは、GitHub + Jira + ConfluenceのMCPサーバーを組み合わせてPRレビュー準備を自動化。PR URLを渡すだけで、関連する設計ドキュメントやチケットの文脈を自動収集。週6時間のレビュー工数を削減しています。

Quick Check: エージェンティックループで「検証」ステップがある理由は?(コードの修正やメッセージの送信が正しく実行されたか確認するため。テスト失敗や送信エラーがあれば、修正→再実行のループを回します。)

まとめ

  • MCPの3大プリミティブ:ツール(AI主導)、リソース(アプリ主導)、プロンプト(ユーザー主導)
  • ツールは副作用のあるアクション、リソースは読み取り専用データ、プロンプトはテンプレート
  • エージェンティックループ:コンテキスト収集 → アクション実行 → 結果検証 → 繰り返し
  • 高度な機能:Sampling、Roots、Elicitationも仕様に追加済み
  • 複数サーバーの組み合わせで実務ワークフローを自動化

次のレッスン

3大プリミティブの仕組みがわかりました。レッスン5では、いよいよ PythonのFastMCPで自分だけのMCPサーバーを作ります。30行のコードから始めて、ツールとリソースを実装していきましょう。

理解度チェック

1. MCPの「ツール」「リソース」「プロンプト」は、それぞれ誰が主導する?

2. エージェンティックループの正しい順序は?

3. MCPリソースとツールの違いは?

すべての問題に答えてから確認できます

まず上のクイズを完了してください

関連スキル