MCP サーバー

Model Context Protocol で Claude Code の機能を拡張し、外部ツールやサービスに接続

MCP サーバー

MCP(Model Context Protocol)は、Anthropic が提供するオープンスタンダードで、Claude Code を外部ツール、データベース、API、サービスに接続できます。MCP を使用することで、Claude Code の機能を大幅に拡張できます。

MCP とは?

基本概念

MCP は AI アシスタントと外部システム間の通信標準を定義するオープンプロトコルです。3 つのコアコンポーネントで構成されています:

コンポーネント 説明
Tools(ツール) 実行可能なアクション データベースクエリ、リクエスト送信、ファイル操作
Resources(リソース) 読み取り可能なデータ ファイル内容、API レスポンス、データベースレコード
Prompts(プロンプト) 事前定義されたタスクテンプレート コードレビューテンプレート、レポート生成テンプレート

なぜ MCP が必要?

  • 機能拡張:Claude が本来アクセスできないシステムにアクセス可能に

  • リアルタイムデータ:最新のドキュメント、データベース内容、API データを取得

  • 自動化:デプロイの実行、通知の送信、リソースの管理

  • プライバシー:データはローカルで処理、クラウドへのアップロード不要

クイックスタート

MCP ステータスを確認

> /mcp

現在設定されている MCP サーバーのステータスを表示します。

MCP サーバーを追加

claude mcp add コマンドを使用:

# ファイルシステムサーバーを追加
claude mcp add filesystem npx -y @modelcontextprotocol/server-filesystem /path/to/directory

# SQLite データベースサーバーを追加
claude mcp add sqlite npx -y mcp-server-sqlite ./database.db

# カスタムサーバーを追加
claude mcp add my-server node /path/to/server.js

設定ファイル方式

プロジェクトルートに .mcp.json ファイルを作成することもできます:

{
  "filesystem": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"]
  },
  "database": {
    "command": "npx",
    "args": ["-y", "mcp-server-sqlite", "./data.db"]
  }
}

人気の MCP サーバー

ファイルシステム

ローカルファイルシステムにアクセス:

{
  "filesystem": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/directory"]
  }
}

機能:指定ディレクトリ内のファイルの読み取り、書き込み、検索。

SQLite データベース

SQLite データベースに接続:

{
  "sqlite": {
    "command": "npx",
    "args": ["-y", "mcp-server-sqlite", "./database.db"]
  }
}

機能:SQL クエリの実行、データベーススキーマの管理。

GitHub

GitHub リポジトリに接続:

{
  "github": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-github"],
    "env": {
      "GITHUB_TOKEN": "${GITHUB_TOKEN}"
    }
  }
}

機能:Issues、PR、リポジトリ操作の管理。

Context7(ドキュメント検索)

最新のライブラリドキュメントを取得:

{
  "context7": {
    "command": "npx",
    "args": ["-y", "@context7/mcp-server"]
  }
}

機能:任意のライブラリの最新ドキュメントとコード例を取得。

Supabase

Supabase バックエンドに接続:

{
  "supabase": {
    "command": "npx",
    "args": ["-y", "@supabase/mcp-server"],
    "env": {
      "SUPABASE_URL": "${SUPABASE_URL}",
      "SUPABASE_KEY": "${SUPABASE_KEY}"
    }
  }
}

機能:データベース操作、認証、ストレージ管理。

Docker

コンテナ管理:

{
  "docker": {
    "command": "npx",
    "args": ["-y", "@docker/mcp-server"]
  }
}

機能:コンテナ、イメージ、ネットワークの管理。

サーバータイプ

stdio(ローカルプロセス)

最も一般的なタイプで、ローカルサブプロセスとして実行:

{
  "my-server": {
    "command": "node",
    "args": ["./server.js"],
    "env": {
      "API_KEY": "${API_KEY}"
    }
  }
}

特徴

  • ローカルで実行、データはマシン内に留まる

  • Claude Code がプロセスのライフサイクルを管理

  • ファイルシステム、ローカルデータベースに最適

SSE(Server-Sent Events)

⚠️ MCP 仕様 2025-11-25 以降、SSE は廃止予定です。 新規接続には Streamable HTTP(下記 HTTP セクション)を推奨します。SSE は既存サーバとの後方互換性のためにのみ保持されます。

リモートホストされた MCP サーバーに接続:

{
  "remote-server": {
    "type": "sse",
    "url": "https://mcp.example.com/sse"
  }
}

特徴

  • クラウドサービスに適している

  • OAuth 認証をサポート

  • ローカルインストール不要

HTTP

RESTful API 方式:

{
  "api-server": {
    "type": "http",
    "url": "https://api.example.com/mcp",
    "headers": {
      "Authorization": "Bearer ${API_TOKEN}"
    }
  }
}

環境変数

MCP 設定は環境変数の置換をサポート:

{
  "my-server": {
    "command": "node",
    "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],
    "env": {
      "DATABASE_URL": "${DATABASE_URL}",
      "API_KEY": "${API_KEY}",
      "DEFAULT_NAMESPACE": "${K8S_NAMESPACE:-default}"
    }
  }
}

構文

  • ${VAR} - 環境変数の値で置換

  • ${VAR:-default} - 変数が未設定の場合はデフォルト値を使用

実践例

例 1:データベースクエリアシスタント

{
  "postgres": {
    "command": "npx",
    "args": ["-y", "mcp-server-postgres"],
    "env": {
      "DATABASE_URL": "postgresql://user:pass@localhost/mydb"
    }
  }
}

使用例:

> 過去 7 日間の注文総額をクエリして
> 購入回数が最も多いユーザートップ 10 を見つけて

例 2:Kubernetes 運用

{
  "kubernetes": {
    "command": "node",
    "args": ["./k8s-mcp-server.js"],
    "env": {
      "KUBECONFIG": "${KUBECONFIG}",
      "K8S_NAMESPACE": "${K8S_NAMESPACE:-default}"
    }
  }
}

使用例:

> すべての Pod のステータスをリストして
> api-server デプロイメントを再起動して
> 最近のエラーログを表示して

例 3:マルチサーバー設定

{
  "filesystem": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "./src"]
  },
  "database": {
    "command": "npx",
    "args": ["-y", "mcp-server-sqlite", "./data.db"]
  },
  "github": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-github"],
    "env": {
      "GITHUB_TOKEN": "${GITHUB_TOKEN}"
    }
  }
}

トラブルシューティング

サーバーが起動しない

  1. コマンドが正しくインストールされているか確認: bash npx -y @modelcontextprotocol/server-filesystem --help

  2. 環境変数が設定されているか確認: bash echo $GITHUB_TOKEN

  3. Claude Code のログでエラーメッセージを確認

ツールが使用できない

  1. /mcp でサーバーステータスを確認

  2. 設定ファイルの形式が正しいか確認(JSON 構文)

  3. Claude Code を再起動して設定を再読み込み

権限の問題

  • ファイルパスに読み取り/書き込み権限があることを確認

  • データベース接続文字列が正しいことを確認

  • API トークンが有効で十分な権限があることを確認

セキュリティ推奨事項

  1. 最小権限の原則:必要なアクセスのみを付与

  2. 機密情報の保護:トークンとパスワードには環境変数を使用

  3. パスアクセスの制限:ファイルシステムサーバーは必要なディレクトリのみを公開

  4. キーの定期的なローテーション:API トークンを定期的に更新

セキュリティに関する注意

MCP サーバーはあなたの権限で動作し、データの読み取り、ツールの呼び出し、認証情報へのアクセスが可能です。サードパーティの MCP サーバーを導入することは、外部のコードを開発環境に組み込むことに等しいため、慎重に扱う必要があります。

主なリスク

  • データの流出:悪意のある、または侵害されたサーバーが、コード・ファイル・会話内容を外部に送信する可能性があります。

  • ツールポイズニング(tool poisoning):サーバーがツールの説明文に隠れた指示を埋め込み、許可していない操作を Claude に実行させようとします。

  • 認証情報の漏洩:設定が不適切なサーバーが、環境変数・シークレット・トークンを読み取る可能性があります。

  • 過剰な権限:実際に必要な範囲を超えたツール権限を付与すると、攻撃対象領域が広がります。

主要な対策

  • 信頼できるサーバーのみを導入:公式・レビュー済み・オープンソースで監査可能な MCP サーバーを優先し、出所不明な実装は避けます。

  • 最小権限:各サーバーが宣言するツールのスコープを一つずつ確認し、本当に必要な機能とディレクトリのみを公開します。

  • 人による承認ゲートを維持:Claude Code はツール呼び出しの前に確認を求めます。削除・書き込み・認証情報に関わる破壊的な操作を、無条件に承認したり全自動承認したりしないでください。

  • 認証情報の隔離:サンドボックスでコマンドを実行する際は sandbox.credentials を使い、サンドボックス内プロセスがシークレットや環境変数を読み取れないようにします。

  • 呼び出しの監査:ツール呼び出しのログを記録し、定期的に確認して異常な挙動を早期に検知します。

完全な脅威モデル、サンドボックス、認証情報の隔離設定については セキュリティのベストプラクティス を参照してください。

次のステップ

関連ドキュメント

Claude Agent SDK 入门
Claude Agent SDK を使用して AI Agent アプリケーションを構築する方法を学ぶ
サブエージェント連携モード
Claude Code のサブエージェントの理解と活用 — 並列探索、バックグラウンドタスク、隔離実行
Skills ガイド
Claude Code Skills の使い方と作成方法
🚀
QCode を始めよう — Claude Code & Codex
1つのプランで Claude Code と Codex の両方を加速、アジア太平洋低遅延
料金プランを見る → アカウント登録
3人以上のチーム?
企業版:専用ドメイン + サブKey管理 + 封禁保護、¥250/人/月〜
企業版を見る →