MCP サーバー連携

Model Context Protocol(MCP)は、Claude Code を外部のツールやサービスと接続するための標準プロトコルです。MCP を使うと、Claude Code から直接 GitHub の Issue を操作したり、データベースにクエリを投げたり、Sentry のエラーを確認したりできるようになります。いわば「Claude Code にプラグインを追加する」ようなイメージです。

MCP の仕組み

Claude Code
←→
MCP プロトコル
←→
外部サービス
ホバーして各要素の詳細を確認

設定方法

MCP サーバーの設定は、settings.json の mcpServers セクション、または専用の .mcp.json ファイルに記述します。

ローカルコマンドサーバー(stdio)

ローカルでプロセスを起動し、標準入出力で通信する方式です。最も一般的な接続方法です。

json
{
  "mcpServers": {
    "sentry": {
      "command": "npx",
      "args": ["@mcp-servers/sentry"],
      "env": {
        "SENTRY_AUTH_TOKEN": "${SENTRY_AUTH_TOKEN}"
      }
    }
  }
}

リモート HTTP サーバー

リモートの HTTP エンドポイントに接続する方式です。SaaS が提供する MCP エンドポイントを利用する場合に使います。

json
{
  "mcpServers": {
    "github": {
      "url": "https://api.github.com/mcp",
      "auth": {
        "type": "bearer",
        "token": "${GITHUB_TOKEN}"
      }
    }
  }
}

設定ファイルの場所

MCP の設定も通常の設定と同様に、スコープに応じた配置が可能です。

配置場所ファイルスコープ
ローカル(gitignored).claude/.mcp.jsonこのプロジェクト・自分のみ
プロジェクト(共有).mcp.jsonプロジェクト全体・チーム共有
ユーザー~/.claude/mcp.jsonすべてのプロジェクト

設定オプション

オプション説明
command起動するコマンド(例: npx, node
argsコマンドに渡す引数の配列
env環境変数。${VAR} 形式で既存の環境変数を参照可能
urlリモート HTTP/SSE サーバーの URL
auth認証設定(bearer トークンなど)
timeoutタイムアウト時間(秒)

MCP ツールの権限管理

MCP 経由のツールにも、通常のツールと同じ権限ルールを適用できます。ツール名は mcp__サーバー名__ツール名 の形式です。

json
{
  "permissions": {
    "allow": [
      "mcp__github__*",
      "mcp__sentry__get_issues"
    ],
    "deny": [
      "mcp__github__delete_repo"
    ]
  }
}

CLI での管理

bash
# MCP サーバーの設定を対話的に管理
claude mcp

# 設定ファイルを指定して起動
claude --mcp-config path/to/mcp.json
セキュリティのヒント

env フィールドでは ${VAR_NAME} 形式で環境変数を参照できます。API キーなどの機密情報を設定ファイルに直接記述する必要がなく、安全に管理できます。

公式MCP ドキュメント ↗