第8章 — MCP: AI に五感を与える
閉じた世界の限界
ユウキのチームは順調だった。CLAUDE.md でルールを定め、Hooks で品質を守り、サブエージェントで専門性を分担していた。
しかし、ある日の障害対応で限界にぶつかった。
「本番の DB を確認したいんだけど、Claude Code からはアクセスできない」
「Sentry のエラーログを見たいけど、ブラウザを行ったり来たりしてる」
「Figma のデザインを見ながらコーディングしたいけど、別画面で開くしかない」
AI エージェントは優秀だったが、「目」も「手」もローカルのファイルシステムに閉じていた。外の世界と繋がっていなかったのだ。
MCP とは何か
MCP(Model Context Protocol)は、AI エージェントが外部のツールやデータソースと通信するための標準プロトコルだ。Anthropic が2024年末に公開し、急速にエコシステムが広がっている。
USB のアナロジー
MCP を理解する最も直感的な方法は、USB との類推だ。
USB が登場する前、プリンター、スキャナー、カメラはすべて異なるポートと異なるドライバーが必要だった。USB が「一つの標準」を提供したことで、どのデバイスも同じように接続できるようになった。
MCP は AI エージェントにとっての USB だ。どんな外部ツールも、MCP の標準に従えば同じように接続できる。
MCP の3つの機能
MCP サーバーは、AI エージェントに3種類の能力を提供する。
| 機能 | 説明 | 例 |
|---|---|---|
| Tools | AI が呼び出せるアクション | 「Issue を作成する」「スクリーンショットを撮る」 |
| Resources | AI が参照できるデータ | 「DB のスキーマ」「設定ファイルの内容」 |
| Prompts | 事前定義されたプロンプトテンプレート | 「コードレビューテンプレート」 |
.mcp.json での設定
MCP サーバーはプロジェクトルートの .mcp.json で設定する。
{
"mcpServers": {
"github": {
"command": "gh",
"args": ["mcp"],
"description": "GitHub Issue/PR 操作"
},
"browser": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-browser"],
"description": "ブラウザ自動操作"
},
"postgres": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-postgres"],
"env": {
"DATABASE_URL": "postgresql://..."
},
"description": "PostgreSQL 参照"
}
}
}WARNING
.mcp.json に秘密情報(DB接続文字列、APIキー)を直接書かない。環境変数経由で渡すか、.mcp.local.json(Git管理外)に分離する。
MCP エコシステムの広がり
2025年現在、MCP サーバーのエコシステムは爆発的に成長している。
実践: ブラウザ自動操作
ユウキのチームが最初に導入した MCP は、ブラウザ操作だった。
「UI の変更を確認するのに、毎回ブラウザを手動で開いてチェックするのが面倒だった。MCP で自動化したら、Claude が自分でブラウザを開いて確認してくれるようになった」
実践: Context7 — ドキュメント参照
Context7 は、ライブラリやフレームワークの最新ドキュメントを AI に提供する MCP サーバーだ。
「AI の学習データは古い場合がある。Next.js 15 の新機能を聞いても、古い API を提案されることがあった。Context7 を入れたら、常に最新のドキュメントを参照して回答してくれるようになった」
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@context7/mcp"],
"description": "ライブラリのドキュメント参照"
}
}
}MCP とハーネスの統合
MCP は単独では「ツール」に過ぎない。ハーネスの他の要素と組み合わせることで真価を発揮する。
例: CLAUDE.md で MCP の使い方を規定
## MCP 利用ルール
- GitHub MCP: Issue/PR の参照は自由。作成・コメントはユーザー確認後
- DB MCP: SELECT のみ許可。UPDATE/DELETE は禁止
- Slack MCP: 読み取りのみ。メッセージ送信はユーザー確認後例: Hooks で MCP 操作を監査
{
"hooks": {
"PreToolUse": [
{
"matcher": "mcp__postgres__query",
"command": "bash ~/.claude/check-readonly-sql.sh \"$TOOL_INPUT\"",
"description": "DB への書き込みクエリをブロック"
}
]
}
}MCP のセキュリティ考慮事項
MCP は AI の能力を拡張する一方で、セキュリティの攻撃面も広げる。
対策チェックリスト
- 最小権限: 読み取り専用で十分なら書き込み権限を与えない
- 環境分離: 本番 DB への直接接続は避ける。ステージング経由
- 監査ログ: MCP 経由の操作はすべてログに記録
- 秘密管理: 接続情報は環境変数経由。
.mcp.jsonにハードコードしない - Hook 連携: 危険な操作は PreToolUse Hook でブロック
ユウキの気づき
「MCP を入れて変わったのは、AI の"視野"だ」
ユウキは振り返る。
「以前は、ローカルのファイルしか見えなかった AI が、GitHub の Issue を読み、DB のスキーマを確認し、本番のエラーログを分析できるようになった。人間のエンジニアが日常的にやっていることを、AI もできるようになったんだ」
ただし、ミサキは釘を刺した。
「能力を広げるほど、ハーネスが重要になる。馬が速くなれば、手綱はもっとしっかり握らないと」
次の章では、ハーネスの最上位構造——Workflow——に踏み込む。複数のエージェントを組み合わせて、複雑なタスクを確実に遂行する技術だ。