Claude Codeの設定 - MCPサーバ
概要
MCP (Model Context Protocol) は、LLMと外部ツールの統合を標準化したオープンプロトコルであり、AIのUSBと呼ばれる技術標準である。
Anthropic社が開発したこの技術により、Claude Codeは複数の外部システムと自然言語で対話できる。
MCPを使用することにより、以下に示すメリットが得られる。
- 統一されたインターフェース
- 複数のツールとサービスを標準化されたプロトコルで接続
- 自然言語による操作
- イシュートラッカー、データベース、監視データ分析、デザインツール、ワークフロー自動化を自然言語で依頼可能
- 複数サーバの同時接続
- Claude Codeは複数のMCPサーバを同時に接続して使用可能
- オープンエコシステム
- コミュニティによって開発された4,000以上のMCPサーバが利用可能
MCPの基本構造
MCPは、MCPクライアント (Claude Code) とMCPサーバ (外部システムへの接続を提供) の間で通信を行うプロトコルである。
MCPサーバとMCPクライアント
- MCPクライアント
- Claude Codeがクライアントとして機能し、MCPサーバに接続する。
- ユーザーの自然言語リクエストをMCPサーバへのツール呼び出しに変換する。
- MCPサーバ
- 外部システム (GitHub、データベース、Notionなど) への接続を提供する。
- ツール、リソース、プロンプトの3つの主要機能を提供する。
トランスポートの種類
MCPサーバは、以下の3つのトランスポート方式で接続される。
| トランスポート | 推奨度 | 説明 | 使用例 |
|---|---|---|---|
| HTTP | 最も推奨 | クラウドベースサービスに広くサポートされる。 | GitHub MCP、Supabase MCP、Zapier MCP |
| stdio (標準入出力) | 推奨 | ローカルプロセスとして実行される。 システムアクセスが必要なツールに最適。 |
Filesystem MCP、Playwright MCP |
| SSE (Server-Sent Events) | 非推奨 | 利用可能だが、HTTPへの移行を推奨。 | - |
接続可能な外部システム
MCPサーバを介して以下のシステムに接続できる。
| カテゴリ | 接続可能なシステム |
|---|---|
| 開発ツール | GitHub、GitLab、Playwright |
| データベース | PostgreSQL、MySQL、Supabase |
| ドキュメント管理 | Notion、Google Docs、ファイルシステム |
| 検索 | Brave Search、Google Search |
| 自動化 | Zapier、n8n |
| 監視・デバッグ | Sentry、Datadog |
| デザイン | Figma |
MCPサーバの設定場所 (スコープ)
MCPサーバの設定は、3つのスコープで管理される。
- local (デフォルト)
- 現在のプロジェクトのみで使用される。
- 設定ファイル : ~/.claude.json
- project
- プロジェクトルートに配置され、チーム全体で共有可能。
- 設定ファイル : プロジェクトルートの .mcp.json
- user
- 全プロジェクトで使用可能なグローバル設定。
- 設定ファイル : ~/.claude.json
| スコープ | 設定ファイルパス | 用途 |
|---|---|---|
| local | ~/.claude.json | 現在のプロジェクトのみ |
| project | プロジェクトルート/.mcp.json | チーム共有可能 |
| user | ~/.claude.json | 全プロジェクトで使用可能 |
MCPサーバのインストール
MCPサーバのインストールには、3つの方法がある。
CLIコマンドによるインストール
claude mcp add コマンドを実行して、対話的にMCPサーバをインストールできる。
# 基本 claude mcp add --transport http github https://api.githubcopilot.com/mcp/ # stdioトランスポートのインストール claude mcp add --transport stdio playwright -- npx -y @playwright/mcp@latest # スコープを指定したインストール claude mcp add --transport http --scope project supabase https://mcp.supabase.com/
設定ファイルの直接編集
~/.claude.json または .mcp.json を直接編集してMCPサーバを追加できる。
- HTTPサーバの設定例
{ "mcpServers": { "github": { "url": "https://api.githubcopilot.com/mcp/" } } }
- stdioサーバの設定例
{ "mcpServers": { "playwright": { "command": "npx", "args": ["-y", "@playwright/mcp@latest"] } } }
--mcp-configオプション
コマンドライン引数で設定ファイルを指定できる。
# カスタム設定ファイルを指定 claude --mcp-config /path/to/custom-mcp.json
このオプションにより、プロジェクトごとに異なる設定を使い分けることができる。
MCPサーバの管理コマンド
Claude CodeはMCPサーバの管理のためのCLIコマンドを提供する。
claude mcp list- 全てのMCPサーバを一覧表示
claude mcp get <名前>- 特定のMCPサーバの詳細を取得
claude mcp add- 新しいMCPサーバを追加
claude mcp remove <名前>- MCPサーバを削除
claude mcp add-json- JSON構成からMCPサーバを追加
claude mcp add-from-claude-desktop- Claude Desktopの設定からMCPサーバをインポート
使用例を以下に示す。
# 全てのMCPサーバを一覧表示 claude mcp list # GitHubサーバの詳細を取得 claude mcp get github # MCPサーバを削除 claude mcp remove github
設定ファイルの書式
MCPサーバの設定ファイルは、JSON形式で記述される。
HTTP / SSEサーバの設定例
HTTPトランスポートのMCPサーバ設定例を以下に示す。
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${GITHUB_TOKEN}"
}
},
"supabase": {
"url": "https://mcp.supabase.com/"
}
}
}
stdioサーバの設定例
stdioトランスポートのMCPサーバ設定例を以下に示す。
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/directory"]
},
"db": {
"command": "npx",
"args": ["-y", "@bytebase/dbhub", "--dsn", "postgresql://user:pass@localhost:5432/mydb"]
}
}
}
環境変数の設定
MCPサーバの設定には環境変数を使用できる。
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"env": {
"GITHUB_TOKEN": "your_github_token_here"
}
},
"db": {
"command": "npx",
"args": ["-y", "@bytebase/dbhub", "--dsn", "${DATABASE_URL}"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb"
}
}
}
}
認証情報は環境変数で管理し、.mcp.jsonファイルを.gitignoreに追加することを推奨する。
HTTPヘッダの設定
HTTPトランスポートのMCPサーバには、カスタムヘッダを設定できる。
{
"mcpServers": {
"custom-api": {
"url": "https://api.example.com/mcp/",
"headers": {
"Authorization": "Bearer ${API_TOKEN}",
"X-Custom-Header": "custom-value"
}
}
}
}
人気のMCPサーバ一覧
コミュニティによって開発された人気のMCPサーバを示す。
開発・コード管理
GitHub MCP
GitHubリポジトリ、Pull Request、Issueを管理する。
- 機能
- リポジトリの作成・管理、PR作成・レビュー、Issue管理、コードの検索
- 設定方法
claude mcp add --transport http github https://api.githubcopilot.com/mcp/
Playwright MCP
ブラウザ自動化とテストを実行する。
- 機能
- ブラウザ操作の自動化、Webページのテスト、スクリーンショット撮影、スクレイピング
- 設定方法
claude mcp add --transport stdio playwright -- npx -y @playwright/mcp@latest
データベース
PostgreSQL MCP
PostgreSQLデータベースのクエリとスキーマ検査を実行する。
- 機能
- SQLクエリの実行、スキーマ検査、テーブル情報の取得、データベース管理
- 設定方法
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub --dsn "postgresql://user:pass@localhost:5432/mydb"
Supabase MCP
Supabaseフルエコシステムへのアクセスを提供する。
- 機能
- データベース操作、認証、ストレージ、エッジ関数の管理
- 設定方法
claude mcp add --transport http supabase https://mcp.supabase.com/
ファイル・ドキュメント
Filesystem MCP
ローカルファイルシステムの操作を実行する。
- 機能
- ファイルの読み書き、ディレクトリの作成・削除、ファイル検索、ファイル情報の取得
- 設定方法
npm install -g @modelcontextprotocol/server-filesystem claude mcp add --transport stdio filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory
Context7 MCP
最新の技術ドキュメントを取得する。
- 機能
- 公式ドキュメントの検索、技術情報の取得、最新のライブラリ情報の参照
- 設定方法
- Context7の公式サイトから設定手順を参照
- Context7のAPIキーが必要になる。
# Claude Code ローカルサーバ接続 claude mcp add context7 -- npx -y @upstash/context7-mcp --api-key <Context7のAPIキー> # Claude Code リモートサーバ接続 claude mcp add --header "CONTEXT7_API_KEY: <Context7のAPIキー>" --transport http context7 https://mcp.context7.com/mcp
Notion MCP
Notionワークスペースとの連携を提供する。
- 機能
- ページの作成・編集、データベースの操作、コンテンツの検索
- 設定方法
claude mcp add --transport http notion https://mcp.notion.com/mcp
検索
Brave Search MCP
Brave検索エンジンを使用してWeb検索を実行する。
- 機能
- Web検索、ニュース検索、画像検索
- 無料枠
- 月2,000クエリ
- 設定方法
- Brave Search APIキーを取得して設定
自動化・生産性
Zapier MCP
8,000以上のアプリとの連携を提供する。
- 機能
- ワークフローの自動化、アプリ間のデータ連携、トリガーとアクションの設定
- 設定方法
claude mcp add --transport http zapier https://mcp.zapier.com/
n8n MCP
オープンソースの自動化プラットフォームを提供する。
- 機能
- ワークフローの作成・実行、複数サービスの連携、カスタムノードの作成
- GitHub Star
- 10万以上
- 設定方法
- n8nの公式サイトから設定手順を参照
監視・デバッグ
Sentry MCP
エラー追跡と監視を実行する。
- 機能
- エラーログの分析、パフォーマンス監視、問題の診断
- 設定方法
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
デザイン
Figma MCP
Figma Dev Modeとの連携を提供する。
- 機能
- デザインファイルの取得、コンポーネント情報の参照、デザイントークンの抽出
- 設定方法
- Figmaの公式サイトから設定手順を参照
思考支援
Sequential Thinking MCP
構造化された問題解決を支援する。
- 機能
- 複雑な問題を段階的に分解、推論プロセスの可視化、意思決定の支援
- 設定方法
claude mcp add --transport stdio sequential-thinking -- npx -y @modelcontextprotocol/server-sequential-thinking
MCPサーバの検索サイト
コミュニティ主導のMCPサーバディレクトリを以下に示す。
- Smithery (smithery.ai)
- 4,000以上のMCPサーバが登録されたディレクトリ
- カテゴリ別検索、人気順ソート、詳細なドキュメント
- mcp.so
- コミュニティ主導のMCPサーバディレクトリ
- 日本語対応、カテゴリ別分類、使用例の提供
- mcp-awesome.com
- 1,200以上の品質検証済みMCPサーバ
- 厳選されたサーバ、詳細なレビュー、インストール手順
リソース参照 (@メンション)
MCPサーバが提供するリソースを @メンションで参照できる。
リソース参照の例:
- @github/issue/123
- GitHubのIssue #123を参照
- @sentry/error/latest
- Sentryの最新エラーログを参照
- @postgres/table/users
- PostgreSQLのusersテーブルを参照
- @notion/page/project-overview
- Notionのプロジェクト概要ページを参照
リソース参照により、MCPサーバが管理する外部システムのデータを直接参照できる。
MCPスラッシュコマンド (/mcp)
セッション内でMCPサーバのステータスを確認するコマンドである。
# MCPサーバのステータス確認 /mcp
このコマンドにより、以下に示す情報が表示される。
- 接続中のMCPサーバ一覧
- 各サーバの接続状態
- 利用可能なツール
- リソースの数
コンテキスト最適化 (Tool Search)
Tool Searchは、MCPサーバが提供する多数のツールを動的に検索してコンテキスト消費を削減する機能である。
- 有効化方法
export ENABLE_TOOL_SEARCH=true
この機能により、以下に示すメリットが得られる。
- コンテキストウィンドウの節約
- 全てのツールをコンテキストに含めるのではなく、必要なツールのみを動的に検索
- パフォーマンスの向上
- 不要なツール情報をスキップすることで応答速度が向上
- 大規模MCPサーバの実用化
- 数百のツールを提供するMCPサーバでも効率的に使用可能
Claude CodeをMCPサーバとして使用
Claude Code自体をMCPサーバとして他のアプリケーションから使用できる。
- 設定例
- この設定により、他のMCPクライアント (Claude Desktopなど) からClaude Codeの機能を使用できる。
{ "mcpServers": { "claude_code": { "command": "/usr/local/bin/claude", "args": ["mcp", "serve"], "env": {} } } }
組織でのMCP管理
組織でMCPサーバを管理するための2つの方法がある。
排他的制御 (managed-mcp.json)
managed-mcp.jsonファイルを使用すると、組織が承認したMCPサーバのみを使用するように強制できる。
設定ファイルのパス:
- Linux/WSL
- /etc/claude-code/managed-mcp.json
- Windows
- C:\Program Files\ClaudeCode\managed-mcp.json
- MacOS
- /Library/Application Support/ClaudeCode/managed-mcp.json
- 設定例
- この設定により、ユーザーは
managed-mcp.jsonで定義されたMCPサーバのみを使用できる。 { "mcpServers": { "github": { "url": "https://api.githubcopilot.com/mcp/" }, "sentry": { "url": "https://mcp.sentry.dev/mcp" } } }
- この設定により、ユーザーは
ポリシーベース制御 (allowedMcpServers / deniedMcpServers)
許可または拒否するMCPサーバのリストを定義できる。
- 設定例
- この設定により、組織が承認したMCPサーバのみを使用でき、特定のサーバを明示的に拒否できる。
{ "allowedMcpServers": [ "github", "sentry", "supabase" ], "deniedMcpServers": [ "experimental-server" ] }
セキュリティ上の注意事項
MCPサーバを使用する際は、以下のセキュリティ上の注意事項を遵守する必要がある。
プロンプトインジェクション対策
MCPサーバが返すデータを盲目的に信頼しないこと。
- リスク
- 悪意のあるMCPサーバが、プロンプトインジェクション攻撃を仕掛ける可能性がある。
- 返されたデータに埋め込まれた指示によって、意図しない動作が引き起こされる。
- 対策
- 信頼できるMCPサーバのみを使用する。
- MCPサーバが返すデータを検証する。
- 重要な操作の前にユーザーに確認を求める。
信頼できるサーバのみ使用
公式MCPサーバまたはコミュニティで検証されたサーバのみを使用すること。
- 推奨サーバ
- Anthropic公式のMCPサーバ
- GitHub、Sentry、Supabaseなど大手企業が提供するサーバ
- Smithery、mcp.soで高評価のサーバ
- 避けるべきサーバ
- 出所不明のサーバ
- ドキュメントが不十分なサーバ
- コミュニティで問題が報告されているサーバ
認証情報の管理
認証情報は環境変数で管理し、設定ファイルをバージョン管理から除外すること。
# .gitignoreの設定 .mcp.json .claude.json
環境変数による認証情報の管理例を以下に示す。
この設定により、${GITHUB_TOKEN} は、環境変数から自動的に展開される。
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${GITHUB_TOKEN}"
}
}
}
}
トラブルシューティング
MCPサーバが正しく動作しない場合の対処法を以下に示す。
MCPサーバが認識されない
設定ファイルが正しい場所に配置されているか確認する。
# 設定ファイルの確認 cat ~/.claude.json cat .mcp.json
JSON構文が正しいか確認する。
# JSON構文の検証 jq . ~/.claude.json
Claude Codeを再起動する。
# Claude Codeの再起動 claude
MCPサーバへの接続に失敗する
MCPサーバのURLが正しいか確認する。
# MCPサーバの詳細を確認 claude mcp get github
環境変数が正しく設定されているか確認する。
# 環境変数の確認 echo $GITHUB_TOKEN
ネットワーク接続を確認する。
# MCPサーバへの接続テスト curl https://api.githubcopilot.com/mcp/
stdioサーバが起動しない
コマンドパスが正しいか確認する。
# npxの確認 which npx
Windowsでは cmd /c ラッパーを使用する。
# Windows用の設定 claude mcp add --transport stdio my-server -- cmd /c npx -y @some/package
タイムアウトエラーが発生する
環境変数 MCP_TIMEOUT を設定してタイムアウトを延長する。
# タイムアウトを10秒に設定 export MCP_TIMEOUT=10000
出力トークンが多すぎる
環境変数 MAX_MCP_OUTPUT_TOKENS を設定して最大出力トークンを調整する。
# 最大出力トークンを50,000に設定 export MAX_MCP_OUTPUT_TOKENS=50000
参考リンク
- Claude Code公式ドキュメント - MCP
- Model Context Protocol公式サイト
- MCP公式サーバリポジトリ
- Awesome MCP Servers
- Smithery - MCPサーバディレクトリ
- mcp.so - MCPサーバ検索
- mcp-awesome.com - 厳選MCPサーバ