MCPとは何か
MCP(Model Context Protocol)は、Anthropicが開発したAIツールと外部データソースを接続するためのオープンプロトコルです。
AIエージェントがSlack、Google Drive、PostgreSQL、Jiraなどの外部サービスにアクセスする際、サービスごとに個別のアダプターを書く必要がありました。MCPはこの問題を解決する「共通規格」として設計されています。
よく使われるたとえで言えば、USB-Cのようなものです。USB-Cがさまざまなデバイスを1つのコネクタで統一したように、MCPはAIと外部ツールの接続を1つのプロトコルで標準化します。
MCPのアーキテクチャ
MCPはクライアント-サーバーモデルを採用しています。
| コンポーネント | 役割 |
|---|---|
| MCP Client | AIエージェント側に組み込まれ、サーバーとの通信を管理します |
| MCP Server | 外部ツールやデータソースをMCPプロトコルで公開します |
1つのClientから複数のServerに接続できるため、AIエージェントが同時に複数の外部サービスを利用できます。
MCPサーバーが提供する3つの機能
MCPサーバーは、以下の3種類の機能をAIエージェントに公開できます。
Tools(ツール)
AIが呼び出して実行できる関数です。データベースへのクエリ、API呼び出し、ファイル操作など、副作用を伴うアクションに使います。
{
"name": "search_knowledge",
"description": "セマンティック検索で関連知識を取得する",
"parameters": {
"query": { "type": "string", "description": "検索クエリ" },
"n_results": { "type": "integer", "default": 5 }
}
}
Resources(リソース)
AIが読み取り専用でアクセスできるデータです。設定ファイル、ドキュメント、データベースのスキーマ情報など、コンテキストとして参照する情報に使います。
Prompts(プロンプト)
事前定義されたテンプレートです。特定のワークフローを呼び出す際に、最適なプロンプトをサーバー側から提供できます。
トランスポート方式
MCPの通信方式には3種類があります。
| 方式 | 特徴 | 推奨度 |
|---|---|---|
| Streamable HTTP | HTTP経由でリモート通信。ネットワーク越しのサーバーに接続可能 | 推奨 |
| stdio | 標準入出力を使ったローカルプロセス間通信 | ローカル用途向け |
| SSE | Server-Sent Eventsベース | 非推奨(廃止予定) |
新規に構築する場合は、Streamable HTTPを選択するのが安全です。リモートサーバーへの接続に対応しており、今後の主流となるトランスポート方式です。
Claude Codeでの導入方法
Claude CodeはMCP Clientを内蔵しており、コマンド1つでMCPサーバーを追加できます。
HTTPサーバーの追加
claude mcp add --transport http my-server https://example.com/mcp
stdioサーバーの追加
claude mcp add --transport stdio my-local-server npx my-mcp-package
設定は .mcp.json(プロジェクト単位)または ~/.claude/mcp.json(ユーザ単位)に保存されます。
設定ファイルの例
{
"mcpServers": {
"knowledge-mcp": {
"type": "http",
"url": "http://10.10.0.1:8765/mcp",
"headers": {
"X-API-Key": "your-api-key"
}
}
}
}
主要なMCPサーバーの例
MCPエコシステムは急速に成長しており、多くのコミュニティサーバーが公開されています。
| カテゴリ | サーバー名 | 概要 |
|---|---|---|
| ドキュメント参照 | Context7 | ライブラリの最新ドキュメント・リファレンスを取得 |
| API操作 | Postman MCP Server | 各種APIへの接続・操作 |
| ワークフロー自動化 | n8n MCP Server | n8nのワークフローをMCP経由で実行 |
| コード解析 | Serena | シンボルベースのコード解析・編集 |
パフォーマンスの注意点
MCPを使う際に知っておくべき重要なポイントがあります。
MCPはツールスキーマ(JSON)をリクエストのたびにコンテキストに送信する仕様です。そのため、以下の点に注意が必要です。
- ツール数が多いMCPサーバーほど、1回の呼び出しで消費するトークンが増加します
- セッション後半でコンテキストウィンドウが逼迫しやすくなります
- Claude Codeの場合、MCP出力のデフォルト上限は25,000トークンです(
MAX_MCP_OUTPUT_TOKENS環境変数で変更可能)
たとえば、Playwright MCPはブラウザのスナップショットを毎回コンテキストに流し込むため、トークン消費が大きくなりがちです。CLI版が提供されている場合は、用途に応じて使い分けるとトークン効率が改善します。
セキュリティ上の考慮事項
MCPサーバーを構築・利用する際には、以下のセキュリティ対策を意識してください。
- 認証: API Keyによる認証を必ず設定し、不正アクセスを防ぎます
- Prompt Injection対策: MCPサーバーのレスポンスに含まれる指示的な内容を、検証なしに実行しないようにします
- ネットワーク: HTTP通信の場合、VPN内で運用するか、HTTPSを使用します
- 最小権限の原則: MCPサーバーが提供するツールは、必要最小限の権限にとどめます
まとめ
MCPは「AIエージェントと外部ツールの接続を標準化する」というシンプルな目的のプロトコルですが、その影響は大きいです。
- ツール開発者: MCPサーバーを1つ作れば、MCP対応のすべてのAIクライアントから利用可能になります
- AIユーザー: MCPサーバーを追加するだけで、エージェントの能力を拡張できます
- エコシステム全体: 統一プロトコルにより、ツール間の相互運用性が向上します
まずは既存のコミュニティサーバーを1つ追加してみるところから始めてみてください。MCPがAIエージェントの可能性をどれだけ広げるか、体感できるはずです。