MCP (Model Context Protocol)
完全ガイド2026
MCP は「LLM と外部ツールをつなぐ、USB Type-C のようなオープン標準」です。 2024 年末に Anthropic が公開して以来、2026 年現在では OpenAI・Google も準拠を発表、 AI エージェントのde facto スタンダードになりつつあります。 このガイドでは MCP の仕組み・主要サーバ・Claude Code 連携を実務視点で解説します。
1. MCP とは何か
Model Context Protocol は、LLM(Claude / GPT 等)が 外部ツール・データソースにアクセスするための共通プロトコルです。 従来、各 LLM ベンダーが「Function Calling」「Plugin」「Custom GPTs」など 独自仕様で Tool Use を実装していたのを、ベンダー横断の標準に統一する試みです。
2. アーキテクチャ
3つの要素で構成されます:
- Host:LLM が動く環境(Claude Desktop / Claude Code / VS Code 拡張)
- Client:Host 内で MCP Server と会話する通信代理
- Server:ツールの実体。GitHub API・DB・ファイルシステム等を MCP 経由で提供する
Transport には stdio(ローカルプロセス)と SSE/HTTP(リモート)の2種類があります。
個人利用なら stdio で十分、企業ネット越しなら SSE を選択。
3. 実務で使える主要 MCP サーバ
| サーバ | 用途 | おすすめ度 |
|---|---|---|
server-filesystem | 指定ディレクトリへの読み書き | ★★★★★ 必須 |
server-github | Issue / PR / コード検索 | ★★★★★ |
server-postgres | read-only SQL 実行 | ★★★★ |
server-slack | メッセージ送受信 | ★★★★ |
server-google-drive | Drive / Docs へのアクセス | ★★★ |
context-mode(サードパーティ) | 大出力をサンドボックスで処理、Claude の context を節約 | ★★★★★ |
4. Claude Code / Claude Desktop での設定
Mac/Linux の場合 ~/.claude/claude_desktop_config.json、Windows は %APPDATA%\Claude\claude_desktop_config.json を編集:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "C:/develop/ai-news-site"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..." }
}
}
}
保存後、Claude Desktop / Claude Code を再起動すると接続済みサーバ一覧が表示されます。
5. 自作 MCP サーバの書き方
Python 版 SDK (mcp) を使うと数十行で自作できます:
# pip install "mcp[cli]"
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("my-weather")
@mcp.tool()
def get_weather(city: str) -> str:
"""指定都市の天気を返す"""
return f"{city} は晴れです"
if __name__ == "__main__":
mcp.run()
claude_desktop_config.json で "command": "python", "args": ["my_weather.py"]
を指すだけで Claude から呼び出せるようになります。
6. セキュリティと運用上の注意
- API キーは必ず環境変数経由:設定ファイルに直書きしない
- write 系ツールは最小権限で:read-only で済むなら read-only にする
- ファイルシステムサーバは対象パス限定:ホームディレクトリ全体を渡さない
- 本番 DB は基本繋がない:レプリカ or サンドボックスを推奨
- Prompt Injection 対策:外部コンテンツを読ませる時は、そのコンテンツが LLM に命令を出せることを前提に設計
最終更新:2026-04-19 / © 2026 awano27 — AI Intelligence Hub