MCP(Model Context Protocol)
MCPとは
MCP(Model Context Protocol)は、[[生成AI・LLM]] を使うアプリケーションと外部のツールやデータソースをつなぐ方法を標準化するプロトコルです。Anthropic が2024年に公開し、オープン標準として広がっています。
それまでは「このAIアプリにこのサービスをつなぐ」ための連携を、組み合わせごとに個別開発する必要がありました。MCP は接続の規格を統一することで、一度 MCP サーバーを作れば、対応するどのAIアプリからでも使えるようにします。この性質から「AIにとっての USB-C」と例えられます。
構成要素
MCP は3つの登場人物で構成されます。
| 役割 | 説明 | 例 |
|---|---|---|
| ホスト | LLM を使うアプリ本体 | AIチャットアプリ、AIコーディングツール |
| MCPクライアント | ホストに組み込まれ、サーバーと通信する部品 | ホストが内部に持つ |
| MCPサーバー | ツールやデータを提供する側 | ファイル操作、DB接続、社内API連携 |
MCP サーバーが提供できるものは主に3種類です。
- ツール — LLM が呼び出せる機能(検索する、ファイルを書く、など)
- リソース — LLM に読ませるデータ(ファイル、DBのレコード、など)
- プロンプト — 定型の指示テンプレート
Function Callingとの関係
「LLM に外部機能を使わせる」という点で [[Function Calling]] と似ていますが、層が違います。Function Calling はLLM がツール呼び出しを出力するモデル側の仕組み、MCP はツールをアプリへ接続する配線の規格です。実際には、MCP で接続したツールを Function Calling の仕組みで呼び出す、という形で組み合わさります。
初学者向けポイント
- [[AIエージェント]] の実用化を支えるインフラです。エージェントが使える道具を、標準の差し込み口で増やせます
- 通信内容は JSON-RPC という [[JSON]] ベースの形式でやり取りされます
- 便利な一方、外部ツールへのアクセス権を与えることになり、リソースとして読み込んだデータに仕込まれた指示でツールが呼ばれる危険([[プロンプトインジェクション]])もあるため、信頼できる MCP サーバーだけを接続し、権限を最小限にすることが重要です([[最小権限の原則]])
関連技術とのつながり
- [[AIエージェント]] — MCP はエージェントに道具を供給する標準的な手段
- [[生成AI・LLM]] — MCP がつなぐ主役
- [[Function Calling]] — ツールを実際に呼び出すモデル側の仕組み
- [[REST API]] — 従来の個別API連携との対比で理解すると分かりやすい
- [[JSON]] — MCP のメッセージの基盤形式
Q: MCPの目的として正しいものはどれ?
- [x] AIアプリと外部ツール・データをつなぐ方法を標準化する
- [ ] LLMの学習を高速化する
- [ ] 画像生成の画質を向上させる
解説: MCP は接続規格の統一が目的です。一度 MCP サーバーを作れば対応する複数のAIアプリから利用できます。
Q: MCPサーバーの役割はどれ?
- [ ] LLMを使うアプリ本体
- [x] ツールやデータをAIアプリへ提供する側
- [ ] ユーザーの画面を描画する側
解説: MCP サーバーはツール・リソース・プロンプトを提供し、ホスト内の MCP クライアントがそれと通信します。
Q: MCPとFunction Callingの関係として正しいものはどれ?
- [ ] 同じものの別名である
- [ ] MCPはFunction Callingを置き換えて廃止する
- [x] MCPは接続の規格、Function Callingはツール呼び出しを出力するモデル側の仕組みで、組み合わせて使われる
解説: MCP で接続したツールを Function Calling の仕組みで呼び出す、という役割分担で協調します。