このガイドのゴール

  • MCP(Model Context Protocol)とは何かを理解する
  • AI エージェントにファイル操作・Web 検索・DB 接続・GitHub 操作の能力を持たせる
  • セキュリティ境界を正しく設計し、本番環境での事故を防ぐ

MCP は Anthropic が策定したオープンプロトコルで、AI モデルが外部ツールと通信するための標準インターフェースです。Claude Desktop や Claude Code などの AI エージェントが、ローカルファイルの読み書き・Web 検索・データベースクエリなどを実行できるのは、MCP Server がその橋渡しをしているからです。

🧩 このガイドで使うリソース
AI エージェントに持たせたい能力で選ぶ
📁 ファイル操作
MCP Filesystem
指定ディレクトリ内のファイル読み書き・検索。許可パス外へのアクセスをプロトコルレベルで遮断。
🔍 Web 検索
MCP Brave Search
Brave Search API 経由でリアルタイム Web 検索。AI の知識カットオフを補完する用途。
🗄️ DB 接続
MCP PostgreSQL
PostgreSQL への読み取りクエリを実行。スキーマ情報の取得にも対応。書き込みはデフォルト無効。
🐙 GitHub 操作
MCP GitHub
Issue の作成・PR の読み取り・リポジトリ検索。GitHub API のトークンスコープで権限を制御。

MCP の仕組み

MCP は クライアント-サーバモデル で動作します。AI エージェント(クライアント)が MCP Server にリクエストを送り、サーバが外部ツールを実行して結果を返します。

🔧 MCP のアーキテクチャ
AI エージェントと外部ツールの間に MCP Server が介在する
🤖 AI エージェント Claude Desktop Claude Code 自作アプリ JSON-RPC MCP Filesystem read / write / search 📁 ローカルファイル 許可ディレクトリのみ MCP Brave Search web_search / local_search 🌐 Brave Search API リアルタイム検索 MCP PostgreSQL query / list_tables / schema 🗄️ PostgreSQL 読み取り専用推奨 MCP GitHub 🐙 GitHub API

通信プロトコル

MCP は JSON-RPC 2.0 ベースで、以下の 2 種類のトランスポートに対応しています。

  • stdio — ローカル実行。プロセス間の標準入出力で通信。Claude Desktop / Claude Code はこの方式
  • HTTP + SSE — リモート実行。HTTP でリクエストを送り、Server-Sent Events でレスポンスを受信

各 MCP Server のセットアップ

MCP Filesystem: ファイル操作

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y", "@modelcontextprotocol/server-filesystem",
        "/Users/you/projects",
        "/Users/you/documents"
      ]
    }
  }
}

許可するディレクトリを引数で明示的に指定します。指定外のパスへのアクセスはサーバ側で拒否されます。

🚨
ルートディレクトリ(/)を許可しないこと

ファイルシステム全体へのアクセスを許可すると、AI が ~/.ssh/id_rsa や ~/.env などの機密ファイルを読み取るリスクがあります。必要最小限のディレクトリだけを指定してください。

MCP Brave Search: Web 検索

{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": {
        "BRAVE_API_KEY": "your-api-key"
      }
    }
  }
}

Brave Search API のキーは Brave の開発者ポータル から取得します。無料プランは月 2,000 クエリまで。

MCP PostgreSQL: DB 接続

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y", "@modelcontextprotocol/server-postgres",
        "postgresql://user:pass@localhost:5432/mydb"
      ]
    }
  }
}
⚠️
本番 DB に直接接続しないこと

MCP PostgreSQL はデフォルトで読み取り専用ですが、接続先の DB ユーザー権限に依存します。必ず READ ONLY 権限のユーザーで接続し、可能であればレプリカに接続してください。本番 DB への直接接続は、AI が意図しないクエリ(重い JOIN や全件スキャン)を実行してパフォーマンスに影響を与えるリスクがあります。

MCP GitHub: リポジトリ操作

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."
      }
    }
  }
}

GitHub Personal Access Token のスコープは最小限にしてください。Issue の読み書きだけなら repo スコープ全体ではなく issues:write だけで十分です。

セキュリティの設計原則

MCP は AI に「行動する能力」を与えるため、セキュリティ設計が特に重要です。

最小権限の原則

サーバ 推奨設定
Filesystem 作業ディレクトリのみ許可。ホームディレクトリ全体は許可しない
Brave Search API キーのレート制限を設定
PostgreSQL READ ONLY ユーザーで接続。レプリカ推奨
GitHub 必要最小限の Token スコープ

ヒューマン・イン・ザ・ループ

Claude Desktop ではツール呼び出し前にユーザーの承認を求めるダイアログが表示されます。この仕組みを無効化しないでください。特にファイルの書き込みや DB への書き込みは、必ず人間の確認を経るべきです。

💡
設定ファイルをバージョン管理する

MCP の設定(claude_desktop_config.json)はプロジェクトの .claude/ ディレクトリに置き、Git で管理することを推奨します。チームメンバー間で同じツール構成を共有でき、API キーは環境変数から読み込む形にすれば機密情報のコミットも防げます。

実践パターン

パターン 1: コードレビュー自動化

GitHub MCP + Filesystem MCP を組み合わせて、PR の diff を読み取り → ローカルでコードを確認 → レビューコメントを投稿、という流れを AI に任せる。

パターン 2: データ分析アシスタント

PostgreSQL MCP + Brave Search MCP を組み合わせて、DB のデータを分析しつつ、不明な用語や最新情報を Web 検索で補完する。

パターン 3: ドキュメント生成

Filesystem MCP でソースコードを読み取り → コードの構造を分析 → README やAPI ドキュメントを自動生成してファイルに書き出す。

まとめ

  • MCP は AI エージェントに 外部ツールへのアクセス能力 を付与するオープンプロトコル
  • 設定は JSON ファイルに サーバごとのコマンドと引数 を記述するだけで導入可能
  • セキュリティは 最小権限 + ヒューマン・イン・ザ・ループ で設計する
  • ファイルシステムは 作業ディレクトリのみ許可、DB は 読み取り専用ユーザー で接続
  • 複数の MCP Server を 組み合わせる ことで、AI エージェントの活用幅が広がる

この記事の情報は 2026 年 4 月時点のものです。MCP の仕様は進化中であり、対応サーバやプロトコルの詳細は公式リポジトリで最新状況を確認してください。