Model Context Protocol (MCP)は、LLMが外部ツールやデータソースにアクセスできるようにするオープンプロトコルです。MCPの詳細については、MCPドキュメントを参照してください。

サードパーティのMCPサーバーは自己責任で使用してください。MCPサーバーを信頼していることを確認し、特にインターネットと通信するMCPサーバーを使用する際は注意してください。これらはプロンプトインジェクションのリスクにさらされる可能性があります。

MCPサーバーの設定

1

MCP stdioサーバーの追加

# 基本構文
claude mcp add <name> <command> [args...]

# 例:ローカルサーバーの追加
claude mcp add my-server -e API_KEY=123 -- /path/to/server arg1 arg2
2

MCP SSEサーバーの追加

# 基本構文
claude mcp add --transport sse <name> <url>

# 例:SSEサーバーの追加
claude mcp add --transport sse sse-server https://example.com/sse-endpoint

# 例:カスタムヘッダー付きSSEサーバーの追加
claude mcp add --transport sse api-server https://api.example.com/mcp -e X-API-Key=your-key
3

MCP HTTPサーバーの追加

# 基本構文
claude mcp add --transport http <name> <url>

# 例:ストリーミング可能なHTTPサーバーの追加
claude mcp add --transport http http-server https://example.com/mcp

# 例:認証ヘッダー付きHTTPサーバーの追加
claude mcp add --transport http secure-server https://api.example.com/mcp -e Authorization="Bearer your-token"
4

MCPサーバーの管理

# 設定されたすべてのサーバーをリスト表示
claude mcp list

# 特定のサーバーの詳細を取得
claude mcp get my-server

# サーバーの削除
claude mcp remove my-server

ヒント:

  • -sまたは--scopeフラグを使用して、設定が保存される場所を指定します:
    • local(デフォルト):現在のプロジェクトであなたのみが利用可能(古いバージョンではprojectと呼ばれていました)
    • project.mcp.jsonファイルを通じてプロジェクト内の全員と共有
    • user:すべてのプロジェクトであなたが利用可能(古いバージョンではglobalと呼ばれていました)
  • -eまたは--envフラグで環境変数を設定(例:-e KEY=value
  • MCP_TIMEOUT環境変数を使用してMCPサーバーの起動タイムアウトを設定(例:MCP_TIMEOUT=10000 claudeで10秒のタイムアウトを設定)
  • Claude Code内で/mcpコマンドを使用していつでもMCPサーバーのステータスを確認
  • MCPはクライアント・サーバーアーキテクチャに従い、Claude Code(クライアント)が複数の専門サーバーに接続可能
  • Claude Codeはリアルタイム通信のためのSSE(Server-Sent Events)とストリーミング可能なHTTPサーバーをサポート
  • OAuth 2.0認証が必要なリモートサーバーで認証するには/mcpを使用

MCPサーバースコープの理解

MCPサーバーは3つの異なるスコープレベルで設定でき、それぞれがサーバーのアクセシビリティと共有の管理において異なる目的を果たします。これらのスコープを理解することで、特定のニーズに最適なサーバー設定方法を決定できます。

スコープ階層と優先順位

MCPサーバー設定は明確な優先順位階層に従います。同じ名前のサーバーが複数のスコープに存在する場合、システムはローカルスコープのサーバーを最初に優先し、次にプロジェクトスコープのサーバー、最後にユーザースコープのサーバーという順序で競合を解決します。この設計により、必要に応じて個人設定が共有設定を上書きできることが保証されます。

ローカルスコープ

ローカルスコープのサーバーはデフォルトの設定レベルを表し、プロジェクト固有のユーザー設定に保存されます。これらのサーバーはあなたにとってプライベートであり、現在のプロジェクトディレクトリ内で作業している場合にのみアクセス可能です。このスコープは、個人開発サーバー、実験的設定、または共有すべきでない機密認証情報を含むサーバーに最適です。

# ローカルスコープサーバーの追加(デフォルト)
claude mcp add my-private-server /path/to/server

# ローカルスコープを明示的に指定
claude mcp add my-private-server -s local /path/to/server

プロジェクトスコープ

プロジェクトスコープのサーバーは、プロジェクトのルートディレクトリにある.mcp.jsonファイルに設定を保存することで、チームコラボレーションを可能にします。このファイルはバージョン管理にチェックインされるように設計されており、すべてのチームメンバーが同じMCPツールとサービスにアクセスできることを保証します。プロジェクトスコープのサーバーを追加すると、Claude Codeは自動的にこのファイルを作成または更新し、適切な設定構造を含めます。

# プロジェクトスコープサーバーの追加
claude mcp add shared-server -s project /path/to/server

結果として生成される.mcp.jsonファイルは標準化された形式に従います:

{
  "mcpServers": {
    "shared-server": {
      "command": "/path/to/server",
      "args": [],
      "env": {}
    }
  }
}

セキュリティ上の理由から、Claude Codeは.mcp.jsonファイルからプロジェクトスコープのサーバーを使用する前に承認を求めます。これらの承認選択をリセットする必要がある場合は、claude mcp reset-project-choicesコマンドを使用してください。

ユーザースコープ

ユーザースコープのサーバーはプロジェクト間でのアクセシビリティを提供し、ユーザーアカウントにプライベートを保ちながら、マシン上のすべてのプロジェクトで利用可能にします。このスコープは、個人ユーティリティサーバー、開発ツール、または異なるプロジェクト間で頻繁に使用するサービスに適しています。

# ユーザーサーバーの追加
claude mcp add my-user-server -s user /path/to/server

適切なスコープの選択

以下に基づいてスコープを選択してください:

  • ローカルスコープ:個人サーバー、実験的設定、または1つのプロジェクトに固有の機密認証情報
  • プロジェクトスコープ:チーム共有サーバー、プロジェクト固有のツール、またはコラボレーションに必要なサービス
  • ユーザースコープ:複数のプロジェクトで必要な個人ユーティリティ、開発ツール、または頻繁に使用するサービス

リモートMCPサーバーでの認証

多くのリモートMCPサーバーは認証を必要とします。Claude Codeはこれらのサーバーへのセキュアな接続のためのOAuth 2.0認証フローをサポートしています。

1

認証が必要なリモートサーバーの追加

# OAuthが必要なSSEまたはHTTPサーバーの追加
claude mcp add --transport sse github-server https://api.github.com/mcp
2

/mcpコマンドを使用した認証

Claude Code内で、/mcpコマンドを使用して認証を管理します:

> /mcp

これにより、以下が可能なインタラクティブメニューが開きます:

  • すべてのサーバーの接続ステータスを表示
  • OAuthが必要なサーバーで認証
  • 既存の認証をクリア
  • サーバーの機能を表示
3

OAuthフローの完了

サーバーで「認証」を選択すると:

  1. ブラウザが自動的にOAuthプロバイダーに開きます
  2. ブラウザで認証を完了します
  3. Claude Codeがアクセストークンを受信し、安全に保存します
  4. サーバー接続がアクティブになります

ヒント:

  • 認証トークンは安全に保存され、自動的に更新されます
  • アクセスを取り消すには/mcpメニューの「認証をクリア」を使用
  • ブラウザが自動的に開かない場合は、提供されたURLをコピーしてください
  • OAuth認証はSSEとHTTPの両方のトランスポートで動作します

Postgres MCPサーバーへの接続

PostgreSQLデータベースへの読み取り専用アクセスをClaudeに与えて、クエリとスキーマ検査を行いたいとします。

1

Postgres MCPサーバーの追加

claude mcp add postgres-server /path/to/postgres-mcp-server --connection-string "postgresql://user:pass@localhost:5432/mydb"
2

Claudeでデータベースをクエリ

> usersテーブルのスキーマを説明してください
> システム内の最新の注文は何ですか?
> 顧客と請求書の関係を教えてください

ヒント:

  • Postgres MCPサーバーは安全性のために読み取り専用アクセスを提供します
  • Claudeはデータベース構造の探索と分析クエリの実行を支援できます
  • これを使用して、馴染みのないプロジェクトのデータベーススキーマを素早く理解できます
  • 接続文字列が必要最小限の権限を持つ適切な認証情報を使用していることを確認してください

JSON設定からのMCPサーバーの追加

Claude Codeに追加したい単一のMCPサーバーのJSON設定があるとします。

1

JSONからのMCPサーバーの追加

# 基本構文
claude mcp add-json <name> '<json>'

# 例:JSON設定でstdioサーバーを追加
claude mcp add-json weather-api '{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'
2

サーバーが追加されたことを確認

claude mcp get weather-api

ヒント:

  • シェルでJSONが適切にエスケープされていることを確認してください
  • JSONはMCPサーバー設定スキーマに準拠している必要があります
  • プロジェクト固有の設定ではなくグローバル設定にサーバーを追加するには-s globalを使用できます

Claude DesktopからのMCPサーバーのインポート

Claude DesktopでMCPサーバーをすでに設定しており、手動で再設定することなくClaude Codeで同じサーバーを使用したいとします。

1

Claude Desktopからのサーバーのインポート

# 基本構文 
claude mcp add-from-claude-desktop 
2

インポートするサーバーの選択

コマンドを実行すると、インポートしたいサーバーを選択できるインタラクティブダイアログが表示されます。

3

サーバーがインポートされたことを確認

claude mcp list 

ヒント:

  • この機能はmacOSとWindows Subsystem for Linux(WSL)でのみ動作します
  • これらのプラットフォームの標準的な場所からClaude Desktop設定ファイルを読み取ります
  • グローバル設定にサーバーを追加するには-s globalフラグを使用
  • インポートされたサーバーはClaude Desktopと同じ名前を持ちます
  • 同じ名前のサーバーがすでに存在する場合、数値サフィックスが付きます(例:server_1

Claude CodeをMCPサーバーとして使用

Claude Code自体をMCPサーバーとして使用し、他のアプリケーションが接続してClaudeのツールと機能を提供できるようにしたいとします。

1

ClaudeをMCPサーバーとして開始

# 基本構文
claude mcp serve
2

他のアプリケーションからの接続

Claude Desktop などの任意のMCPクライアントからClaude Code MCPサーバーに接続できます。Claude Desktopを使用している場合は、この設定を使用してClaude Code MCPサーバーを追加できます:

{
  "command": "claude",
  "args": ["mcp", "serve"],
  "env": {}
}

ヒント:

  • サーバーはView、Edit、LSなどのClaudeのツールへのアクセスを提供します
  • Claude Desktopで、Claudeにディレクトリ内のファイルを読み取り、編集などを行うよう依頼してみてください
  • このMCPサーバーは単にClaude CodeのツールをMCPクライアントに公開しているだけなので、個々のツール呼び出しに対するユーザー確認の実装はクライアント側の責任であることに注意してください

MCPリソースの使用

MCPサーバーは、ファイルを参照する方法と同様に、@メンションを使用して参照できるリソースを公開できます。

MCPリソースの参照

1

利用可能なリソースのリスト表示

プロンプトで@と入力すると、接続されたすべてのMCPサーバーから利用可能なリソースが表示されます。リソースは自動補完メニューでファイルと一緒に表示されます。

2

特定のリソースの参照

@server:protocol://resource/pathの形式を使用してリソースを参照します:

> @github:issue://123を分析して修正を提案してもらえますか?
> @docs:file://api/authenticationのAPIドキュメントをレビューしてください
3

複数のリソース参照

単一のプロンプトで複数のリソースを参照できます:

> @postgres:schema://usersと@docs:file://database/user-modelを比較してください

ヒント:

  • リソースは参照時に自動的に取得され、添付ファイルとして含まれます
  • リソースパスは@メンション自動補完でファジー検索可能です
  • サーバーがサポートしている場合、Claude CodeはMCPリソースをリストおよび読み取るツールを自動的に提供します
  • リソースはMCPサーバーが提供する任意のタイプのコンテンツ(テキスト、JSON、構造化データなど)を含むことができます

MCPプロンプトをスラッシュコマンドとして使用

MCPサーバーは、Claude Codeでスラッシュコマンドとして利用可能になるプロンプトを公開できます。

MCPプロンプトの実行

1

利用可能なプロンプトの発見

/と入力すると、MCPサーバーからのものを含むすべての利用可能なコマンドが表示されます。MCPプロンプトは/mcp__servername__promptnameの形式で表示されます。

2

引数なしでプロンプトを実行

> /mcp__github__list_prs
3

引数付きでプロンプトを実行

多くのプロンプトは引数を受け入れます。コマンドの後にスペース区切りで渡します:

> /mcp__github__pr_review 456
> /mcp__jira__create_issue "ログインフローのバグ" high

ヒント:

  • MCPプロンプトは接続されたサーバーから動的に発見されます
  • 引数はプロンプトの定義されたパラメータに基づいて解析されます
  • プロンプトの結果は会話に直接注入されます
  • サーバーとプロンプト名は正規化されます(スペースはアンダースコアになります)