MCP(Model Context Protocol)とは何か?
MCP(Model Context Protocol)とは、Anthropicが2024年11月に発表したオープンスタンダードで、AIアシスタントと外部ツール・データソースを安全に連携させるためのプロトコルです。「AIのためのUSB-C」とも呼ばれ、AIがデータベース・ファイルシステム・Web APIなどにアクセスするための統一インターフェースを提供します。
2026年現在、MCP対応のツールは急速に増えており、エンジニアにとってMCPを理解することは必須スキルとなっています。
MCPが解決する課題
従来、AIに外部ツールを使わせるには、各ツールごとに独自の連携を実装する必要がありました。例えば:
- GitHubのIssueをAIに読み込ませる
- データベースのデータをAIに分析させる
- Slackのメッセージを要約させる
それぞれの連携を個別に実装するのは非効率で、セキュリティリスクも高まります。MCPはこの問題を解決する「共通言語」を提供します。
MCPのアーキテクチャ
MCPはクライアント・サーバーモデルで動作します:
MCPクライアント
AIアシスタント(Claude、GPT-4、Gemini等)がクライアントとして動作します。ユーザーからの指示を受け、MCPサーバーにリクエストを送ります。
MCPサーバー
外部ツールやデータソースへのアクセスを提供するサーバーです。主に以下の3種類の機能を提供します:
- Resources(リソース):ファイル・データベース・APIからのデータ読み込み
- Tools(ツール):外部サービスの操作(ファイル作成、メール送信等)
- Prompts(プロンプト):再利用可能なプロンプトテンプレート
主要なMCPサーバー一覧
2026年現在、多数のMCPサーバーが公開されています。代表的なものを紹介します:
| MCPサーバー | 機能 | 用途 |
|---|---|---|
| GitHub MCP | リポジトリ・PR・Issue操作 | 開発ワークフロー自動化 |
| PostgreSQL MCP | SQLクエリの実行・スキーマ参照 | データ分析・DB管理 |
| Slack MCP | メッセージ送受信・チャンネル管理 | コミュニケーション自動化 |
| Google Drive MCP | ドキュメント・スプレッドシート操作 | ドキュメント管理 |
| Brave Search MCP | Web検索 | 情報収集・リサーチ |
| Filesystem MCP | ローカルファイル操作 | ファイル管理・コード生成 |
MCPの実装方法:Pythonで自作する
独自のMCPサーバーを作成することも可能です。以下はPythonでの基本的な実装例です:
from mcp.server import Server
from mcp.server.models import InitializationOptions
from mcp.types import Resource, Tool, TextContent
import mcp.server.stdio
# MCPサーバーの作成
server = Server("my-mcp-server")
@server.list_resources()
async def list_resources():
return [
Resource(
uri="data://products",
name="商品一覧",
description="商品データベースの一覧",
)
]
@server.read_resource()
async def read_resource(uri: str):
if uri == "data://products":
return "商品1, 商品2, 商品3" # 実際はDBから取得
@server.list_tools()
async def list_tools():
return [
Tool(
name="search_products",
description="商品を検索する",
inputSchema={
"type": "object",
"properties": {
"keyword": {"type": "string", "description": "検索キーワード"}
},
"required": ["keyword"]
}
)
]
@server.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "search_products":
keyword = arguments["keyword"]
# 実際の検索ロジック
results = [f"{keyword}に関連する商品"]
return [TextContent(type="text", text=str(results))]
# サーバー起動
async def main():
async with mcp.server.stdio.stdio_server() as (read, write):
await server.run(read, write, InitializationOptions())
if __name__ == "__main__":
import asyncio
asyncio.run(main())
ClaudeでMCPを使う設定方法
Claude Desktopでの設定
Claude Desktopアプリでは、claude_desktop_config.jsonにMCPサーバーの設定を追加します:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/your-username/Documents"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
}
}
MCPのセキュリティ考慮事項
MCPを使う際は以下のセキュリティポイントに注意が必要です:
- 最小権限の原則:MCPサーバーに必要最低限の権限のみを付与する
- 入力バリデーション:AIからの入力を適切に検証する
- 認証情報の管理:APIキーや認証情報は環境変数で管理する
- アクセスログ:MCPサーバーへのアクセスをログに記録する
MCPの今後の展望
MCPは2025年から2026年にかけて急速に普及し、AI開発のデファクトスタンダードになりつつあります。主要なAIプラットフォーム(OpenAI、Google、Microsoft)もMCPサポートを表明しており、AIエージェントの「共通言語」として定着することが期待されます。
まとめ
MCPはAIと外部ツールを安全・効率的に連携させる革命的なプロトコルです。エンジニアとして、MCPの概念を理解し、自社システムへの適用を検討することで、AIを活用した業務効率化をより深く推進できます。
まずはClaude DesktopにFilesystem MCPを設定して、「AIがローカルファイルを読み書きできる」体験から始めてみましょう。