mybook

第8章 — MCP: AI に五感を与える

閉じた世界の限界

ユウキのチームは順調だった。CLAUDE.md でルールを定め、Hooks で品質を守り、サブエージェントで専門性を分担していた。

しかし、ある日の障害対応で限界にぶつかった。

「本番の DB を確認したいんだけど、Claude Code からはアクセスできない」

「Sentry のエラーログを見たいけど、ブラウザを行ったり来たりしてる」

「Figma のデザインを見ながらコーディングしたいけど、別画面で開くしかない」

AI エージェントは優秀だったが、「目」も「手」もローカルのファイルシステムに閉じていた。外の世界と繋がっていなかったのだ。

MCP とは何か

MCP(Model Context Protocol)は、AI エージェントが外部のツールやデータソースと通信するための標準プロトコルだ。Anthropic が2024年末に公開し、急速にエコシステムが広がっている。

Loading diagram...

USB のアナロジー

MCP を理解する最も直感的な方法は、USB との類推だ。

USB が登場する前、プリンター、スキャナー、カメラはすべて異なるポートと異なるドライバーが必要だった。USB が「一つの標準」を提供したことで、どのデバイスも同じように接続できるようになった。

MCP は AI エージェントにとっての USB だ。どんな外部ツールも、MCP の標準に従えば同じように接続できる。

Loading diagram...

MCP の3つの機能

MCP サーバーは、AI エージェントに3種類の能力を提供する。

機能説明
ToolsAI が呼び出せるアクション「Issue を作成する」「スクリーンショットを撮る」
ResourcesAI が参照できるデータ「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 サーバーのエコシステムは爆発的に成長している。

Loading chart...

実践: ブラウザ自動操作

ユウキのチームが最初に導入した MCP は、ブラウザ操作だった。

「UI の変更を確認するのに、毎回ブラウザを手動で開いてチェックするのが面倒だった。MCP で自動化したら、Claude が自分でブラウザを開いて確認してくれるようになった」

Loading diagram...

実践: Context7 — ドキュメント参照

Context7 は、ライブラリやフレームワークの最新ドキュメントを AI に提供する MCP サーバーだ。

「AI の学習データは古い場合がある。Next.js 15 の新機能を聞いても、古い API を提案されることがあった。Context7 を入れたら、常に最新のドキュメントを参照して回答してくれるようになった」

{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@context7/mcp"],
      "description": "ライブラリのドキュメント参照"
    }
  }
}

MCP とハーネスの統合

MCP は単独では「ツール」に過ぎない。ハーネスの他の要素と組み合わせることで真価を発揮する。

Loading diagram...

例: 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 の能力を拡張する一方で、セキュリティの攻撃面も広げる。

Loading chart...

対策チェックリスト

  1. 最小権限: 読み取り専用で十分なら書き込み権限を与えない
  2. 環境分離: 本番 DB への直接接続は避ける。ステージング経由
  3. 監査ログ: MCP 経由の操作はすべてログに記録
  4. 秘密管理: 接続情報は環境変数経由。.mcp.json にハードコードしない
  5. Hook 連携: 危険な操作は PreToolUse Hook でブロック

ユウキの気づき

「MCP を入れて変わったのは、AI の"視野"だ」

ユウキは振り返る。

「以前は、ローカルのファイルしか見えなかった AI が、GitHub の Issue を読み、DB のスキーマを確認し、本番のエラーログを分析できるようになった。人間のエンジニアが日常的にやっていることを、AI もできるようになったんだ」

ただし、ミサキは釘を刺した。

「能力を広げるほど、ハーネスが重要になる。馬が速くなれば、手綱はもっとしっかり握らないと」

次の章では、ハーネスの最上位構造——Workflow——に踏み込む。複数のエージェントを組み合わせて、複雑なタスクを確実に遂行する技術だ。