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 の仕組みで呼び出す、という役割分担で協調します。