MCP
Model Context Protocol
概要(サマリー)
MCP(Model Context Protocol)とは、AIアプリケーションやAIエージェントが、PC内のファイル、データベース、API、外部のソフトウェアツールといったコンテキスト(文脈やデータ)へ接続しやすくするための、オープンな共通通信規格(プロトコル)である。
AIエージェントと外部システムの接続方法を統一することで、AIが必要な情報を読み取ったり、許可された範囲でツールを実行したりしやすくする。
詳細解説
1. MCPが必要とされる背景
従来のAIチャットやAIコーディングツールでは、AIにローカルファイルを見せたり、特定のコマンドを実行させたりする際、アプリケーションごとに独自の接続プログラムを開発する必要があった。
これでは、エディタが変わるたびに接続コードを書き直す必要があり、セキュリティの管理もバラバラになってしまう。
MCPというオープンな共通規格が導入されたことで、「一度MCPサーバーを構築すれば、多くのMCP対応AIクライアント(エディタなど)から、そのツールやデータを利用しやすくなる」という効率的なエコシステムが誕生した。
2. MCPの基本的な仕組み(クライアントとサーバー)
MCPは、ホストアプリケーションの中にあるクライアントと、外部機能を提供するサーバーが、MCPの定義に従って相互に通信することで機能する。
- MCPホスト:ユーザーが操作するエディタやAIアプリ本体。CursorやClaude Desktopなどがこれに該当する。
- MCPクライアント:ホスト内でMCPサーバーとの接続を管理する部品。1つのホストが複数のサーバーへ接続する場合、それぞれの接続ごとにクライアントが用意される。
- MCPサーバー:特定の機能(Google検索を実行する、データベースからデータを取得する、GitHubのPRを作成するなど)を提供する個別の小さなプログラム。
以下は、MCPクライアントの設定ファイル(例:mcp_config.json)内で、外部のMCPサーバーを登録して利用可能にする設定コードの例である。
{
"mcpServers": {
"github-server": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_TOKEN"
}
}
}
}
この設定を行うことで、AIエディタはGitHub用MCPサーバーを通じて、開発者に代わってGitHub上のソースコードを調べたり、許可された操作を実行したりできるようになる。
3. MCPが提供する3つの基本機能
MCPサーバーは、AIアプリケーションに対して主に以下の機能を開示する。
- Resources(リソース):テキストファイルやデータベースの値など、AIに安全に「読み取らせたい」データ。
- Tools(ツール):プログラムのビルドや、APIの実行など、AIに「実行させたい」アクション。
- Prompts(プロンプト):あらかじめ用意された質問のテンプレート。
加えて、クライアント側がサーバーへ作業対象の範囲を伝える「Roots」や、サーバーがAIモデルへ追加判断を求める「Sampling」、ユーザーへ追加情報を求める「Elicitation」などの仕組みも仕様として整理されている。
AIコーディングとの関係
AIエージェントによる自動コーディング(Pair Programming)において、MCPはAIの精度を向上させる極めて重要な基盤技術である。
AIエージェントは背後でMCPツール(ファイルの読み込みやディレクトリ構造の解析など)を実行し、「開発者が現在直面しているファイル構成」や「関連するライブラリのコード」を自動で収集・把握する。
これにより、AIは周辺の状況を把握しやすくなり、より的確でバグの少ないコード修正案を提示できる。
また、開発者はPythonやNode.jsを使って自分専用のMCPサーバーを開発することで、「自社のプライベートな開発ドキュメント」や「社内固有のAPI」をAIエージェントに読み取らせ、自社開発に最適化した専用のAIアシスタントを構築しやすくなる。
よくある勘違い
MCPはClaude(Anthropic社)専用の規格?
いいえ、提唱したのはAnthropic社だが、MCPはオープンな規格として公開されている。そのため、特定のLLMや特定企業のアプリだけに閉じた仕組みではなく、MCPに対応したAIアプリケーションで共通して利用できる。
MCPサーバーを入れると、AIにPC内のすべてのデータを勝手に読まれる?
いいえ、MCPクライアントやホストはAIに対して「どのMCPサーバーの、どのツールやファイルの実行を許可するか」を制御できる。ただし、MCPサーバーの設定や権限が広すぎると情報漏えいや誤操作のリスクは高まるため、ユーザーの承認、最小権限、信頼できるサーバーだけを使う運用が重要である。
MCPは単なるAPIの別名?
いいえ、APIは機能やデータを外部に提供する「窓口」そのものであるが、MCPは「AIモデルがその窓口を理解し、引数の型や関数の用途を自動で認識して安全に実行できるようにするための、AI向け通信ルール」を定義したプロトコル(規格)である。
まとめ
- MCPは、AIアプリケーションと外部のデータ・ツールを接続するオープンな共通プロトコルである
- ホスト、クライアント、サーバーの通信によって動作する
- AIコーディングにおいて、周囲のコード状況(コンテキスト)をAIに正しく理解させるために不可欠である
情報ソース
より詳しくAIに聞いてみよう
- Pythonを使って、ローカルの特定のテキストファイルをAIに読み込ませるための、簡単なMCPサーバーの自作方法を教えてください。
- AIコーディングエディタ(Cursorなど)で、コミュニティが公開している便利なMCPサーバーを追加して連携させる手順を教えてください。
- MCPの通信に採用されている「JSON-RPC」とはどのような仕組みのプロトコルか、初心者向けに解説してください。
- AIエージェントにMCPツール(コマンド実行やファイル書き込み)の実行許可を与える際の、セキュリティ的なベストプラクティスを教えてください。
- MCPが今後の生成AIアプリ開発(AIエージェントの自律化)にどのような変革をもたらすか、具体的なユースケースを交えて説明してください。