MCP(Model Context Protocol)

MCP (Model Context Protocol) は、AI に「手足」を与える仕組みです。Claude Code に MCP サーバーを追加することで、GitHub 操作やデータベース接続など様々な外部サービスと連携できるようになります。

MCP とは

身近な例えで理解する

スマートフォンの「アプリ」をイメージしてください。

スマホの世界 MCP の世界
スマホ本体 AI(Claude Code)
アプリ MCP サーバー
App Store MCP エコシステム

スマホは本体だけでも電話やカメラが使えますが、アプリをインストールすると地図、決済、SNS など様々なことができるようになります。同じように、Claude Code も MCP サーバーを追加することで、GitHub 操作やデータベース接続など様々な外部サービスと連携できるようになります。

さらに、1つのアプリが iPhone でも Android でも使えるように、1つの MCP サーバーは Claude でも ChatGPT でも Copilot でも使えます。これが「標準プロトコル」であることの大きなメリットです。

MCP がない場合とある場合

MCP がない場合

あなた → Claude に質問 → Claude は自分の知識だけで回答
あなた → 自分で GitHub を開いて確認 → 結果を Claude にコピペ → また質問...

MCP がある場合

あなた → Claude に質問 → Claude が GitHub MCP 経由で直接 PR を確認 → 回答

仕組み

MCP は3つの登場人物で成り立っています。

flowchart TD subgraph Host["Host(AI アプリケーション)
Claude Code / VS Code / ChatGPT"] C1["Client
(GitHub用)"] C2["Client
(DB用)"] C3["Client
(Slack用)"] end C1 -->|"接続"| S1["🔌 MCP Server
GitHub"] C2 -->|"接続"| S2["🔌 MCP Server
PostgreSQL"] C3 -->|"接続"| S3["🔌 MCP Server
Slack"] style Host fill:#e0e7ff,stroke:#6366f1,color:#1e293b style S1 fill:#ecfdf5,stroke:#10b981,color:#1e293b style S2 fill:#ecfdf5,stroke:#10b981,color:#1e293b style S3 fill:#ecfdf5,stroke:#10b981,color:#1e293b
MCP の3層アーキテクチャ — Host → Client → Server
登場人物 何をするか 身近な例え
Host AI アプリ本体。Client を管理する スマホ本体
Client 各 Server との接続を維持する アプリの通信部分
Server 外部サービスへのアクセスを提供する インストールしたアプリ

MCP サーバーが AI に提供するもの

提供するもの 何ができるか 具体例
Tools(ツール) AI が実行できる「操作」 ファイルを作成する、PR を作る、メッセージを送る
Resources(リソース) AI が読み取れる「データ」 ファイルの中身、DB のレコード、API のレスポンス
Prompts(プロンプト) 定型の「指示テンプレート」 コードレビュー用のプロンプト、分析用のテンプレート

接続方式

方式 接続先 イメージ 主な用途
stdio 自分の PC 内 PC にインストールしたアプリを直接起動 ファイル操作、Git、ローカル DB
HTTP インターネット経由 Web サービスに接続 クラウド API、SaaS 連携
SSE インターネット経由 (旧方式。HTTP に移行中) レガシー連携
flowchart TD START(["Claude Code 起動"]) LOAD[".mcp.json を読み込み"] PARSE["mcpServers を解析"] CHECK{"接続方式?"} STDIO["stdio: コマンド実行
子プロセスとして起動"] HTTP["HTTP: URL に接続
SSE でストリーミング"] READY(["MCP サーバー利用可能"]) START --> LOAD --> PARSE --> CHECK CHECK -->|"command 指定"| STDIO --> READY CHECK -->|"url 指定"| HTTP --> READY style START fill:#e0e7ff,stroke:#6366f1,color:#1e293b style LOAD fill:#ecfdf5,stroke:#10b981,color:#1e293b style PARSE fill:#ecfdf5,stroke:#10b981,color:#1e293b style CHECK fill:#fef3c7,stroke:#f59e0b,color:#1e293b style STDIO fill:#f0f9ff,stroke:#3b82f6,color:#1e293b style HTTP fill:#f0f9ff,stroke:#3b82f6,color:#1e293b style READY fill:#ecfdf5,stroke:#10b981,color:#1e293b
MCP サーバーの接続フロー — stdio / HTTP の2方式

.mcp.json の設定方法

MCP サーバーの設定はプロジェクトルートの .mcp.json に定義します。Claude Code はプロジェクトルート直下の .mcp.json のみを認識するため、このファイルは移動できません。

注意: .mcp.json はプロジェクトルート直下に配置する必要があります。サブディレクトリに置いても認識されません。

基本構造

.mcp.json
{
  "mcpServers": {
    "サーバー名": {
      "type": "stdio",
      "command": "コマンドの絶対パス",
      "args": ["引数1", "引数2"],
      "env": {}
    }
  }
}

スターターキットに含まれる設定例

.mcp.json
{
  "mcpServers": {
    "serena": {
      "type": "stdio",
      "command": "/home/sasao020211/.local/bin/uvx",
      "args": [
        "--from",
        "git+https://github.com/oraios/serena",
        "serena",
        "start-mcp-server",
        "--context",
        "ide-assistant",
        "--project",
        "."
      ],
      "env": {}
    },
    "context7": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "--yes",
        "@upstash/context7-mcp"
      ],
      "env": {}
    }
  }
}

導入済み MCP サーバー

1. Serena(セマンティックコード解析)

項目 内容
リポジトリ https://github.com/oraios/serena
トランスポート stdio
前提条件 uv パッケージマネージャー
ライセンス OSS(無料)

機能:

  • セマンティックなコード解析・検索
  • シンボルレベルでのコード編集
  • 複数言語対応
  • IDE ライクなコードナビゲーション

前提条件のインストール:

# uv のインストール(Linux/macOS)
curl -LsSf https://astral.sh/uv/install.sh | sh

# インストール確認
uvx --version

注意: .mcp.json 内の command フィールドは uvx の絶対パスを指定しています。環境に合わせてパスを変更してください(例: /home/<user>/.local/bin/uvx)。

2. Context7(リアルタイムドキュメント取得)

項目 内容
リポジトリ https://github.com/upstash/context7
トランスポート stdio
前提条件 Node.js / npm
ライセンス OSS(無料)

機能:

  • 最新のライブラリ・フレームワークのドキュメントをリアルタイム取得
  • バージョン固有のコード例を提供
  • Claude の知識カットオフを補完し、最新の API 仕様に基づいたコード生成を支援

使い方: プロンプトに use context7 を含めると、Claude が最新ドキュメントを取得してからコードを生成します。

FastAPI で非同期エンドポイントを作成して use context7

MCP サーバーの追加方法

新しい MCP サーバーを追加する場合は、.mcp.json を直接編集するか、CLI で追加します。

CLI で追加する場合

# HTTP サーバーの追加(プロジェクトスコープ)
claude mcp add --transport http --scope project <name> <url>

# stdio サーバーの追加
claude mcp add --transport stdio --scope project <name> -- <command> <args...>

設定例: stdio 方式

.mcp.json(stdio 方式の例)
{
  "mcpServers": {
    "filesystem": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "--yes",
        "@modelcontextprotocol/server-filesystem",
        "/home/user/project"
      ],
      "env": {}
    }
  }
}

設定例: HTTP 方式

.mcp.json(HTTP 方式の例)
{
  "mcpServers": {
    "remote-api": {
      "type": "http",
      "url": "https://api.example.com/mcp",
      "headers": {
        "Authorization": "Bearer ${MCP_API_TOKEN}"
      }
    }
  }
}

接続確認とトラブルシューティング

# MCP サーバーの接続状態を確認
claude mcp list
症状 対処法
Failed to connect command の絶対パスが正しいか確認。which uvxwhich npx で確認
Needs authentication claude mcp でサーバーに接続後、認証フローを完了する
サーバーが認識されない .mcp.json がプロジェクトルート直下にあるか確認

世の中の主要な MCP サーバー

公式リファレンスサーバー

github.com/modelcontextprotocol/servers で提供されている公式実装です。

サーバー 用途
Filesystem ファイルの読み書き・検索(アクセス制御付き)
Git Git リポジトリの読み取り・検索・操作
Fetch Web コンテンツの取得・変換
Memory ナレッジグラフベースの永続メモリ
Sequential Thinking 思考の連鎖による動的な問題解決

エンタープライズ・主要プラットフォーム

サーバー 提供元 用途
GitHub MCP GitHub リポジトリ操作、Issue/PR 管理、コード解析
Microsoft MCP Microsoft Azure サービス、Microsoft 365 連携
Google Calendar / Gmail Google カレンダー・メール連携
Slack MCP Slack メッセージ作成、チャンネル要約、ワークスペース操作
Notion MCP Notion ページ・データベースの読み書き

データベース

サーバー 用途
Supabase スキーマ設計、マイグレーション、認証管理、TypeScript 型生成
PostgreSQL PostgreSQL のクエリ・スキーマ操作
SQLite SQLite データベース操作と分析
Neo4j グラフデータベースの Cypher クエリ
Redis 自然言語インターフェースによるデータ管理・検索
MongoDB MongoDB のクエリ・データ操作
ClickHouse 大規模データセットの高速分析
Milvus ベクトルデータベース統合

オブザーバビリティ・監視

サーバー 用途
Datadog ログ・トレース・メトリクスへのリアルタイムアクセス
Sentry エラートラッキング連携
Prometheus 監視データの統合・分析
Grafana Loki ログ集約・分析
CloudWatch Logs AWS CloudWatch ログの AI 駆動分析

開発・DevOps ツール

サーバー 用途
Terraform Cloud 自然言語による IaC 操作・プロバイダドキュメント参照
Testkube テストワークフローの実行・監視
Puppeteer Web 自動化・スクレイピング・スクリーンショット
Brave Search Brave Search API による Web 検索
Semgrep 静的解析・セキュリティスキャン

プロダクティビティ・連携

サーバー 用途
Google Drive Google Docs / Sheets / Slides へのアクセス
Figma デザインシステム連携。デザインからコード生成
Stripe 決済連携・管理
Asana プロジェクト管理・タスク追跡

統合プラットフォーム

サーバー 用途
Pipedream 2,500 以上の API、8,000 以上のプリビルトツールへのアクセス
MetaMCP GUI ベースの MCP 接続管理ミドルウェア

セキュリティ上の注意点

セキュリティに関する重要事項:

  • API キーを .mcp.json に直接記載しない - 環境変数(${ENV_VAR})を使用してください
  • .mcp.json をコミットする際は機密情報がないか確認する - コマンドパスにユーザー名が含まれる場合があります
  • 信頼できるソースの MCP サーバーのみを使用する - 公式リポジトリやメジャーなプロジェクトのものを優先してください
  • MCP サーバーに過度な権限を付与しない - 必要最小限のアクセス範囲に制限してください

ベストプラクティス:

  • まずは公式リファレンスサーバーから試して、MCP の仕組みに慣れましょう
  • claude mcp list で接続状態を定期的に確認しましょう
  • settings.local.jsonenabledMcpjsonServers で、使用する MCP サーバーを明示的に許可しましょう
  • MCP サーバーの command には絶対パスを指定すると、環境差異によるトラブルを防げます
  • チームで共有する場合、.mcp.json のコマンドパスを汎用的に記述するか、README に環境依存の設定変更手順を記載しましょう

参考リンク

リソース URL
MCP 公式サイト https://modelcontextprotocol.io/
MCP 仕様 https://modelcontextprotocol.io/specification/latest
公式サーバーリポジトリ https://github.com/modelcontextprotocol/servers
Awesome MCP Servers https://github.com/punkpeye/awesome-mcp-servers
MCP Inspector(デバッグツール) https://github.com/modelcontextprotocol/inspector
Claude Code MCP ドキュメント https://code.claude.com/docs/en/mcp