AI活用

MCPとは?AIと外部ツールをつなぐModel Context Protocolの仕組み

MCPのHost・Client・Server、Tools・Resources・Prompts、stdioとStreamable HTTPの役割を、構成図と用語表でわかりやすく解説します。

この記事の目次
  1. 結論:MCPはAI連携の共通コネクタ
  2. Host・Client・Serverの役割
  3. Tools・Resources・Promptsとは
  4. Tools:実行できる処理
  5. Resources:読み取れるコンテキスト
  6. Prompts:再利用する入力テンプレート
  7. MCPとTool Callingの違い
  8. stdioとStreamable HTTP
  9. stdio:ローカルプロセスを起動する
  10. Streamable HTTP:リモートServerへ接続する
  11. MCP接続で何が起きるか
  12. 安全に使うためのチェックリスト
  13. どんな用途に向いているか
  14. まとめ

MCP(Model Context Protocol)とは、AIアプリと外部のデータ・機能を共通の方法で接続するためのプロトコルです。対応するクライアントは、MCP Serverが公開するTools、Resources、Promptsを見つけて利用できます。

MCPを使うと、AIアプリごとに個別の連携方法を作る負担を減らせます。ただし、接続しただけで安全になるわけではありません。どのServerを信頼し、何を許可し、いつ確認を求めるかはHost側の設計が必要です。

この記事では、Host・Client・Serverの構成、3つのprimitive、通信方法、Tool Callingとの違い、安全に試すための確認点を解説します。

情報確認日:2026年7月17日(日本時間)

結論:MCPはAI連携の共通コネクタ

利用者
  ↓
Host(AIアプリ)
  ├─ Client A ←→ MCP Server A(ローカルファイル)
  ├─ Client B ←→ MCP Server B(社内データ)
  └─ Client C ←→ MCP Server C(外部サービス)

各Serverが公開:
- Tools
- Resources
- Prompts

Hostは利用者が操作するAIアプリです。Hostは接続するServerごとにClientを作り、ClientがMCPの通信を担当します。Serverは特定のデータや処理をMCP形式で公開します。

スポンサーリンク

Host・Client・Serverの役割

要素 役割
Host AI、利用者UI、権限、承認、複数接続を管理 デスクトップAI、IDE、コーディングエージェント
Client 1つのServerとのMCPセッションを管理 Host内部の接続コンポーネント
Server Tools、Resources、Promptsを公開 ファイル、DB、Git、業務APIの接続口

Serverはモデルそのものではありません。外部能力を標準化して公開するプログラムです。また、Clientは利用者向けのアプリ全体ではなく、通常はHostの内部でServerとの接続を受け持ちます。

Tools・Resources・Promptsとは

Tools:実行できる処理

Toolsは、検索、計算、ファイル作成、API呼び出しなどの処理です。名前、説明、入力スキーマをServerが公開し、Hostとモデルが利用候補として扱います。副作用のあるToolには確認と最小権限が必要です。

Resources:読み取れるコンテキスト

Resourcesは、文書、設定、データベースの読み取り結果などをURI付きで公開する仕組みです。アプリや利用者が選択し、モデルへ渡す文脈として使います。

Prompts:再利用する入力テンプレート

Promptsは、「この差分をレビューする」「会議内容を要約する」といった再利用可能な指示テンプレートです。利用者が明示的に選ぶワークフローの入口として使えます。

primitive 中心となる用途
Tools 処理を実行する issue作成、検索、計算
Resources 情報を読み取る README、仕様書、DBスキーマ
Prompts 手順や指示を再利用する レビュー、要約、調査テンプレート

MCPとTool Callingの違い

Tool Callingは、モデルがツール名と引数を出し、アプリが実行して結果を返す処理パターンです。MCPは、そのツールやデータ、テンプレートをClientとServer間で発見・利用する共通規約です。

比較 MCP Tool Calling
主眼 外部能力の接続と発見 モデルが処理を選び引数を作る
範囲 Client・Server間のプロトコル モデル・アプリ間の実行フロー
扱うもの Tools、Resources、Prompts 主にツール呼び出し
併用 MCP ToolをモデルのTool Callingへ渡す構成が可能

Tool Calling自体の流れはTool Callingとはで詳しく解説しています。

stdioとStreamable HTTP

stdio:ローカルプロセスを起動する

HostがローカルのMCP Serverを子プロセスとして起動し、標準入力と標準出力で通信します。ファイルや開発ツールのローカル連携に向きます。Serverの標準出力へデバッグ文字列を混ぜるとプロトコルを壊すため、ログは標準エラーなどへ分けます。

Streamable HTTP:リモートServerへ接続する

HTTPを使って離れたMCP Serverへ接続します。複数利用者や業務サービスとの連携に使えますが、TLS、認証、認可、セッション、Origin、レート制限、監査ログが必要です。

transport 主な配置 確認点
stdio 同じ端末 実行ファイル、引数、環境変数、ローカル権限
Streamable HTTP ネットワーク先 URL、TLS、認証・認可、公開範囲、ログ

MCP接続で何が起きるか

  1. HostがServerへ接続する
  2. ClientとServerが対応機能を初期化時に確認する
  3. Hostが利用可能なTools、Resources、Promptsを取得する
  4. 利用者の依頼に応じてResourceやPromptを選ぶ
  5. モデルがTool呼び出しを提案する場合がある
  6. Hostが権限と承認を確認して実行する
  7. 結果をモデルと利用者へ返す

MCPはJSON-RPCメッセージで通信しますが、初学者はまず「能力を発見する」「呼び出す」「結果を返す」という流れを理解すれば十分です。

安全に使うためのチェックリスト

  • Serverの配布元とコード、更新履歴を確認した
  • Serverが読めるファイル、環境変数、ネットワークを限定した
  • APIキーを設定ファイルやログへ直接書いていない
  • 削除、送信、公開、購入は実行前に確認する
  • Tool名だけでなく説明と入力スキーマを確認した
  • 外部Resourceを信頼できない入力として扱う
  • リモートServerの認証と利用者ごとの認可を分けた
  • 利用しないServerとToolを無効にできる

注意:知らないMCP Serverを接続することは、知らないプログラムへファイルや認証情報のアクセスを与えることに近い行為です。設定例をコピーする前に、実行内容と権限を確認してください。

どんな用途に向いているか

  • 複数のAIクライアントから同じ業務ツールを使いたい
  • IDEからリポジトリ、issue、ドキュメントを参照したい
  • 社内データへ統一したアクセス層を用意したい
  • 再利用できるAIワークフローをPromptとして共有したい
  • クライアントごとの独自連携を減らしたい

AIが目標を分解して外部処理を進める全体像はAIエージェントとはも参考になります。

まとめ

MCPは、AIアプリと外部機能をHost・Client・Serverの構成でつなぐ共通プロトコルです。ServerはTools、Resources、Promptsを公開し、ローカルではstdio、リモートではStreamable HTTPが使われます。

利便性と安全性は別です。接続先の信頼性、最小権限、外部データの扱い、危険操作の承認をHost側で設計してから導入してください。

スポンサーリンク