Claude Codeの設定 - MCPサーバ

提供: MochiuWiki : SUSE, EC, PCB

概要

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


MCPサーバ設定ファイルのパス
スコープ 設定ファイルパス 用途
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



参考リンク