Claude CodeではMCP(Model Context Protocol)サーバーを3つのスコープで管理できます。本記事では、それぞれの違いと使い分けを解説します。
最初に結論
- 全プロジェクトで自分が使う → User
- そのプロジェクトでチーム全員が使う → Project
- そのプロジェクトで自分だけが使う → Local
スコープ一覧
| スコープ | 保存先 | 共有範囲 | git管理 |
|---|---|---|---|
| User | ~/.claude.json |
全プロジェクト・自分のみ | されない |
| Project |
.mcp.json(プロジェクトルート) |
そのプロジェクト・チーム全員 | される |
| Local | ~/.claude.json |
そのプロジェクト・自分のみ | されない |
優先順位
同名のMCPサーバーが複数のスコープに存在する場合、以下の順で優先されます。
Local(最優先) > Project > User(最低優先)
各スコープの詳細
User(グローバル設定)
どのプロジェクトで Claude Code を起動しても自動的に利用可能になる設定です。プロジェクトを問わず使う汎用的なMCPサーバーに適しています。
claude mcp add --scope user chrome-devtools -- npx @anthropic-ai/chrome-devtools-mcp@latest
ユースケース:
- Chrome DevToolsのようなデバッグツール
- ファイルシステム操作系のMCPサーバー
- 個人用のナレッジベースやメモツール
Project(チーム共有設定)
プロジェクトルートの .mcp.json に保存され、gitでチーム全員に共有される設定です。
claude mcp add --scope project sentry -- npx @sentry/mcp-server@latest
生成される .mcp.json の例:
{
"mcpServers": {
"sentry": {
"command": "npx",
"args": ["@sentry/mcp-server@latest"]
}
}
}
ユースケース:
- チーム共通のエラー監視サービス(Sentry, Datadogなど)との連携
- プロジェクト固有のAPI・DBへの接続
- チーム全員が必要とする開発ツール
セキュリティ上の注意: Projectスコープのサーバーは初回利用時に承認を求められます。これは悪意のある設定がgit経由で混入するリスクへの対策です。
環境変数の展開にも対応しているため、秘密情報をgitにコミットせずに済みます。
{
"mcpServers": {
"api-server": {
"type": "http",
"url": "https://api.example.com/mcp",
"headers": {
"Authorization": "Bearer ${API_KEY}"
}
}
}
}
Local(個人×プロジェクト固有の設定)
~/.claude.json に保存されますが、特定のプロジェクトに紐づく設定です。自分だけがそのプロジェクトで使いたいMCPサーバーに適しています。
claude mcp add my-dev-db -- npx @example/db-mcp --connection-string "postgres://me@localhost:5432/dev"
--scope を指定しない場合のデフォルトがLocalです。
ユースケース:
- 自分の認証情報でステージング環境のDBに接続する場合
- チーム共有のProjectスコープ設定を、自分の環境だけ別のURLに差し替えたい場合
- 新しいMCPサーバーをチームに共有する前に個人的に試す場合
Localスコープの実践的な活用例
Localスコープの最も実践的な使い方は、Projectスコープの設定を個人的にオーバーライドすることです。
たとえばチームの .mcp.json に本番APIのMCPサーバーが設定されているとします。
{
"mcpServers": {
"api": {
"type": "http",
"url": "https://api.production.example.com/mcp"
}
}
}
自分だけ開発用のAPIサーバーを使いたい場合、同名でLocalスコープのサーバーを追加します。
claude mcp add api --transport http http://localhost:3000/mcp
Localが最優先のため、自分の環境では localhost:3000 が使われ、他のチームメンバーには影響しません。
結論のおさらい
- 全プロジェクトで自分が使う → User
- そのプロジェクトでチーム全員が使う → Project
- そのプロジェクトで自分だけが使う → Local
迷ったら「誰が」「どの範囲で」使うかを考えれば、適切なスコープが決まります。