29 MCP サーバーを検索してビルドする29 MCP サーバーを検索してビルドする
30</h2>30</h2>
31 31
32[Anthropic Directory](https://claude.ai/directory) でレビュー済みのコネクタを参照してください。Directory コネクタは Claude Code と同じ MCP インフラストラクチャを使用しているため、`claude mcp add` を使用して、そこにリストされているリモートサーバーを追加できます。32[Anthropic Directory](https://claude.ai/directory) でレビュー済みのコネクターを参照してください。Directory コネクターは Claude Code と同じ MCP インフラストラクチャを使用しているため、`claude mcp add` を使用して、そこにリストされているリモートサーバーを追加できます。
33 33
34<Warning>34<Warning>
35 接続する前に、各サーバーを信頼していることを確認してください。外部コンテンツを取得するサーバーは、[プロンプトインジェクションリスク](/docs/ja/security#protect-against-prompt-injection)にさらされる可能性があります。35 接続する前に、各サーバーを信頼できることを確認してください。外部コンテンツを取得するサーバーは、[プロンプトインジェクションリスク](/docs/ja/security#protect-against-prompt-injection) にあなたを晒す可能性があります。
36</Warning>36</Warning>
37 37
38独自のサーバーをビルドするには、プロトコルの基礎については [MCP サーバーガイド](https://modelcontextprotocol.io/docs/develop/build-server) を、認証、テスト、Directory への提出については [Claude コネクタビルディングドキュメント](https://claude.com/docs/connectors/building) を参照してください。38独自のサーバーをビルドするには、プロトコルの基礎については [MCP サーバーガイド](https://modelcontextprotocol.io/docs/develop/build-server) を、認証、テスト、Directory への提出については [Claude コネクター構築ドキュメント](https://claude.com/docs/connectors/building) を参照してください。
39 39
40公式の [`mcp-server-dev` プラグイン](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/mcp-server-dev) を使用して、Claude にサーバーをスキャフォルドしてもらうこともできます。40公式の [`mcp-server-dev` プラグイン](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/mcp-server-dev) を使用して、Claude にサーバーをスキャフォールドしてもらうこともできます。
41 41
42<Steps>42<Steps>
43 <Step title="プラグインをインストールする">43 <Step title="プラグインをインストールする">
47 /plugin install mcp-server-dev@claude-plugins-official47 /plugin install mcp-server-dev@claude-plugins-official
48 ```48 ```
49 49
50 Claude Code がマーケットプレイスが見つからないと報告する場合は、まず `/plugin marketplace add anthropics/claude-plugins-official` を実行してから、インストールを再試行してください。インストール後、`/reload-plugins` を実行して、現在のセッションでアクティブにします。50 インストールが失敗した場合は、Claude Code が報告するメッセージに一致させてください:
51
52 * `Marketplace "claude-plugins-official" not found`:`/plugin marketplace add anthropics/claude-plugins-official` でマーケットプレイスを追加してから、インストールを再試行してください。
53 * [プラグインがマーケットプレイスで見つかりません](/docs/ja/discover-plugins#install-plugins):プラグイン名を確認してください。
54
55 インストール概要が `Run /reload-plugins to activate.` を報告する場合、Claude Code はその後、そのリロードを実行します。リロードが次のメッセージが会話を再度読み込むことになると警告する場合は、`/reload-plugins --force` を実行してください。
51 </Step>56 </Step>
52 57
53 <Step title="ビルドスキルを実行する">58 <Step title="ビルドスキルを実行する">
55 /mcp-server-dev:build-mcp-server60 /mcp-server-dev:build-mcp-server
56 ```61 ```
57 62
58 Claude があなたのユースケースについて質問し、リモート HTTP またはローカル stdio サーバーをスキャフォルドします。63 Claude があなたのユースケースについて質問し、リモート HTTP またはローカル stdio サーバーをスキャフォールドします。
59 </Step>64 </Step>
60</Steps>65</Steps>
61 66
63 MCP サーバーのインストール68 MCP サーバーのインストール
64</h2>69</h2>
65 70
66MCP サーバーは、ニーズに応じて複数の方法で設定できます:71MCP サーバーは、ニーズに応じてさまざまな方法で設定できます。
67 72
68<h3 id="option-1-add-a-remote-http-server">73<h3 id="option-1-add-a-remote-http-server">
69 オプション 1:リモート HTTP サーバーを追加する74 オプション 1: リモート HTTP サーバーを追加する
70</h3>75</h3>
71 76
72HTTP サーバーはリモート MCP サーバーに接続するための推奨オプションです。これはクラウドベースのサービスに最も広くサポートされているトランスポートです。77HTTP サーバーは、リモート MCP サーバーに接続するための推奨オプションです。これはクラウドベースのサービスに対して最も広くサポートされているトランスポートです。
73 78
74```bash theme={null}79```bash theme={null}
75# 基本的な構文80# 基本的な構文
76claude mcp add --transport http <name> <url>81claude mcp add --transport http <name> <url>
77 82
78# 実際の例:Notion に接続する83# 実際の例: Notion に接続
79claude mcp add --transport http notion https://mcp.notion.com/mcp84claude mcp add --transport http notion https://mcp.notion.com/mcp
80 85
81# Bearer トークンを使用した例86# Bearer トークン付きの例
82claude mcp add --transport http secure-api https://api.example.com/mcp \87claude mcp add --transport http secure-api https://api.example.com/mcp \
83 --header "Authorization: Bearer your-token"88 --header "Authorization: Bearer your-token"
84```89```
85 90
86MCP サーバーを `.mcp.json`、`~/.claude.json`、または `claude mcp add-json` で JSON を使用して設定する場合、`type` フィールドは `http` のエイリアスとして `streamable-http` を受け入れます。MCP 仕様ではこのトランスポートに `streamable-http` という名前を使用しているため、サーバードキュメントからコピーされた設定は変更なしで機能します。91`.mcp.json`、`~/.claude.json`、または `claude mcp add-json` で JSON を使用して MCP サーバーを設定する場合、`type` フィールドは `http` のエイリアスとして `streamable-http` を受け入れます。MCP 仕様ではこのトランスポートに `streamable-http` という名前を使用しているため、サーバードキュメントからコピーされた設定は変更なしで機能します。
92
93`url` を持つが `type` を持たない JSON エントリは設定エラーです。Claude Code は `type` を持たないエントリを stdio サーバーとして読み込むためです。Claude Code はそのサーバーをスキップし、`MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry` と報告します。v2.1.202 より前では、Claude Code はこの設定ミスを `command: expected string, received undefined` と報告していました。
87 94
88`url` を持つが `type` を持たない JSON エントリは設定エラーです。Claude Code は `type` を持たないエントリを stdio サーバーとして読み取るためです。Claude Code はそのサーバーをスキップし、`MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry` と報告します。v2.1.202 より前は、Claude Code はこの設定ミスを `command: expected string, received undefined` と報告していました。95`--output-format stream-json` 実行では、Claude Code はスキップされた `--mcp-config` エントリを `system/init` イベントの [`mcp_server_errors` フィールド](/docs/ja/headless#stream-responses) でも報告するため、スクリプトはサーバーが読み込まれなかったことを検出できます。これには Claude Code v2.1.219 以降が必要です。
89 96
90<h3 id="option-2-add-a-remote-sse-server">97<h3 id="option-2-add-a-remote-sse-server">
91 オプション 2:リモート SSE サーバーを追加する98 オプション 2: リモート SSE サーバーを追加する
92</h3>99</h3>
93 100
94<Warning>101<Warning>
95 SSE(Server-Sent Events)トランスポートは非推奨です。利用可能な場合は HTTP サーバーを使用してください。102 SSE(Server-Sent Events)トランスポートは非推奨です。利用可能な場合は HTTP サーバーを使用してください。
96</Warning>103</Warning>
97 104
105一部のサービスは SSE エンドポイントのみを公開しています。これらを [HTTP サーバー](#option-1-add-a-remote-http-server) と同じ `claude mcp add --transport http <name> <url>` コマンドで追加してください。Claude Code は最初に HTTP トランスポートを試し、サーバーがそれを受け入れない場合は SSE に切り替わります。自動切り替えには Claude Code v2.1.265 以降が必要です。
106
107以前のバージョンで、または SSE 経由で直接接続するには、代わりに `--transport sse` を渡してください。
108
98```bash theme={null}109```bash theme={null}
99# 基本的な構文110# 基本的な構文
100claude mcp add --transport sse <name> <url>111claude mcp add --transport sse <name> <url>
101 112
102# 実際の例:Asana に接続する113# 実際の例: Asana に接続
103claude mcp add --transport sse asana https://mcp.asana.com/sse114claude mcp add --transport sse asana https://mcp.asana.com/sse
104 115
105# 認証ヘッダーを使用した例116# 認証ヘッダー付きの例
106claude mcp add --transport sse private-api https://api.company.com/sse \117claude mcp add --transport sse private-api https://api.company.com/sse \
107 --header "X-API-Key: your-key-here"118 --header "X-API-Key: your-key-here"
108```119```
109 120
110<h3 id="option-3-add-a-local-stdio-server">121<h3 id="option-3-add-a-local-stdio-server">
111 オプション 3:ローカル stdio サーバーを追加する122 オプション 3: ローカル stdio サーバーを追加する
112</h3>123</h3>
113 124
114Stdio サーバーはマシン上でローカルプロセスとして実行されます。システムへの直接アクセスやカスタムスクリプトが必要なツールに最適です。125Stdio サーバーはマシン上のローカルプロセスとして実行されます。システムへの直接アクセスやカスタムスクリプトが必要なツールに最適です。
115 126
116Claude Code は、生成されたサーバーの環境に `CLAUDE_PROJECT_DIR` を設定して、プロジェクトルートを指定するため、サーバーは作業ディレクトリに依存することなくプロジェクト相対パスを解決できます。これは hooks が `CLAUDE_PROJECT_DIR` 変数で受け取るのと同じディレクトリです。サーバープロセス内から読み取ります。例えば、Node では `process.env.CLAUDE_PROJECT_DIR`、Python では `os.environ["CLAUDE_PROJECT_DIR"]` です。127Claude Code は、生成されたサーバーの環境に `CLAUDE_PROJECT_DIR` を設定して、プロジェクトルートに設定します。これにより、サーバーは作業ディレクトリに依存することなくプロジェクト相対パスを解決できます。これは hooks が `CLAUDE_PROJECT_DIR` 変数で受け取るのと同じディレクトリです。サーバープロセス内からこれを読み取ります。例えば、Node では `process.env.CLAUDE_PROJECT_DIR`、Python では `os.environ["CLAUDE_PROJECT_DIR"]` です。
117 128
118`CLAUDE_PROJECT_DIR` は安定したプロジェクトルートであり、セッション中に作業ディレクトリを追加または削除しても変わりません。ファイルシステムアクセスを許可されたディレクトリのセットに制限するサーバーは、代わりに MCP `roots/list` リクエストを実装する必要があります。Claude Code は `roots/list` に、セッションの起動ディレクトリと、`--add-dir`、`/add-dir`、または `additionalDirectories` 設定で付与した [追加の作業ディレクトリ](/docs/ja/permissions#working-directories) をすべて返します。Claude Code は、そのセットが変わるときに `notifications/roots/list_changed` を送信します。v2.1.203 より前は、`roots/list` は起動ディレクトリのみを返し、Claude Code は `notifications/roots/list_changed` を送信していませんでした。129`CLAUDE_PROJECT_DIR` は安定したプロジェクトルートであり、セッション中に作業ディレクトリを追加または削除しても変わりません。ファイルシステムアクセスを許可されたディレクトリのセットに制限するサーバーは、代わりに MCP `roots/list` リクエストを実装する必要があります。Claude Code は `roots/list` にセッションの起動ディレクトリと、`--add-dir`、`/add-dir`、または `additionalDirectories` 設定で付与した [追加作業ディレクトリ](/docs/ja/permissions#working-directories) をすべて返します。Claude Code はそのセットが変わるときに `notifications/roots/list_changed` を送信します。v2.1.203 より前では、`roots/list` は起動ディレクトリのみを返し、Claude Code は `notifications/roots/list_changed` を送信していませんでした。
119 130
120この変数はサーバーの環境に設定され、Claude Code 自体の環境には設定されないため、プロジェクトスコープまたはユーザースコープの `.mcp.json` `command` または `args` で `${VAR}` 展開を使用して参照するには、`${CLAUDE_PROJECT_DIR:-.}` などのデフォルトが必要です。プラグイン提供の MCP 設定は `${CLAUDE_PROJECT_DIR}` を直接置換し、デフォルトは必要ありません。131この変数はサーバーの環境に設定され、Claude Code 自体の環境には設定されないため、プロジェクトスコープの `.mcp.json` エントリまたはローカルまたはユーザースコープのサーバーエントリの `command` または `args` で `${VAR}` 展開を使用して参照するには、`${CLAUDE_PROJECT_DIR:-.}` などのデフォルトが必要です。プラグイン提供の MCP 設定は `${CLAUDE_PROJECT_DIR}` を直接置換し、デフォルトは必要ありません。
121 132
122```bash theme={null}133```bash theme={null}
123# 基本的な構文134# 基本的な構文
124claude mcp add [options] <name> -- <command> [args...]135claude mcp add [options] <name> -- <command> [args...]
125 136
126# 実際の例:Airtable サーバーを追加する137# 実際の例: Airtable サーバーを追加
127claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \138claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
128 -- npx -y airtable-mcp-server139 -- npx -y airtable-mcp-server
129```140```
130 141
131<Note>142<Note>
132 **重要:サーバー引数を `--` で分離する**143 **重要: サーバー引数を `--` で区切る**
133 144
134 Stdio サーバーの場合、`--`(ダブルダッシュ)は Claude 自体のオプション(`--transport`、`--env`、`--scope` など)をサーバーを実行するコマンドと引数から分離します。`--` の後のすべてはサーバーに変更されずに渡されます。145 Stdio サーバーの場合、`--`(ダブルダッシュ)は Claude 自体のオプション(`--transport`、`--env`、`--scope` など)をサーバーを実行するコマンドと引数から分離します。`--` の後のすべてはサーバーに変更されずに渡されます。
135 146
136 例:147 例えば:
137 148
138 * `claude mcp add --transport stdio myserver -- npx server` → `npx server` を実行します149 * `claude mcp add --transport stdio myserver -- npx server` → `npx server` を実行します
139 * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → 環境に `KEY=value` を設定して `python server.py --port 8080` を実行します150 * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → 環境に `KEY=value` を設定して `python server.py --port 8080` を実行します
140 151
141 `--` がない場合、Claude Code はサーバーのフラグ(上記の `--port` など)を独自のオプションとして解析しようとします。152 `--` がない場合、Claude Code はサーバーのフラグ(上記の `--port` など)を独自のオプションとして解析しようとします。
142 153
143 `--env` は複数の `KEY=value` ペアを受け入れます。サーバー名が `--env` の直後に来る場合、CLI は名前を別のペアとして読み取り、それを拒否するため、上記の例のように `--env` とサーバー名の間に少なくとも 1 つの別のオプションを配置してください。154 `--env` は複数の `KEY=value` ペアを受け入れます。サーバー名が `--env` の直後に来る場合、CLI は名前を別のペアとして読み込み、拒否するため、上記の例のように `--env` とサーバー名の間に少なくとも 1 つの別のオプションを配置してください。
144</Note>155</Note>
145 156
146<h3 id="option-4-add-a-remote-websocket-server">157<h3 id="option-4-add-a-remote-websocket-server">
147 オプション 4:リモート WebSocket サーバーを追加する158 オプション 4: リモート WebSocket サーバーを追加する
148</h3>159</h3>
149 160
150WebSocket サーバーは永続的な双方向接続を保持し、Claude に予期しないイベントをプッシュするリモート MCP サーバーに適しています。サーバーがリクエストにのみ応答する場合は HTTP を使用してください。HTTP は OAuth と `claude mcp add --transport` フラグをサポートしていますが、WebSocket はどちらもサポートしていません。161WebSocket サーバーは永続的な双方向接続を保持し、Claude に予期しないイベントをプッシュするリモート MCP サーバーに適しています。サーバーがリクエストにのみ応答する場合は HTTP を使用してください。HTTP は OAuth と `claude mcp add --transport` フラグをサポートしますが、WebSocket はどちらもサポートしていないためです。
151 162
152WebSocket サーバーを `.mcp.json` または `claude mcp add-json` で設定します:163WebSocket サーバーを `.mcp.json` または `claude mcp add-json` で設定します。
153 164
154```bash theme={null}165```bash theme={null}
155claude mcp add-json events-server \166claude mcp add-json events-server \
156 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'167 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'
157```168```
158 169
159`type: "ws"` エントリは `http` と同じ `url`、`headers`、`headersHelper`、`timeout`、`alwaysLoad` フィールドを受け入れます。認証はヘッダーのみなので、`headers` に静的トークンを渡すか、[`headersHelper`](#use-dynamic-headers-for-custom-authentication) で接続時に生成してください。`claude mcp add --transport` フラグは `ws` を受け入れません。170`type: "ws"` エントリは `http` と同じ `url`、`headers`、`headersHelper`、`timeout`、`alwaysLoad` フィールドを受け入れます。認証はヘッダーのみなので、`headers` に静的トークンを渡すか、接続時に [`headersHelper`](#use-dynamic-headers-for-custom-authentication) で生成してください。`claude mcp add --transport` フラグは `ws` を受け入れません。
171
172<h3 id="add-a-server-from-setup-instructions-written-for-another-client">
173 別のクライアント向けに書かれたセットアップ指示からサーバーを追加する
174</h3>
175
176MCP サーバーは Claude Code に固有ではないため、サーバーのセットアップ指示は Claude Desktop、Cursor、または別の MCP クライアント向けに書かれている可能性があり、`claude mcp add` コマンドを提供していない場合があります。それでもサーバーを追加するには、これら 3 つのいずれかについて指示を確認してください。
177
178* **URL**(`https://mcp.example.com/mcp` など): サーバーはリモートです。
179* **起動コマンド**(`npx -y @example/mcp-server` など): サーバーはマシン上で実行されます。
180* **`mcpServers` JSON ブロック**: 別のクライアントの設定ファイル向けに書かれた設定。
181
182各々は [MCP サーバーのインストール](#installing-mcp-servers) の 4 つのオプションが取る入力の 1 つです。以下で持っている形状を見つけて、Claude Code が受け入れるコマンドに変換してください。各コマンドは `--scope project` または `--scope user` を追加しない限り、[ローカルスコープ](#local-scope) に書き込みます。
183
184<h4 id="from-a-url">
185 URL から
186</h4>
187
188URL はサーバーがリモートであることを意味します。`https://` エンドポイントの場合、`--transport http` で追加するか、指示が SSE を使用するエンドポイントを示している場合は [オプション 2](#option-2-add-a-remote-sse-server) に従ってください。`wss://` エンドポイントの場合、`--transport` は `ws` を受け入れないため、代わりに [オプション 4](#option-4-add-a-remote-websocket-server) を使用してください。
189
190```bash theme={null}
191claude mcp add --transport http example https://mcp.example.com/mcp
192```
193
194指示が API キーまたはトークンヘッダーも提供する場合、[オプション 1](#option-1-add-a-remote-http-server) に示されているように `--header` で渡してください。
195
196<h4 id="from-an-npx-uvx-or-binary-command">
197 `npx`、`uvx`、またはバイナリコマンドから
198</h4>
199
200起動コマンドはサーバーがローカル stdio プロセスとして実行されることを意味します。コマンド全体を `--` の後に配置して、Claude Code が `-y` などのフラグをサーバーを起動するコマンドに渡し、独自のオプションとして読み込まないようにします。指示が要求する環境変数を `--env` で渡します。サーバー名の後、`--` の前に渡します。
201
202```bash theme={null}
203claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server
204```
205
206[オプション 3](#option-3-add-a-local-stdio-server) は `--` セパレータを完全にカバーしています。
207
208<h4 id="from-an-mcpservers-json-block">
209 `mcpServers` JSON ブロックから
210</h4>
211
212Claude Desktop などの別の MCP クライアント向けに書かれた `mcpServers` ブロックは、Claude Code が読み込むラッパーキーとエントリ形状を使用します。`claude mcp add-json` に `mcpServers` 内のオブジェクトを渡します。ラッパーではなく。2 つのエントリは最初に修復が必要です。
213
214* **`type` のない `url`**: エンドポイントに一致するように `"type": "http"`、`"type": "sse"`、または `"type": "ws"` を追加してください。Claude Code は `type` を持たないエントリを stdio サーバーとして読み込むため、`type` のない `url` エントリは失敗します。
215* **文字、数字、ハイフン、アンダースコア以外の文字を持つキー**: これらの文字のみを使用するサーバー名を選択してください。そうでない場合、キーはサーバー名です。
216
217例えば、このブロック:
218
219```json theme={null}
220{
221 "mcpServers": {
222 "example": {
223 "command": "npx",
224 "args": ["-y", "@example/mcp-server"]
225 }
226 }
227}
228```
229
230このコマンドになります:
231
232```bash theme={null}
233claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'
234```
235
236[JSON 設定から MCP サーバーを追加する](#add-mcp-servers-from-json-configuration) はシェルエスケープと `add-json` の `--scope` フラグをカバーしています。代わりにチームと共有するには、`--scope project` を追加するか、プロジェクトルートの `.mcp.json` の `mcpServers` の下にエントリを追加してコミットしてください。[プロジェクトスコープ](#project-scope) は Claude Code がそのファイルをどのように読み込み、承認するかをカバーしています。
237
238各 `claude mcp add` と `claude mcp add-json` コマンドは `Added ...` 行を出力します。Claude Code が接続したことを確認するには、`claude mcp get <name>` を実行してください。[サーバーステータス](#server-status) はそれが表示するステータスと `.mcp.json` サーバーの承認ステップをカバーしています。
160 239
161<h3 id="managing-your-servers">240<h3 id="managing-your-servers">
162 サーバーの管理241 サーバーの管理
163</h3>242</h3>
164 243
165設定後、これらのコマンドで MCP サーバーを管理できます:244設定されたら、これらのコマンドで MCP サーバーを管理できます。
166 245
167```bash theme={null}246```bash theme={null}
168# すべての設定済みサーバーをリストする247# すべての設定されたサーバーをリストする
169claude mcp list248claude mcp list
170 249
171# 特定のサーバーの詳細を取得する250# 特定のサーバーの詳細を取得する
172claude mcp get github251claude mcp get notion
173 252
174# サーバーを削除する253# サーバーを削除する
175claude mcp remove github254claude mcp remove notion
176 255
177# (Claude Code 内)サーバーのステータスを確認する256# (Claude Code 内)サーバーステータスを確認する
178/mcp257/mcp
179```258```
180 259
181`.mcp.json` からのプロジェクトスコープサーバーで承認待ちのものは、`claude mcp list` に `⏸ Pending approval` として表示されます。`claude` をインタラクティブに実行して、それらを確認して承認してください。`claude mcp get <name>` は保留中のサーバーを `⏸ Pending approval` として表示し、拒否されたサーバーを `✗ Rejected` として表示します。260リモートサーバーを削除すると、Claude Code はそのサーバー用に保存した OAuth トークンとクライアント登録も削除します。
261
262<h4 id="server-status">
263 サーバーステータス
264</h4>
265
266`claude mcp add` は `Added ...` 行を出力して成功した追加を確認します。これは設定が書き込まれたことを意味します。`claude mcp list` はその後、`✔ Connected`、`! Needs authentication`、`✘ Failed to connect` などの各サーバーの横に健全性ステータスを表示します。失敗ステータスは Claude Code がそのサーバーに接続できなかったことを意味し、list コマンドが失敗したことではありません。
182 267
183v2.1.196 以降、`claude mcp list` と `claude mcp get` は、リポジトリにチェックインされていない設定ファイルからのみ `.mcp.json` 承認を読み取ります。これは、`claude` を実行してワークスペーストラストダイアログを受け入れることでワークスペースを信頼するまでです。クローンされたリポジトリは独自のサーバーを承認できません:プロジェクトの `.claude/settings.json` にコミットされた [`enableAllProjectMcpServers` または `enabledMcpjsonServers`](/docs/ja/settings#available-settings) は信頼されていないフォルダでは無視され、サーバーは接続されてヘルスチェックされる代わりに `⏸ Pending approval` のままです。268このリストのステータスは接続試行ではなく設定決定を報告するため、Claude Code はサーバーに接続せずにそれらを出力します。
184 269
185これらのソースからの承認は、信頼されていないフォルダでも適用されます:270* ``⏸ Pending approval (run `claude` to approve)``: まだ承認していない `.mcp.json` からのプロジェクトスコープサーバー。Claude Code はそれを `claude mcp list` と `claude mcp get <name>` の両方に表示します。対話的に `claude` を実行して、それを確認して承認してください。
271* `✘ Rejected (see disabledMcpjsonServers in settings)`: [`disabledMcpjsonServers`](/docs/ja/settings-reference#disabledmcpjsonservers) エントリが拒否する `.mcp.json` サーバー。Claude Code はそれを `claude mcp get <name>` にのみ表示します。
272* `⊘ Disabled for this project (re-enable via /mcp)`: プロジェクトの [`disabledMcpServers`](#disable-a-server-without-removing-it) リストが名前を付けるサーバー。Claude Code はそれを `claude mcp list` と `claude mcp get <name>` の両方に表示します。`/mcp` パネルからサーバーをオンに戻してください。v2.1.238 より前では、両方のコマンドが無効なサーバーに接続して健全性チェックを実行し、接続結果を報告していました。
186 273
187* ユーザーの `~/.claude/settings.json`274WebSocket サーバーは `claude mcp list` 出力に表示されません。`claude mcp get <name>` または `/mcp` パネルを使用してそれらを確認してください。
275
276<h4 id="project-server-approvals-and-workspace-trust">
277 プロジェクトサーバーの承認とワークスペーストラスト
278</h4>
279
280v2.1.196 以降、`claude mcp list` と `claude mcp get` は `.mcp.json` 承認を、`claude` を実行してワークスペーストラストダイアログを受け入れるまでリポジトリにチェックインされていない設定ファイルからのみ読み込みます。クローンされたリポジトリは独自のサーバーを承認できません。プロジェクトの `.claude/settings.json` にコミットされた [`enableAllProjectMcpServers`](/docs/ja/settings-reference#enableallprojectmcpservers) または [`enabledMcpjsonServers`](/docs/ja/settings-reference#enabledmcpjsonservers) は信頼されていないフォルダでは無視され、サーバーは接続されて健全性チェックされる代わりに `⏸ Pending approval` のままです。
281
282これらのソースからの承認は信頼されていないフォルダでも適用されます。
283
284* ユーザー `~/.claude/settings.json`
188* 管理設定285* 管理設定
189* `--settings` で渡された設定286* `--settings` で渡された設定
190 287
191トラッキングされていない `.claude/settings.local.json` の承認も適用されますが、そのフォルダまたはその親ディレクトリのいずれかに対してトラストダイアログを受け入れた後のみです:Claude Code は git を実行してファイルがトラッキングされているかどうかを確認し、その確認は信頼されたフォルダでのみ実行されます。信頼したことのないフォルダでは、ファイルの承認はトラストダイアログを待ちます。ただし、フォルダがあなた自身の設定ホーム(ホームディレクトリ、または `.claude` を [`CLAUDE_CONFIG_DIR`](/docs/ja/env-vars) として設定したディレクトリ)である場合は除きます。v2.1.207 より前は、トラッキングされていない `.claude/settings.local.json` は信頼したことのないフォルダのサーバーを承認していました。288Claude Code はまた、追跡されていない `.claude/settings.local.json` からの承認を適用しますが、ファイルが追跡されているかどうかを確認するために git を実行し、その確認は [信頼されたフォルダ](/docs/ja/permissions#project-allow-rules-and-workspace-trust) でのみ実行されます。信頼したことのないフォルダでは、Claude Code はトラストダイアログを待ってからファイルの承認を適用します。ただし、フォルダがユーザー自身の設定ホームである場合は除きます。ホームディレクトリ、または `.claude` を [`CLAUDE_CONFIG_DIR`](/docs/ja/env-vars) として設定したディレクトリ。v2.1.207 より前では、Claude Code は信頼したことのないフォルダでも追跡されていない `.claude/settings.local.json` からの承認を適用していました。
289
290任意の設定ファイルの `disabledMcpjsonServers` エントリはまだサーバーを拒否します。
192 291
193任意の設定ファイル内の `disabledMcpjsonServers` エントリはサーバーを拒否します。292<h4 id="server-status-detail">
293 サーバーステータスの詳細
294</h4>
194 295
195`/mcp` パネルは、接続されている各サーバーの横にツール数を表示し、ツール機能をアドバタイズしているが、ツールを公開していないサーバーにフラグを立てます。296`/mcp` で、そこにあるサーバーのメニューを含めて、[`/plugin`](/docs/ja/plugins) マネージャーで、以前使用したリモート HTTP または SSE サーバーは `cached` ステータス(`cached 2h ago · connects on first use · 5 tools` など)を表示できます。Claude Code は起動時に接続する代わりに、前のセッションで保存された検出キャッシュからサーバーのツールリストを読み込み、Claude Code はサーバーのツールの 1 つを Claude が最初に呼び出すときにサーバーを接続します。ツールは最初のメッセージから利用可能なため、何もする必要はありません。検出キャッシュとその `cached` ステータスには Claude Code v2.1.221 以降が必要です。
196 297
197設定に空の `url` を持つリモートサーバーは、`/mcp`、`claude mcp list`、および [`/plugin`](/docs/ja/plugins) マネージャーに `not configured` として表示され、Claude Code は接続を試みません。プラグインは、後で設定するコネクタ用のプレースホルダーエントリを含めることができるため、Claude Code はそれをエラーまたはセットアップの問題として報告しません。`/mcp` のサーバーの詳細ビューは `No URL configured for this server` と表示されます。接続するにはエントリの `url` を設定してください。v2.1.208 より前は、Claude Code は空の `url` を設定の問題として報告し、再接続を促すプロンプトを表示していました。298検出キャッシュはデフォルトではオフですが、段階的なロールアウトがアカウントに対して有効にしている場合を除きます。[`MCP_DISCOVERY_CACHE=1`](/docs/ja/env-vars) を設定してオンにするか、`0` を設定してロールアウトが有効にしている場合でもオフのままにしてください。v2.1.238 より前では、キャッシュはデフォルトでオンでした。
198 299
199リクエストがまだバックグラウンドで接続中のサーバーからのツールを必要とする場合、Claude はそのサーバーが接続されるまで待機してから続行します。デフォルトで有効になっている [ツール検索](#scale-with-mcp-tool-search) を使用すると、待機は `ToolSearch` 呼び出し内で発生します。Google Cloud の Agent Platform、カスタム `ANTHROPIC_BASE_URL`、または `ENABLE_TOOL_SEARCH=false` などのツール検索がない設定では、Claude は代わりに `WaitForMcpServers` ツールを使用します。300`/mcp` のサーバーのメニューの 2 つのアクションもそのサーバーのキャッシュエントリに影響します。
200 301
201一部のサーバー名は Claude Code の組み込みサーバー用に予約されています:`workspace`、`claude-in-chrome`、`computer-use`、`Claude Preview`、`Claude Browser`。設定がこれらの予約名のいずれかでサーバーを定義している場合、Claude Code はロード時にそれをスキップし、名前を変更するよう求める警告を表示します。`claude mcp add` は予約名をエラーで拒否します。302* **再接続**: `cached` サーバーで、Claude Code は最初のツール呼び出しではなく今すぐそれを接続し、エントリを保持します。接続されたまたは失敗したサーバーで、Claude Code はそれを再接続し、エントリも破棄します。
303* **認証をクリア**: Claude Code はサーバーの認証を取り消し、エントリも破棄します。
202 304
203`Claude Preview` と `Claude Browser` は両方とも、[Claude Code デスクトップアプリのプレビューペイン](/docs/ja/desktop#preview-your-app) が使用する組み込みサーバーに名前を付けます。v2.1.205 より前は、`Claude Browser` は予約されていなかったため、ユーザーが設定したサーバーはその名前で登録できました。305エントリを破棄した後、Claude Code はキャッシュではなくサーバーからサーバーのツールリストを取得します。
306
307サーバーのステータスが `✘ Failed to connect` の場合、`claude mcp list` はそのステータス行に失敗の詳細を追加し、`claude mcp get <name>` は `Issue:` 行に表示します。HTTP ステータスまたはエラーコード、およびサーバーが返したエラーテキスト。サーバーの詳細ビューは `/mcp` で同じサーバー報告テキストを `Issue:` 行に含めます。Claude Code はこの詳細から認証情報のようなテキストを編集し、展開されたサーバー URL を含めることはありません。これはシークレットを運ぶことができます。Claude Code は `✘ Connection error` ステータスに詳細を追加しません。例外テキストがそこに出力される可能性があるため、その URL を埋め込むことができます。v2.1.219 より前では、両方のコマンドはステータスコードまたはサーバーのエラーテキストなしで、単なる失敗ステータスのみを表示していました。
308
309`/mcp` から認証を完了し、接続が HTTP ステータスまたはトランスポートエラーコードで失敗し続ける場合、Claude Code は試行後に出力するメッセージにそのコードとサーバーの URL の起点を追加します。起点はスキーム、ホスト、およびポート(URL が 1 つを名前付けする場合)です。例えば `https://mcp.example.com`。
310
311* パスとクエリはそのメッセージに表示されません。
312* ローカル、プロジェクト、またはユーザー [スコープ](#mcp-installation-scopes) のサーバー、または管理 MCP 設定のサーバーの場合、起点はその設定に書き込まれたホストを表示するため、ホストの `${VAR}` 参照はメッセージで展開されません。
313* ステータスまたはエラーコードのない失敗の場合、Claude Code は起点なしでエラーテキストを表示します。
314
315設定に空の `url` を持つリモートサーバーは `/mcp`、`claude mcp list`、[`/plugin`](/docs/ja/plugins) マネージャーで `not configured` として表示され、Claude Code はそれに接続しようとしません。プラグインは後で設定するコネクタのプレースホルダーエントリをこのように含めることができるため、Claude Code はそれをエラーまたはセットアップの問題として報告しません。サーバーの詳細ビューは `/mcp` で `No URL configured for this server` を読み込みます。接続するにはエントリの `url` を設定してください。v2.1.208 より前では、Claude Code は空の `url` を設定の問題として報告し、再接続を促していました。
316
317<h4 id="configuration-warnings">
318 設定警告
319</h4>
320
321Claude Code は以下の設定の問題について警告します。各エントリは Claude Code が何をチェックし、警告をクリアする方法を示しています。
322
323* **隠れた空白**: Claude Code は MCP 設定値が隠れた先頭または末尾の空白を持つときに警告します。これはしばしば末尾の改行を持つトークンを貼り付けることから来ます。Claude Code は `command`、`url`、各 `args` エントリ、および `env` と `headers` の下の値とキー名をチェックします。Claude Code は警告を `claude mcp list` 出力と `/mcp` に表示し、影響を受けたフィールドに名前を付けます。例えば `Leading or trailing whitespace in: headers.Authorization`。Claude Code は空白をトリムしません。書き込まれたとおりに値を使用するため、設定を編集してそれを削除してください。
324* **複数のスコープで同じ名前**: 異なるエンドポイントで複数の [スコープ](#mcp-installation-scopes) で同じサーバー名を定義する場合、Claude Code は `claude mcp list` 出力と `/mcp` で競合について警告します。Claude Code は OAuth サインインをエンドポイントごとに保存するため、1 つのプロジェクトで読み込まれる定義を認証すると、別の定義が読み込まれるプロジェクトで別にサインインする必要があります。必要なエンドポイントを保持し、他を `claude mcp remove <name> --scope <scope>` で削除してください。警告では、Claude Code は各スコープのエンドポイントを設定に書き込まれたとおりに引用します。[`${VAR}` 参照](#environment-variable-expansion-in-mcp-json) は展開されないため、API キーなどの解決された値を表示しません。
325* **予約名**: Claude Code は `workspace`、`claude-in-chrome`、`computer-use`、`Claude Preview`、`Claude Browser` を含む組み込みサーバーの名前を予約しています。設定が予約名を持つサーバーを定義する場合、Claude Code はロード時にそれをスキップし、名前を変更するよう求める警告を表示します。`claude mcp add` は予約名を拒否します。`Claude Preview` と `Claude Browser` は両方とも [Claude Code デスクトップアプリのプレビューペイン](/docs/ja/desktop#preview-your-app) が使用する組み込みサーバーに名前を付けます。v2.1.205 より前では、`Claude Browser` は予約されていなかったため、ユーザー設定サーバーはその名前で登録できました。
326* **環境変数の欠落**: サーバーの設定の [`${VAR}` 参照](#environment-variable-expansion-in-mcp-json) が設定されていない変数に名前を付け、`:-default` がない場合、Claude Code は `claude mcp list` 出力と `/mcp` で警告し、変数に名前を付けます。`${VAR}` テキストは展開されないままサーバーを読み込みます。変数を設定するか、`${VAR:-default}` フォールバックを追加してください。
327
328<h4 id="tool-availability">
329 ツール可用性
330</h4>
331
332`/mcp` パネルは各接続されたサーバーの横にツール数を表示し、ツール機能をアドバタイズするがツールを公開しないサーバーにフラグを立てます。
333
334リクエストがバックグラウンドでまだ接続中のサーバーからのツールを必要とする場合、Claude はそのサーバーが接続するまで待機します。待機の方法は設定によって異なります。
335
336* **[ツール検索](#scale-with-mcp-tool-search)(デフォルト)を使用**: 待機は `ToolSearch` 呼び出し内で発生します。
337* **ツール検索なし**: Claude は代わりに `WaitForMcpServers` ツールを使用します。ツール検索なしの設定には、カスタム `ANTHROPIC_BASE_URL`、`ENABLE_TOOL_SEARCH=false`、Google Cloud の Agent Platform の Claude 4.5 世代より前のモデルが含まれます。
338* **Microsoft Foundry [Azure でホストされたデプロイメント](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude はツール検索パスで開始します。Claude Code は API からのデプロイメントのサーバー側拒否のみを検出するため、`WaitForMcpServers` ではなく。Claude Code がそのデプロイメントを [アップフロント読み込み](#scale-with-mcp-tool-search) に切り替えた後、サーバーが接続を完了するからのツールは Claude の次のリクエストで利用可能になります。
339
340ツール検索が有効な場合、サーバーが Claude が作業中に接続を完了すると、Claude Code はサーバーのツール名を同じターンの次のリクエストで Claude にリストします。Claude はそれらのツールを検索して呼び出し、メッセージを待つことなく実行できます。
341
342<h3 id="disable-a-server-without-removing-it">
343 サーバーを削除せずに無効にする
344</h3>
345
346`/mcp` パネルでサーバーをオフに切り替えて、Claude Code がそれに接続するのを停止し、設定を失わないようにします。Claude Code はサーバーを `/mcp` にリストし、無効としてマークします。
347
348サーバーを切り替えると、Claude Code はプロジェクトごとに `~/.claude.json` で選択を記録します。2 つのリストの 1 つで、互いに素なサーバーセットをカバーします。
349
350* `disabledMcpServers`: ユーザー設定サーバー、プラグインサーバー、組織が [管理設定を通じて提供](/docs/ja/managed-mcp#provide-servers-through-managed-settings) するサーバー、Claude Code が [自身で取得](#how-connectors-reach-claude-code) する claude.ai コネクタ、およびデフォルトでオンの組み込みサーバーのオプトアウトリスト。Claude Code はここにリストするサーバーに接続しません。[Disable claude.ai connectors](#disable-claude-ai-connectors) で説明されているプロジェクトごとの `/mcp` トグルで claude.ai コネクタを無効にすると、Claude Code はそれをこのリストの下に表示名で書き込みます。例えば `claude.ai Slack`。
351* `enabledMcpServers`: `computer-use` などのデフォルトでオフの組み込みサーバーのオプトインリスト。Claude Code はここにリストする場合にのみデフォルトオフサーバーに接続します。
352
353Claude Code は各サーバーに対して 2 つのリストの 1 つを正確に参照するため、どちらのリストも他をオーバーライドしません。通常のサーバーを `enabledMcpServers` に追加するか、デフォルトオフの組み込みサーバーを `disabledMcpServers` に追加する場合、Claude Code はエントリを無視します。
354
355`disabledMcpServers` と `enabledMcpServers` は [`enabledMcpjsonServers`](/docs/ja/settings-reference#enabledmcpjsonservers) と [`disabledMcpjsonServers`](/docs/ja/settings-reference#disabledmcpjsonservers) とは無関係です。これらはプロジェクトの `.mcp.json` ファイルで定義されたサーバーの承認を制御します。
356
357<h3 id="mcp-client-runtimes">
358 MCP クライアントランタイム
359</h3>
360
361Claude Code は 2 つのクライアントランタイムの 1 つを通じて MCP サーバーに接続します。v1 ランタイムは MCP TypeScript SDK 1.x に基づいています。v2 ランタイムは [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/) 上の同じコードで、MCP プロトコルリビジョン 2026-07-28 を追加します。このページの残りは両方のランタイムに適用されます。ただし、セクションが v2 ランタイムに名前を付ける場合を除きます。
362
363Claude Code v2.1.232 以降では、Claude Code は v2 ランタイムを使用します。起動するたびにランタイムを選択し、終了するまで保持します。これを実行する場合は v1 を使用します。
364
365* Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、または Microsoft Foundry で。ただし、Claude Code を埋め込むホストプラットフォームが [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ja/env-vars) を設定する場合を除きます
366* [Claude apps gateway](/docs/ja/claude-apps-gateway) を通じてサインイン
367* [フィーチャーフラグ取得がオフ](/docs/ja/env-vars#features-that-need-feature-flag-fetching)
368
369v2 では、Claude Code も:
370
371* HTTP と claude.ai コネクタサーバーに新しいリビジョンをサポートするかどうかを尋ね、それをサポートするサーバーで使用します。Stdio サーバーに尋ねるのは [`MCP_PROTOCOL_NEGOTIATION`](/docs/ja/env-vars) を `auto` に設定する場合のみで、他のすべてのサーバーに v1 のように接続します。
372* 新しいリビジョンのサーバーから [ストリームを保持](#notification-streams-on-the-v2-runtime) 上で `list_changed` 通知を受け取ります。
373* 新しいリビジョンで接続する [チャネル](#push-messages-with-channels) サーバーを登録しません。そのリビジョンはチャネルメッセージを運ぶことができないためです。
374* 予期しない発行者に名前を付ける認可応答の [MCP OAuth サインイン](#authenticate-with-remote-mcp-servers) に失敗します。
375
376Anthropic は特定のサーバーを以前のプロトコルに保つか、Claude Code が取得するフィーチャーフラグでそのストリームをオフにすることができます。
377
378ランタイムを自分で選択するには、[`MCP_SDK_GENERATION`](/docs/ja/env-vars) を `v1` または `v2` に設定してください。Claude Code が尋ねるかどうかを決定するには、[`MCP_PROTOCOL_NEGOTIATION`](/docs/ja/env-vars) を `auto` または `legacy` に設定してください。Claude Code がデフォルトで v1 を使用する場合、`v2` をピン留めしても尋ねません。`auto` も設定してください。
204 379
205<h3 id="dynamic-tool-updates">380<h3 id="dynamic-tool-updates">
206 動的ツール更新381 動的ツール更新
207</h3>382</h3>
208 383
209Claude Code は MCP `list_changed` 通知をサポートしており、MCP サーバーが切断して再接続することなく、利用可能なツール、プロンプト、リソースを動的に更新できます。MCP サーバーが `list_changed` 通知を送信すると、Claude Code はそのサーバーから利用可能な機能を自動的に更新します。384Claude Code は MCP `list_changed` 通知をサポートし、MCP サーバーが切断して再接続することなく利用可能なツール、プロンプト、リソースを動的に更新できます。MCP サーバーが `list_changed` 通知を送信すると、Claude Code は自動的にそのサーバーから利用可能な機能をリフレッシュします。
385
386リフレッシュリクエストが失敗する場合、Claude Code はサーバーの以前に検出されたツール、プロンプト、リソースを保持します。後のリフレッシュが成功するまで。v2.1.214 より前では、リフレッシュ中の一時的なエラーはサーバーのツール、プロンプト、リソースを空のリストに置き換えていました。
387
388<h4 id="notification-streams-on-the-v2-runtime">
389 v2 ランタイムの通知ストリーム
390</h4>
391
392[v2 ランタイム](#mcp-client-runtimes) では、Claude Code は新しいプロトコルリビジョンのサーバーから保持するストリーム上で `list_changed` 通知を受け取ります。ストリームが閉じると、Claude Code はそれを再度開きます。2 つの制限があります。
393
394* **ストリームが 10 秒以内に再度閉じる**: Claude Code はそれを最大 3 回再度開き、その接続に対して停止します。
395* **ストリームが 10 秒以上開いたままで、その後閉じる**。サーバーレスホストへのストリームが一般的に行うように。1 時間に 5 回再度開いた後、Claude Code は次のものまで約 6 時間待機します。
396
397ストリームが再度開くまで、サーバーの最後に取得したツール、プロンプト、リソースを保持します。変更をより早く取得するには、`/mcp` からサーバーを再接続してください。
210 398
211<h3 id="automatic-reconnection">399<h3 id="automatic-reconnection">
212 自動再接続400 自動再接続
213</h3>401</h3>
214 402
215HTTP または SSE サーバーがセッション中に切断された場合、Claude Code は指数バックオフで自動的に再接続します:最大 5 回の試行、1 秒の遅延から始まり、毎回 2 倍になります。サーバーは再接続が進行中の間、`/mcp` では保留中として表示されます。5 回の失敗した試行の後、サーバーは失敗としてマークされ、`/mcp` から手動で再試行できます。Stdio サーバーはローカルプロセスであり、自動的には再接続されません。403Claude Code はセッション中にドロップするリモートサーバーを再接続し、一時的なエラーの後に HTTP または SSE サーバーの最初の接続を再試行します。Stdio サーバーはローカルプロセスであり、Claude Code は自動的にそれらを再接続しません。
404
405<h4 id="mid-session-drops-of-a-remote-server">
406 リモートサーバーのセッション中のドロップ
407</h4>
408
409Claude Code は指数バックオフでドロップされたリモートサーバーを再接続します。最大 5 回の試行。1 秒の遅延で開始し、毎回それを 2 倍にします。表示内容は Claude Code の実行方法によって異なります。
410
411* **対話的セッション**: `/mcp` は Claude Code が再接続している間、サーバーを保留中として表示します。5 回の失敗した試行の後、Claude Code はサーバーを失敗としてマークするか、サーバーが再度認可する必要がある場合は認証が必要として。`/mcp` から手動で再試行できます。
412* **[`claude -p`](/docs/ja/headless) 実行と [Agent SDK](/docs/ja/agent-sdk/overview) セッション**: Claude Code は同じスケジュールで再接続し、試行を表示する `/mcp` パネルはありません。
216 413
217同じバックオフは、HTTP または SSE サーバーが起動時に初期接続に失敗した場合にも適用されます。v2.1.121 以降、Claude Code は 5xx レスポンス、接続拒否、タイムアウトなどの一時的なエラーで初期接続を最大 3 回再試行し、それでも接続できない場合はサーバーを失敗としてマークします。認証エラーと見つからないエラーは、解決するために設定変更が必要なため、再試行されません。414<h4 id="failed-first-connections">
415 失敗した最初の接続
416</h4>
218 417
219設定されたサーバーが接続に失敗した場合、Claude Code は Claude にどのサーバーが失敗したかとその接続エラーを伝えます。これは、マッチするツールが見つからない `ToolSearch` 結果を含みます。そのため、Claude は応答で接続失敗を報告します。[ツール検索](#scale-with-mcp-tool-search) が必要です。これはデフォルトで有効になっています。カスタム `ANTHROPIC_BASE_URL`、`ENABLE_TOOL_SEARCH=false`、または Haiku モデルなどのツール検索がない設定、および Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry では、Claude Code は失敗したサーバー接続を Claude に報告しません。v2.1.205 より前は、Claude Code は接続エラーを Claude に渡さず、Claude は失敗したサーバーのツールが設定されていないかのように応答できました。418HTTP または SSE サーバーの最初の接続が 5xx レスポンス、接続拒否、タイムアウトなどの一時的なエラーで失敗する場合、Claude Code は最大 3 回再試行します。接続がまだ失敗する場合、Claude Code はサーバーを失敗としてマークします。Claude Code はこのように起動時と、セッション中にサーバーが追加されるときに再試行します。これには Claude Code が [クラウドセッション](/docs/ja/claude-code-on-the-web) に設定から追加するサーバーと、Agent SDK の [`setMcpServers()`](/docs/ja/agent-sdk/typescript) で追加するサーバーが含まれます。
220 419
221v2.1.191 以降、接続成功後に実行される機能検出リクエスト(`tools/list`、`prompts/list`、`resources/list` など)も、一時的なネットワークおよびサーバーエラーを短いバックオフで最大 3 回再試行します。認証エラー、4xx レスポンス、リクエストタイムアウトは再試行されません。420Claude Code はこれらの場合には再試行しません。
421
422* WebSocket サーバーの最初の接続
423* 認証またはエラーが見つからない。設定変更を解決する必要があるため。[`headersHelper`](#use-dynamic-headers-for-custom-authentication) がサーバーの `Authorization` ヘッダーの唯一のソースである場合、Claude Code は認証エラーを再試行します。ヘルパーを各試行で再実行し、新しい認証情報を取得できるためです。
424
425<h4 id="failed-discovery-requests">
426 失敗した検出リクエスト
427</h4>
428
429サーバーが接続した後、Claude Code は `tools/list`、`prompts/list`、`resources/list` などの機能検出リクエストを送信します。Claude Code は一時的なネットワークまたはサーバーエラーの後、短いバックオフで最大 3 回それらのリクエストを再試行します。認証エラー、4xx レスポンス、またはリクエストタイムアウトは再試行しません。
430
431<h4 id="how-claude-learns-that-a-server-failed">
432 Claude がサーバーが失敗したことを学ぶ方法
433</h4>
434
435Claude Code が接続に失敗した設定されたサーバーについて Claude に伝えるかどうかは [ツール検索](#scale-with-mcp-tool-search)(デフォルトではオン)に依存します。
436
437* ツール検索を使用して、Claude Code は Claude にどのサーバーが失敗したか、その接続エラーを伝えるため、Claude は応答で接続失敗を報告します。Claude Code は一致するツールを見つけない `ToolSearch` 結果に同じ情報を含めます。
438* [ツール検索なしの設定](#configure-tool-search) では、Claude Code は失敗したサーバー接続を Claude に報告しません。
222 439
223<h3 id="push-messages-with-channels">440<h3 id="push-messages-with-channels">
224 チャネルでメッセージをプッシュする441 チャネルでメッセージをプッシュする
225</h3>442</h3>
226 443
227MCP サーバーはセッションに直接メッセージをプッシュすることもでき、Claude が CI 結果、監視アラート、チャットメッセージなどの外部イベントに対応できます。これを有効にするには、サーバーが `claude/channel` 機能を宣言し、起動時に `--channels` フラグでオプトインします。公式にサポートされているチャネルを使用するには [チャネル](/docs/ja/channels) を参照するか、独自に構築するには [チャネルリファレンス](/docs/ja/channels-reference) を参照してください。444MCP サーバーはまた、CI 結果、監視アラート、チャットメッセージなどの外部イベントに Claude が反応できるようにメッセージをセッションに直接プッシュできます。これを有効にするには、サーバーが `claude/channel` 機能を宣言し、起動時に `--channels` フラグでオプトインします。[チャネル](/docs/ja/channels) を使用して公式にサポートされているチャネルを使用するか、[チャネルリファレンス](/docs/ja/channels-reference) を参照して独自に構築してください。
445
446[v2 ランタイム](#mcp-client-runtimes) では、[`MCP_PROTOCOL_NEGOTIATION`](/docs/ja/env-vars) を `auto` に設定し、チャネルサーバーが MCP プロトコルリビジョン 2026-07-28 をネゴシエートする場合、チャネルメッセージを配信できないため、Claude Code はそれをチャネルとして登録しません。変数を設定しないままにするか、`legacy` に設定して、stdio サーバーを以前のハンドシェイクに保ちます。
228 447
229<Tip>448<Tip>
230 ヒント:449 ヒント:
231 450
232 * `-s` または `--scope` フラグを使用して、設定が保存される場所を指定します:451 * `-s` または `--scope` フラグを使用して、設定が保存される場所を指定します。
233 * `local`(デフォルト):現在のプロジェクトでのみ利用可能。古いバージョンではこのスコープを `project` と呼んでいました452 * `local`(デフォルト): 現在のプロジェクトでのみ利用可能
234 * `project`:`.mcp.json` ファイルを通じてプロジェクト内のすべてのユーザーと共有453 * `project`: `.mcp.json` ファイルを通じてプロジェクト内のすべてのユーザーと共有
235 * `user`:すべてのプロジェクト全体で利用可能。古いバージョンではこのスコープを `global` と呼んでいました454 * `user`: すべてのプロジェクト全体で利用可能
236 * `-e` または `--env` フラグで環境変数を設定します(例:`-e KEY=value`)455 * `-e` または `--env` フラグで環境変数を設定します(例えば、`-e KEY=value`)
237 * `--transport` と `--header` フラグは `-t` と `-H` の短い形式も受け入れます456 * `--transport` と `--header` フラグは `-t` と `-H` 短形式も受け入れます
238 * `MCP_TIMEOUT` 環境変数を使用して MCP サーバーのスタートアップタイムアウトを設定します(例:`MCP_TIMEOUT=10000 claude` は 10 秒のタイムアウトを設定します)457 * `MCP_TIMEOUT` 環境変数を使用して MCP サーバー起動タイムアウトを設定します(例えば、`MCP_TIMEOUT=10000 claude` は 10 秒のタイムアウトを設定します)
239 * サーバーごとのツール実行タイムアウトを設定するには、そのサーバーの `.mcp.json` エントリにミリ秒単位で `timeout` フィールドを追加します。例えば、10 分の場合は `"timeout": 600000` です。これはそのサーバーのみの `MCP_TOOL_TIMEOUT` 環境変数をオーバーライドします458 * ミリ秒単位で `.mcp.json` エントリにそのサーバーの `timeout` フィールドを追加して、サーバーごとのツール実行タイムアウトを設定します。例えば `"timeout": 600000` は 10 分です。これは `MCP_TOOL_TIMEOUT` 環境変数をそのサーバーのみでオーバーライドします
240 * Claude Code は MCP ツール出力が 10,000 トークンを超えると警告を表示し、デフォルトで出力を 25,000 トークンに制限します。制限を増やすには、`MAX_MCP_OUTPUT_TOKENS` 環境変数を設定します(例:`MAX_MCP_OUTPUT_TOKENS=50000`)。警告しきい値は固定です。[MCP 出力制限と警告](#mcp-output-limits-and-warnings) を参照してください459 * Claude Code は MCP ツール出力が 10,000 トークンを超えるときに警告を表示し、デフォルトで出力を 25,000 トークンに制限します。制限を上げるには、`MAX_MCP_OUTPUT_TOKENS` 環境変数を設定します(例えば、`MAX_MCP_OUTPUT_TOKENS=50000`)。警告しきい値は固定です。[MCP 出力制限と警告](#mcp-output-limits-and-warnings) を参照してください
241 * `/mcp` を使用して、OAuth 2.0 認証が必要なリモートサーバーで認証します460 * `/mcp` を使用して、OAuth 2.0 認証が必要なリモートサーバーで認証します
242</Tip>461</Tip>
243 462
244サーバーごとの `timeout` はツール呼び出しごとのハードウォールクロック制限であり、サーバーからの進捗通知はそれを延長しません。1000 未満の値は無視され、`MCP_TOOL_TIMEOUT` にフォールスルーするか、その変数が設定されていない場合は約 28 時間のデフォルトにフォールスルーします。HTTP、SSE、または [claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai) サーバーの場合、サーバーの最初の応答バイトまでの各リクエストをカバーする、リクエストごとの 2 番目のタイマーもあります。このタイマーは、サーバーごとの `timeout` または `MCP_TOOL_TIMEOUT` を設定しない限り 60 秒です。どちらかを 60 秒以上に設定するとリクエストごとのタイマーがその値に上がり、より低い値ではそれを短縮しません。設定されていない `MCP_TOOL_TIMEOUT` の 28 時間のデフォルトはそれに供給されません。Stdio および WebSocket サーバーにはリクエストごとのタイマーがありません。v2.1.162 より前は、1000 未満の値は 1 秒に切り下げられていました。463サーバーごとの `timeout` はツール呼び出しごとのハードウォールクロック制限であり、サーバーからの進捗通知はそれを拡張しません。1000 未満の値は無視され、`MCP_TOOL_TIMEOUT` にフォールスルーするか、その変数が設定されていない場合は約 28 時間のデフォルトにフォールスルーします。HTTP、SSE、または [claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai) サーバーの場合、サーバーの最初の応答バイトまでの各リクエストをカバーする 2 つ目の、リクエストごとのタイマーもあります。Claude Code はそのタイマーを 3 つの値の最大値に設定します。60 秒、サーバーに適用されるツールタイムアウト、`MCP_TIMEOUT`。設定されていない `MCP_TOOL_TIMEOUT` の 28 時間デフォルトはその比較に入らず、60 秒未満の値はタイマーを短縮しません。Stdio と WebSocket サーバーにはリクエストごとのタイマーがありません。
245 464
246サーバーごとの `timeout` が少なくとも 1000 の場合、以下で説明するアイドルタイムアウトのフロアとしても機能します:Claude Code はそのサーバーのツール呼び出しをアイドルのために、サーバーごとの `timeout` より早く中止することはありません。Claude Code v2.1.203 以降が必要です。465少なくとも 1000 のサーバーごとの `timeout` は、以下で説明されるアイドルタイムアウトのフロアとしても機能します。Claude Code はそのサーバーのツール呼び出しをサーバーごとの `timeout` より早くアイドルのために中止しません。Claude Code v2.1.203 以降が必要です。
247 466
248MCP サーバーへのツール呼び出しで、アイドルウィンドウ中に応答も進捗通知も送信されない場合、ウォールクロック制限を待つ代わりにエラーで中止されます。アイドルタイムアウトには Claude Code v2.1.187 以降が必要です。IDE サーバーと SDK インプロセスサーバーを除く、すべてのサーバータイプに適用されます。アイドルウィンドウは HTTP、SSE、WebSocket、および [claude.ai コネクタ](#use-mcp-servers-from-claude-ai) サーバーの場合は 5 分、stdio サーバーの場合は 30 分がデフォルトです。v2.1.203 より前は、stdio サーバーはアイドルタイムアウトの対象外でした。467応答も進捗通知も送信しない MCP サーバーへのツール呼び出しは、ウォールクロック制限を待つ代わりにエラーで中止されます。アイドルタイムアウトには Claude Code v2.1.187 以降が必要です。IDE サーバーと SDK インプロセスサーバーを除くすべてのサーバータイプに適用されます。アイドルウィンドウは HTTP、SSE、WebSocket、[claude.ai コネクタ](#use-mcp-servers-from-claude-ai) サーバーの場合は 5 分、stdio サーバーの場合は 30 分にデフォルト設定されます。v2.1.203 より前では、stdio サーバーはアイドルタイムアウトから除外されていました。
249 468
250[`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/ja/env-vars) 環境変数をミリ秒単位で設定してアイドルウィンドウを変更するか、`0` に設定してチェックを無効にしてください。469[`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/ja/env-vars) 環境変数をミリ秒単位で設定してアイドルウィンドウを変更するか、`0` に設定してチェックを無効にしてください。
251 470
471これらのタイムアウトは呼び出しがどのくらい実行できるかを制限し、常にどのくらいブロックするかではありません。2 分を超えて実行される主会話呼び出しは、最初にバックグラウンドタスクに移動します。[長いツール呼び出しの自動バックグラウンド化](#automatic-backgrounding-of-long-tool-calls) を参照してください。
472
473<h3 id="automatic-backgrounding-of-long-tool-calls">
474 長いツール呼び出しの自動バックグラウンド化
475</h3>
476
477主会話の MCP ツール呼び出しが 2 分後も実行中の場合、セッションをブロックする代わりにバックグラウンドタスクに移動します。Claude はタスク ID をすぐに受け取り、作業を続け、結果は呼び出しが解決するときにタスク通知として到着します。自動バックグラウンド化には Claude Code v2.1.212 以降が必要です。
478
479タスクは [`/tasks`](/docs/ja/commands#all-commands) に表示され、そこで停止することもでき、セッションを終了しても存続しません。呼び出しがバックグラウンドで実行されている間、呼び出しごとの制限は引き続き適用されます。サーバーごとの `timeout` または [`MCP_TOOL_TIMEOUT`](/docs/ja/env-vars) で設定されたウォールクロック制限、および [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/ja/env-vars) で設定されたアイドルタイムアウト。
480
481[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](/docs/ja/env-vars) 環境変数をミリ秒単位で設定してしきい値を変更するか、`0` に設定して自動バックグラウンド化をオフにしてください。`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` を `1` に設定すると、それもオフになり、他のすべてのバックグラウンドタスク機能も同様です。
482
483一部の呼び出しはバックグラウンドに移動しません。
484
485* [サブエージェント](/docs/ja/sub-agents) からの呼び出し。Claude Code はメイン会話呼び出しのみをバックグラウンド化します
486* IDE サーバーへの呼び出し
487* [非対話モード](/docs/ja/headless) での呼び出し。ただし `CLAUDE_AUTO_BACKGROUND_TASKS` が `1` に設定されている場合を除きます。1 回限りの実行は結果が到着する前に終了する可能性があるため
488
489開いている [エリシテーションダイアログ](#respond-to-mcp-elicitation-requests) を待つ呼び出しは、ダイアログが開いている間はバックグラウンド化されません。サーバーは遅いのではなく入力を待ってブロックされているため、Claude Code はダイアログが閉じるまで移動を延期します。
490
252<h3 id="plugin-provided-mcp-servers">491<h3 id="plugin-provided-mcp-servers">
253 プラグイン提供の MCP サーバー492 プラグイン提供の MCP サーバー
254</h3>493</h3>
255 494
256[プラグイン](/docs/ja/plugins) は MCP サーバーをバンドルでき、プラグインが有効になると自動的にツールと統合を提供します。プラグイン MCP サーバーはユーザーが設定したサーバーと同じように機能します。495[プラグイン](/docs/ja/plugins) は、プラグインを有効にするときにツールと統合を提供する MCP サーバーをバンドルできます。プラグイン MCP サーバーはユーザー設定サーバーと同じように機能します。
257 496
258**プラグイン MCP サーバーの仕組み**:497**プラグイン MCP サーバーの動作方法**:
259 498
260* プラグインはプラグインルートの `.mcp.json` または `plugin.json` 内でインラインで MCP サーバーを定義します499* プラグインはプラグインルートの `.mcp.json` または `plugin.json` にインラインで MCP サーバーを定義します
261* プラグインが有効になると、その MCP サーバーが自動的に起動します500* プラグインを有効にすると、Claude Code は自動的にその MCP サーバーを起動します
262* プラグイン MCP ツールは手動で設定された MCP ツールと一緒に表示されます501* Claude Code は手動で設定された MCP ツールと並んでプラグイン MCP ツールを提供します
263* プラグインサーバーはプラグインのインストールを通じて管理されます(`/mcp` コマンドではありません)502* プラグインサーバーを追加および削除するには、プラグインをインストールまたはアンインストールします。`/mcp` コマンドではなく。[インストールされたプラグインサーバーをオフに切り替える](#disable-a-server-without-removing-it) ことはできます。これにより、Claude Code がそれに接続するのを停止し、プラグインを削除することなく
264 503
265**プラグイン MCP 設定の例**:504**プラグイン MCP 設定の例**:
266 505
267プラグインルートの `.mcp.json` 内:506プラグインルートの `.mcp.json` で:
268 507
269```json theme={null}508```json theme={null}
270{509{
280}519}
281```520```
282 521
283または `plugin.json` 内でインライン:522または `plugin.json` にインラインで:
284 523
285```json theme={null}524```json theme={null}
286{525{
296 535
297**プラグイン MCP 機能**:536**プラグイン MCP 機能**:
298 537
299* **自動ライフサイクル**:セッション起動時に、有効なプラグインのサーバーが自動的に接続されます。セッション中にプラグインを有効または無効にする場合は、`/reload-plugins` を実行して MCP サーバーを接続または切断してください538* **自動ライフサイクル**: サーバーはこれらのポイントで接続および切断されます。
300* **パス プレースホルダー**:`${CLAUDE_PLUGIN_ROOT}` はプラグインのインストールディレクトリに解決され、`${CLAUDE_PLUGIN_DATA}` はその [永続的な状態](/docs/ja/plugins-reference#persistent-data-directory) ディレクトリに解決され、`${CLAUDE_PROJECT_DIR}` は安定したプロジェクトルートに解決されます。置換は以下に適用されます:539 * セッション起動時、Claude Code は有効なプラグインのサーバーを自動的に接続します。`/mcp` では、以前使用したリモート(HTTP または SSE)プラグインサーバーは [`cached` ステータス](#server-status-detail) を代わりに表示できます。Claude Code は Claude が最初にそのツールの 1 つを呼び出すときに接続します
301 * `stdio` サーバー:`command`、`args`、`env`540 * セッション中にプラグインを有効または無効にする場合、Claude Code はその変更が適用されるときにその MCP サーバーを接続または切断します。[プラグイン変更を再起動なしで適用](/docs/ja/discover-plugins#apply-plugin-changes-without-restarting) はいつかを説明しています。対話的なターミナルのないセッションでは、`/reload-plugins` はプラグイン MCP サーバーを接続または切断しません。これらの変更は次のセッションで有効になります
302 * `http`、`sse`、`ws` サーバー:`url`、`headers`、`headersHelper`。v2.1.195 より前は、`headersHelper` はプレースホルダーをリテラル文字列として渡していました541 * リロードするとき、Claude Code は設定が変更されていないプラグインサーバーのライブ接続を保持し、Agent SDK から [セッションの MCP サーバーリストを置き換える](/docs/ja/agent-sdk/typescript#mcpsetserversresult) ときに同じことを行います。それらに名前を付けずに
303* **ユーザー環境アクセス**:手動で設定されたサーバーと同じ環境変数へのアクセス542 * v2.1.246 以降で [`/cd`](/docs/ja/permissions#move-the-session-to-another-directory) でセッションを移動するとき、Claude Code は新しいディレクトリの設定が有効にするプラグインのサーバーを接続し、有効でなくなったプラグインのサーバーを切断するため、移動後に `/reload-plugins` を実行する必要はありません
304* **複数のトランスポートタイプ**:stdio、SSE、HTTP、WebSocket トランスポートをサポート(トランスポートサポートはサーバーによって異なる場合があります)543 * [ウェブセッション](/docs/ja/claude-code-on-the-web) では、まだ接続されていないプラグインサーバーへの MCP 呼び出し(アイドルセッションが起動した直後など)は、サーバーをオンデマンドで開始し、接続を待ちます
305 544* **パスプレースホルダー**: `${CLAUDE_PLUGIN_ROOT}` はプラグインのインストールディレクトリに解決され、`${CLAUDE_PLUGIN_DATA}` はその [永続状態](/docs/ja/plugins-reference#persistent-data-directory) ディレクトリに解決され、`${CLAUDE_PROJECT_DIR}` は安定したプロジェクトルートに解決されます。置換は以下に適用されます。
306**プラグイン MCP サーバーの表示**:545 * `stdio` サーバー: `command`、`args`、`env`
546 * `http`、`sse`、`ws` サーバー: `url`、`headers`、`headersHelper`。v2.1.195 より前では、`headersHelper` はプレースホルダーをリテラル文字列として渡していました
547* **ユーザー環境アクセス**: 手動で設定されたサーバーと同じ環境変数へのアクセス
548* **複数のトランスポートタイプ**: stdio、SSE、HTTP、WebSocket トランスポートのサポート。ただし、トランスポートサポートはサーバーによって異なる場合があります
307 549
308```bash theme={null}550プラグインサーバーは `/mcp` に表示され、プラグインから来ることを示すインジケータが付きます。
309# Claude Code 内で、プラグインのものを含むすべての MCP サーバーを表示
310/mcp
311```
312
313プラグインサーバーはプラグインから来ていることを示すインジケータ付きでリストに表示されます。
314 551
315**プラグイン MCP ツール名**:552**プラグイン MCP ツール名**:
316 553
317プラグインでバンドルされた MCP サーバーからのツールには、呼び出し可能な名前にプラグイン名とサーバーキーの両方が含まれます。完全な形式は `mcp__plugin_<plugin-name>_<server-name>__<tool-name>` です。ここで、`A-Z`、`a-z`、`0-9`、`_`、`-` の外の任意の文字は `_` に置き換えられます。`my-plugin` という名前のプラグインでバンドルされた `database-tools` サーバーの場合、`query` ツールは以下のように呼び出し可能です:554プラグインにバンドルされた MCP サーバーからのツールは、呼び出し可能な名前にプラグイン名とサーバーキーの両方を含めます。完全な形式は `mcp__plugin_<plugin-name>_<server-name>__<tool-name>` です。`A-Z`、`a-z`、`0-9`、`_`、`-` の外の任意の文字は `_` に置き換えられます。`my-plugin` という名前のプラグインにバンドルされた `database-tools` サーバーの場合、`query` ツールは以下のように呼び出し可能です。
318 555
319```556```
320mcp__plugin_my-plugin_database-tools__query557mcp__plugin_my-plugin_database-tools__query
321```558```
322 559
323[権限ルール](/docs/ja/permissions)、スキルの `allowed-tools` リスト、[サブエージェントの `tools` フィールド](/docs/ja/sub-agents#available-tools)、または [hook マッチャー](/docs/ja/hooks#match-mcp-tools) でツールを参照する場合は、この完全な名前を使用してください。`mcp__database-tools__.*` などのベアサーバーキーに対して記述された hook マッチャーは、プラグインでバンドルされたサーバーに対しては発火しません。560[権限ルール](/docs/ja/permissions)、スキルの `allowed-tools` リスト、[サブエージェントの `tools` フィールド](/docs/ja/sub-agents#available-tools)、または [フック マッチャー](/docs/ja/hooks#match-mcp-tools) でツールを参照するときに、この完全な名前を使用してください。裸のサーバーキー(`mcp__database-tools__.*` など)に対して書かれたフック マッチャーは、プラグインにバンドルされたサーバーに対して発火しません。
324
325サーバー自体は、`plugin:<plugin-name>:<server-name>`(例:`plugin:my-plugin:database-tools`)などのスコープ付き名前で登録されます。設定されたサーバー名が予想される場所(例:[`mcp_tool` hook の `server` フィールド](/docs/ja/hooks#mcp-tool-hook-fields))でその名前を使用してください。
326
327**プラグイン MCP サーバーの利点**:
328 561
329* **バンドル配布**:ツールとサーバーが一緒にパッケージ化されます562サーバー自体は `plugin:<plugin-name>:<server-name>`(`plugin:my-plugin:database-tools` など)のスコープ付き名前で登録されます。設定されたサーバー名が予想される場所([`mcp_tool` フックの `server` フィールド](/docs/ja/hooks#mcp-tool-hook-fields) など)でその名前を使用してください。
330* **自動セットアップ**:手動の MCP 設定は不要です
331* **チーム一貫性**:プラグインがインストールされると、すべてのユーザーが同じツールを取得します
332 563
333プラグインで MCP サーバーをバンドルする詳細については、[プラグインコンポーネントリファレンス](/docs/ja/plugins-reference#mcp-servers) を参照してください。564プラグインで MCP サーバーをバンドルする詳細については、[プラグインコンポーネントリファレンス](/docs/ja/plugins-reference#mcp-servers) を参照してください。
334 565
336 MCP インストールスコープ567 MCP インストールスコープ
337</h2>568</h2>
338 569
339MCP サーバーは 3 つのスコープで設定できます。選択するスコープは、サーバーがロードされるプロジェクトと、設定がチームと共有されるかどうかを制御します。管理者は、[マネージド設定](#managed-mcp-configuration)を通じてエンタープライズレベルでサーバーをデプロイすることもできます。570MCP サーバーは 3 つのスコープで設定できます。選択するスコープは、サーバーがロードされるプロジェクトと、設定がチームと共有されるかどうかを制御します。管理者は、[マネージド設定](#managed-mcp-configuration)を通じてすべてのユーザーに対してサーバーをデプロイまたは提供することもできます。
340 571
341| スコープ | ロード対象 | チームと共有 | 保存場所 |572| スコープ | ロード対象 | チームと共有 | 保存場所 |
342| ------------------------ | ----------- | ------------ | ---------------------- |573| ------------------------ | ----------- | ------------ | ---------------------- |
351ローカルスコープはデフォルトです。ローカルスコープのサーバーは、追加したプロジェクトでのみロードされ、あなたにプライベートなままです。Claude Code は `~/.claude.json` のそのプロジェクトのパスの下に保存するため、同じサーバーは他のプロジェクトに表示されません。個人開発サーバー、実験的な設定、またはバージョン管理に含めたくない認証情報を持つサーバーにはローカルスコープを使用してください。582ローカルスコープはデフォルトです。ローカルスコープのサーバーは、追加したプロジェクトでのみロードされ、あなたにプライベートなままです。Claude Code は `~/.claude.json` のそのプロジェクトのパスの下に保存するため、同じサーバーは他のプロジェクトに表示されません。個人開発サーバー、実験的な設定、またはバージョン管理に含めたくない認証情報を持つサーバーにはローカルスコープを使用してください。
352 583
353<Note>584<Note>
354 MCP サーバーの「ローカルスコープ」という用語は、一般的なローカル設定とは異なります。MCP ローカルスコープのサーバーは `~/.claude.json`(ホームディレクトリ)に保存されますが、一般的なローカル設定は `.claude/settings.local.json`(プロジェクトディレクトリ内)を使用します。設定ファイルの場所の詳細については、[設定](/docs/ja/settings#settings-files)を参照してください。585 MCP サーバーの「ローカルスコープ」という用語は、一般的なローカル設定とは異なります。MCP ローカルスコープのサーバーは `~/.claude.json`(ホームディレクトリ)に保存されますが、一般的なローカル設定は `.claude/settings.local.json`(プロジェクトディレクトリ内)を使用します。設定ファイルの場所の詳細については、[設定](/docs/ja/settings#where-settings-live)を参照してください。
355</Note>586</Note>
356 587
357```bash theme={null}588```bash theme={null}
383 プロジェクトスコープ614 プロジェクトスコープ
384</h3>615</h3>
385 616
386プロジェクトスコープのサーバーは、プロジェクトのルートディレクトリの `.mcp.json` ファイルに設定を保存することで、チーム間のコラボレーションを可能にします。このファイルはバージョン管理にチェックインするように設計されており、すべてのチームメンバーが同じ MCP ツールとサービスにアクセスできることを保証します。プロジェクトスコープのサーバーを追加すると、Claude Code は自動的にこのファイルを作成または更新して、適切な設定構造を使用します。617プロジェクトスコープのサーバーは、プロジェクトのルートディレクトリの `.mcp.json` ファイルに設定を保存することで、チーム間のコラボレーションを可能にします。プロジェクトスコープのサーバーを追加すると、Claude Code は自動的にこのファイルを作成または更新して、適切な設定構造を使用します。`.mcp.json` をバージョン管理にチェックインして、チームのすべてのメンバーが同じ MCP ツールとサービスを取得するようにしてください。
387 618
388```bash theme={null}619```bash theme={null}
389# プロジェクトスコープのサーバーを追加する620# プロジェクトスコープのサーバーを追加する
390claude mcp add --transport http paypal --scope project https://mcp.paypal.com/mcp621claude mcp add --transport http shared-server --scope project https://example.com/mcp
391```622```
392 623
393結果の `.mcp.json` ファイルは標準化された形式に従います:624結果の `.mcp.json` ファイルは標準化された形式に従います:
396{627{
397 "mcpServers": {628 "mcpServers": {
398 "shared-server": {629 "shared-server": {
399 "command": "/path/to/server",630 "type": "http",
400 "args": [],631 "url": "https://example.com/mcp"
401 "env": {}
402 }632 }
403 }633 }
404}634}
405```635```
406 636
407セキュリティ上の理由から、Claude Code は `.mcp.json` ファイルからプロジェクトスコープのサーバーを使用する前に承認を求めます。これらの承認選択をリセットする必要がある場合は、`claude mcp reset-project-choices` コマンドを使用してください。637セキュリティ上の理由から、Claude Code はインタラクティブセッションで `.mcp.json` ファイルからプロジェクトスコープのサーバーを使用する前に承認を求めます。これらの承認選択をリセットするには、`claude mcp reset-project-choices` を実行してください。
638
639`claude -p` 実行、[Agent SDK](/docs/ja/headless)セッション、および[クラウドセッション](/docs/ja/claude-code-on-the-web)では、Claude Code はそのプロンプトを表示できません。プロジェクトスコープのサーバーを確認なしでロードします。Claude Code はまた、ユーザー設定またはマネージド設定で [`skipDangerousModePermissionPrompt`](/docs/ja/settings-reference#skipdangerousmodepermissionprompt) が設定された `bypassPermissions` モードで開始したセッションではプロンプトをスキップします。とにかくサーバーを除外するには:
640
641* [`disabledMcpjsonServers`](/docs/ja/settings-reference#disabledmcpjsonservers)に追加します。これはすべての権限モードでそれをブロックします。
642* [`--setting-sources`](/docs/ja/cli-reference#cli-flags)またはSDKの `settingSources` オプションでプロジェクト設定全体を除外します。
643* [`--strict-mcp-config`](/docs/ja/cli-reference#cli-flags)でセッションを開始します。Claude Code は `--mcp-config` で渡した MCP サーバーのみを使用します。Claude Code がロードしていないプロジェクトスコープのサーバーの承認プロンプトをスキップするには、Claude Code v2.1.246 以降が必要です。v2.1.246 より前では、厳密なセッションでもそれらの承認を待機していたため、バックグラウンドセッションは起動時に待機していました。マネージド MCP ファイルの下でフラグが何をするかについては、[マネージド mcp.json での排他的制御](/docs/ja/managed-mcp#exclusive-control-with-managed-mcp-json)を参照してください。
644
645[プロジェクトサーバーの承認とワークスペーストラスト](#project-server-approvals-and-workspace-trust)は、リポジトリにコミットされた承認がワークスペーストラストとどのように相互作用するかについて説明しています。
408 646
409<h3 id="user-scope">647<h3 id="user-scope">
410 ユーザースコープ648 ユーザースコープ
421 スコープの階層と優先順位659 スコープの階層と優先順位
422</h3>660</h3>
423 661
424同じサーバーが複数の場所で定義されている場合、Claude Code はそれに 1 回接続し、最も優先度の高いソースからの定義を使用します。その定義全体が使用され、フィールドはスコープ全体でマージされません。662同じサーバーが複数の場所で定義されている場合、Claude Code はそれに 1 回接続し、最も優先度の高いソースからの定義を使用します。そのソースからのサーバーエントリ全体が使用されます。フィールドはスコープ全体でマージされません。
425 663
4261. ローカルスコープ6641. ローカルスコープ
4272. プロジェクトスコープ6652. プロジェクトスコープ
431 669
4323 つのスコープは名前で重複を照合します。プラグインとコネクタはエンドポイントで照合するため、上記のサーバーと同じ URL またはコマンドを指すものは重複として扱われます。6703 つのスコープは名前で重複を照合します。プラグインとコネクタはエンドポイントで照合するため、上記のサーバーと同じ URL またはコマンドを指すものは重複として扱われます。
433 671
672組織が [`managedMcpServers`](/docs/ja/managed-mcp#provide-servers-through-managed-settings)マネージド設定を通じて提供するサーバーは、これらすべての上にランクされるため、それらの 1 つがそれを複製する場合、Claude Code は組織の定義に接続します。Claude Code v2.1.259 以降が必要です。
673
674[Desktop アプリの Code タブ](/docs/ja/desktop#mcp-servers-from-the-claude-desktop-chat-app)でローカルセッションを開く場合、`~/.claude.json`(ユーザースコープ)のトップレベルと `.mcp.json` に同じ stdio サーバー名がある場合、Code タブは `~/.claude.json` 定義を使用します。
675
434<h3 id="environment-variable-expansion-in-mcp-json">676<h3 id="environment-variable-expansion-in-mcp-json">
435 `.mcp.json` での環境変数の展開677 `.mcp.json` での環境変数の展開
436</h3>678</h3>
467}709}
468```710```
469 711
470参照される環境変数が設定されておらず、デフォルト値がない場合、Claude Code はリテラルな `${VAR}` テキストを値に残し、そのサーバーに対して欠落変数の警告を報告します。設定はまだロードされるため、変数を設定するか、`:-default` フォールバックを追加して、サーバーが意図した値で起動するようにしてください。712参照される環境変数が設定されておらず、デフォルト値がない場合、設定はまだロードされます。Claude Code はそのサーバーに対して `claude mcp list` 出力で欠落変数の警告を報告し、展開されていない `${VAR}` テキストをそのまま使用します。変数を設定するか、`:-default` フォールバックを追加して、サーバーが意図した値で起動するようにしてください。
471 713
472<h2 id="practical-examples">714<h2 id="practical-examples">
473 実践的な例715 実践的な例
474</h2>716</h2>
475 717
476<h3 id="example-monitor-errors-with-sentry">
477 例:Sentry でエラーを監視する
478</h3>
479
480```bash theme={null}
481claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
482```
483
484Sentry アカウントで認証します:
485
486```text theme={null}
487/mcp
488```
489
490その後、本番環境の問題をデバッグします:
491
492```text theme={null}
493過去 24 時間で最も一般的なエラーは何ですか?
494```
495
496```text theme={null}
497エラー ID abc123 のスタックトレースを表示してください
498```
499
500```text theme={null}
501どのデプロイメントがこれらの新しいエラーを導入しましたか?
502```
503
504<h3 id="example-connect-to-github-for-code-reviews">718<h3 id="example-connect-to-github-for-code-reviews">
505 例:コードレビューのために GitHub に接続する719 例:コードレビューのために GitHub に接続する
506</h3>720</h3>
512 --header "Authorization: Bearer YOUR_GITHUB_PAT"726 --header "Authorization: Bearer YOUR_GITHUB_PAT"
513```727```
514 728
729`YOUR_GITHUB_PAT` を個人アクセストークンに置き換えてください。`claude mcp add` コマンドは認証情報を検証せずに設定を保存するため、ここではプレースホルダー値が受け入れられますが、サーバーは後で接続に失敗します。接続を確認するには、`/mcp` を実行し、サーバーが `connected` と表示されていることを確認してください。認証情報が不正なサーバーは `failed` と表示され、失敗の詳細には、サーバーが返した HTTP ステータス(401 など)が含まれます。
730
515その後、GitHub で作業します:731その後、GitHub で作業します:
516 732
517```text theme={null}733```text wrap theme={null}
518PR #456 をレビューして改善を提案してください734PR #456 をレビューして改善を提案してください
519```735```
520 736
521```text theme={null}737```text wrap theme={null}
522見つけたバグの新しい課題を作成してください738見つけたバグの新しい課題を作成してください
523```739```
524 740
525```text theme={null}741```text wrap theme={null}
526自分に割り当てられているすべてのオープン PR を表示してください742自分に割り当てられているすべてのオープン PR を表示してください
527```743```
528 744
530 例:PostgreSQL データベースをクエリする746 例:PostgreSQL データベースをクエリする
531</h3>747</h3>
532 748
749[DBHub](https://github.com/bytebase/dbhub)(`@bytebase/dbhub` パッケージ)は、`--dsn` で渡す接続文字列を通じて Claude をリレーショナルデータベースに接続する MCP サーバーです。Claude が実行するクエリがデータを変更できないように、接続文字列で読み取り専用データベースユーザーを使用してください:
750
533```bash theme={null}751```bash theme={null}
534claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \752claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
535 --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"753 --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"
536```754```
537 755
756サーバーが起動することを確認するには、`/mcp` を実行し、`db` が `connected` と表示されていることを確認してください。
757
538その後、データベースを自然に照会します:758その後、データベースを自然に照会します:
539 759
540```text theme={null}760```text wrap theme={null}
541今月の総収益はいくらですか?761今月の総収益はいくらですか?
542```762```
543 763
544```text theme={null}764```text wrap theme={null}
545orders テーブルのスキーマを表示してください765orders テーブルのスキーマを表示してください
546```766```
547 767
548```text theme={null}768```text wrap theme={null}
549過去 90 日間に購入していない顧客を検索してください769過去 90 日間に購入していない顧客を検索してください
550```770```
551 771
555 775
556多くのクラウドベースの MCP サーバーは認証が必要です。Claude Code は安全な接続のために OAuth 2.0 をサポートしています。776多くのクラウドベースの MCP サーバーは認証が必要です。Claude Code は安全な接続のために OAuth 2.0 をサポートしています。
557 777
558Claude Code は、サーバーが `401 Unauthorized` または `403 Forbidden` で応答するときに、リモートサーバーが認証を必要とするとマークします。どちらのステータスコードでも、サーバーは `/mcp` でフラグが立てられ、OAuth フローを完了できます。778Claude Code は、サーバーが `401 Unauthorized` または `403 Forbidden` で応答するとき、リモートサーバーが認証を必要としていることをマークします。Claude Code が表示する内容はサーバーによって異なります。
779
780* サインインしていないサーバーの場合、どちらのステータスコードでも `/mcp` でフラグが立てられるため、OAuth フローを完了できます。
781* [claude.ai コネクタ](#use-mcp-servers-from-claude-ai)の場合、claude.ai がセッショントークンを拒否することによる `401` はコネクタにフラグを立てません。コネクタを再認可してもログインを修正できないためです。Claude Code は代わりに[セッショントークン拒否状態](/docs/ja/errors#claude-ai-rejected-the-session-token)を表示します。
782* `Authorization` ヘッダーを設定したサーバーの場合、`headers` または [`headersHelper`](#use-dynamic-headers-for-custom-authentication) を通じて、接続中の `401` または `403` はサーバーにフラグを立てません。修正する認証情報は設定した認証情報だからです。Claude Code は代わりに接続が失敗したことを報告します。
783* [クラウドセッションに配信されたコネクタ](#how-connectors-reach-claude-code)の場合、Claude Code はサインインフローを実行しません。セッションのプロキシが claude.ai で付与した認可を使用してコネクタに認証するためです。そこでコネクタが再度認可が必要な場合、セッションからではなく [claude.ai/customize/connectors](https://claude.ai/customize/connectors) で再接続してください。
559 784
560既にサインインしている OAuth サーバーへのリクエストが `401 Unauthorized` を返す場合、Claude Code は保存されたトークンをリフレッシュし、再接続して、リクエストを 1 回再試行します。その再試行も失敗した場合にのみ、サーバーを `/mcp` でフラグが立てられます。v2.1.206 より前は、ネットワークエラーなどの一時的な理由でトークンリフレッシュが失敗した場合、リフレッシュトークンがまだ有効であっても、OAuth サーバーはセッションの残りの間、認証が必要とマークされていました。785既にサインインした OAuth サーバーへのリクエストが `401 Unauthorized` を返すとき、Claude Code は保存されたトークンをリフレッシュし、再接続して、リクエストを 1 回再試行します。その再試行も失敗した場合にのみ、`/mcp` でサーバーにフラグを立てます。v2.1.206 より前は、ネットワークエラーなどの一時的な理由でトークンリフレッシュが失敗した場合、リフレッシュトークンがまだ有効であっても、OAuth サーバーは残りのセッション中、認証が必要としてフラグが立てられていました。
561 786
562v2.1.195 以降、トークンの更新がサーバーが保存されたリフレッシュトークンを拒否したために失敗する場合、Claude Code は `/mcp` を指す通知をすぐに表示します。接続されたサーバーのメニューはそこで「Re-authenticate」を提供するため、次のツール呼び出しが失敗する前に再度サインインできます。787サーバーが保存されたリフレッシュトークンを拒否するとき、Claude Code は直ちに `/mcp` を指す通知を表示します。`/mcp` を開き、サーバーで **Re-authenticate** を選択して、次のツール呼び出しが失敗する前に再度サインインしてください。
563 788
564認可サーバーを指す `WWW-Authenticate` ヘッダーを返すカスタムサーバーは、他のリモートサーバーと同じ自動検出を取得します。789`WWW-Authenticate` ヘッダーを返すカスタムサーバーは、その認可サーバーを指し、他のリモートサーバーと同じ自動検出を取得します。
565 790
566v2.1.193 以降、Claude Code は 1 つ以上の設定されたサーバーが認証を必要とする場合、スタートアップ通知も表示するため、どのサーバーがサインインを必要とするかを発見するために `/mcp` を開く必要がありません。791Claude Code は、1 つ以上の設定されたサーバーが認証を必要とするときにスタートアップ通知も表示するため、`/mcp` を開いて認証が必要なサーバーを検出する必要がありません。この通知には Claude Code v2.1.193 以降が必要です。Claude Code からサインインできるサーバーのみをカウントします。v2.1.218 より前は、claude.ai で接続されていない [claude.ai コネクタ](#use-mcp-servers-from-claude-ai)もカウントされていました。これらは claude.ai 設定からのみ接続できます。
567 792
568非対話型モードでは `/mcp` パネルがないため、Claude Code は OAuth フローを実行できません。v2.1.196 以降、設定されたサーバーが `claude -p` または [ツール検索](#scale-with-mcp-tool-search) が有効になっている Agent SDK 実行中に認証を必要とする場合(これはデフォルトです)、Claude Code は Claude にサーバーのツールが認可されるまで利用できないことを伝えます。Claude はサーバーが設定されていないかのように応答するのではなく、サインインが必要なサーバーに名前を付けることができます。対話型セッションから `/mcp` または `claude mcp login <name>` でサインインを完了してください。793非対話モードでは `/mcp` パネルがないため、Claude Code は OAuth フローを実行できません。v2.1.196 以降、[ツール検索](#scale-with-mcp-tool-search)が有効な(デフォルト)`claude -p` または Agent SDK 実行中に設定されたサーバーが認証を必要とするとき、Claude Code はサーバーのツールが認可されるまで利用できないことを Claude に伝えます。Claude はサーバーが設定されていないかのように応答する代わりに、サインインが必要なサーバーに名前を付けることができます。対話セッションから `/mcp` または `claude mcp login <name>` でサインインを完了してください。
569 794
570`headers.Authorization` をサーバー用に設定し、サーバーがそのヘッダーを拒否する場合、Claude Code は OAuth にフォールバックするのではなく、接続が失敗したと報告します。トークンが MCP エンドポイント用に有効であることを確認するか、OAuth フローを使用するためにヘッダーを削除してください。795サーバーに `headers.Authorization` を設定し、サーバーがそのヘッダーを拒否する場合、Claude Code は OAuth にフォールバックする代わりに接続が失敗したことを報告します。トークンが MCP エンドポイントに対して有効であることを確認するか、ヘッダーを削除して OAuth フローを使用してください。
571 796
572<Steps>797<Steps>
573 <Step title="認証が必要なサーバーを追加する">798 <Step title="認証が必要なサーバーを追加する">
574 例:799 [MCP クイックスタート](/docs/ja/mcp-quickstart#connect-a-server-that-requires-sign-in)で既に `sentry` サーバーを追加した場合、このステップをスキップしてください。同じサーバー名で同じスコープで `claude mcp add` を再度実行すると、`MCP server sentry already exists in local config` で失敗します。それ以外の場合は、以下を実行してください。
575 800
576 ```bash theme={null}801 ```bash theme={null}
577 claude mcp add --transport http sentry https://mcp.sentry.dev/mcp802 claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
579 </Step>804 </Step>
580 805
581 <Step title="Claude Code 内で /mcp コマンドを使用する">806 <Step title="Claude Code 内で /mcp コマンドを使用する">
582 Claude Code で、コマンドを使用します:807 Claude Code で、以下のコマンドを使用します。
583 808
584 ```text theme={null}809 ```text wrap theme={null}
585 /mcp810 /mcp
586 ```811 ```
587 812
588 その後、ブラウザでログインするための手順に従ってください。813 その後、ブラウザーのステップに従ってログインしてください。
589 </Step>814 </Step>
590</Steps>815</Steps>
591 816
592<Tip>817<Tip>
593 ヒント:818 ヒント:
594 819
595 * 認証トークンは安全に保存され、自動的に更新されます820 * 認証トークンは安全に保存され、自動的にリフレッシュされます
596 * `/mcp` メニューで「Clear authentication」を使用してアクセスを取り消します821 * `/mcp` メニューの「Clear authentication」を使用してアクセスを取り消します
597 * ブラウザが自動的に開かない場合は、提供された URL をコピーして手動で開いてください822 * ブラウザーが自動的に開かない場合は、提供された URL をコピーして手動で開いてください
598 * ブラウザのリダイレクトが認証後に接続エラーで失敗する場合は、ブラウザのアドレスバーから完全なコールバック URL を Claude Code に表示される URL プロンプトに貼り付けてください823 * 認証後、ブラウザーリダイレクトが接続エラーで失敗する場合は、ブラウザーのアドレスバーから完全なコールバック URL を貼り付けて、Claude Code に表示される URL プロンプトに入力してください
599 * OAuth 認証は HTTP サーバーで機能します824 * OAuth 認証は HTTP サーバーで機能します
600</Tip>825</Tip>
601 826
603 コマンドラインから認証する828 コマンドラインから認証する
604</h3>829</h3>
605 830
606v2.1.186 以降、`claude mcp login <name>` はシェルから直接設定されたサーバーの OAuth フローを実行するため、セッション内で `/mcp` パネルを開く必要がありません。831v2.1.186 から、`claude mcp login <name>` は設定されたサーバーの OAuth フローをシェルから直接実行するため、セッション内の `/mcp` パネルを開く必要がありません。
607 832
608```bash theme={null}833```bash theme={null}
609claude mcp login sentry834claude mcp login sentry
611 836
612後で保存された認証情報をクリアするには、`claude mcp logout <name>` を実行してください。837後で保存された認証情報をクリアするには、`claude mcp logout <name>` を実行してください。
613 838
614v2.1.191 以降、このコマンドは SSH セッション中やディスプレイサーバーのない Linux など、ローカルブラウザが利用できない場合を検出し、ブラウザを開こうとするのではなく認可 URL を出力します。ローカルマシンで URL を開き、ブラウザのアドレスバーから完全なリダイレクト URL をプロンプトに貼り付けます。コマンドは貼り付けステップのためにインタラクティブなターミナルが必要なため、`ssh -t` で接続してください。ローカルブラウザが検出された場合でも URL プロンプトを強制するには、`--no-browser` を渡してください。839v2.1.191 以降、このコマンドは SSH セッション中やディスプレイサーバーのない Linux など、ローカルブラウザーが利用できない場合を検出し、ブラウザーを開こうとする代わりに認可 URL を出力します。ローカルマシンで URL を開き、ブラウザーのアドレスバーから完全なリダイレクト URL をプロンプトに貼り付けてください。このコマンドは貼り付けステップのために対話型ターミナルが必要なため、`ssh -t` で接続してください。ローカルブラウザーが検出された場合でも URL プロンプトを強制するには、`--no-browser` を渡してください。
615 840
616```bash theme={null}841```bash theme={null}
617claude mcp login sentry --no-browser842claude mcp login sentry --no-browser
621 固定 OAuth コールバックポートを使用する846 固定 OAuth コールバックポートを使用する
622</h3>847</h3>
623 848
624一部の MCP サーバーは、事前に登録された特定のリダイレクト URI が必要です。デフォルトでは、Claude Code は OAuth コールバック用にランダムに利用可能なポートを選択します。`--callback-port` を使用してポートを固定し、`http://localhost:PORT/callback` の形式の事前登録されたリダイレクト URI と一致させます。849一部の MCP サーバーは、事前に登録された特定のリダイレクト URI が必要です。デフォルトでは、Claude Code は OAuth コールバック用にランダムに利用可能なポートを選択します。`--callback-port` を使用してポートを固定し、`http://localhost:PORT/callback` 形式の事前登録されたリダイレクト URI と一致させてください。Claude Code v2.1.229 でのサインインがリダイレクト URI の不一致で失敗する場合は、[事前設定された OAuth 認証情報を使用する](#use-pre-configured-oauth-credentials)の下のバージョンノートを参照してください。
625 850
626`--callback-port` を単独で使用できます(動的クライアント登録を使用)、または `--client-id` と一緒に使用できます(事前設定された認証情報を使用)。851`--callback-port` は単独で(動的クライアント登録を使用)または `--client-id` と一緒に(事前設定された認証情報を使用)使用できます。
627 852
628```bash theme={null}853```bash theme={null}
629# 動的クライアント登録を使用した固定コールバックポート854# 動的クライアント登録を使用した固定コールバックポート
636 事前設定された OAuth 認証情報を使用する861 事前設定された OAuth 認証情報を使用する
637</h3>862</h3>
638 863
639一部の MCP サーバーは、Dynamic Client Registration を通じた自動 OAuth セットアップをサポートしていません。「Incompatible auth server: does not support dynamic client registration」のようなエラーが表示される場合、サーバーは事前設定された認証情報が必要です。Claude Code は Client ID Metadata Document(CIMD)を使用するサーバーもサポートしており、これらを自動的に検出します。自動検出に失敗した場合は、まずサーバーの開発者ポータルを通じて OAuth アプリを登録し、サーバーを追加するときに認証情報を提供してください。864一部の MCP サーバーは、動的クライアント登録による自動 OAuth セットアップをサポートしていません。「Incompatible auth server: does not support dynamic client registration」のようなエラーが表示される場合、サーバーは事前設定された認証情報が必要です。Claude Code は、動的クライアント登録の代わりにクライアント ID メタデータドキュメント(CIMD)を使用するサーバーもサポートし、これらを自動的に検出します。自動検出が失敗する場合は、サーバーの開発者ポータルを通じて OAuth アプリを登録してから、サーバーを追加するときに認証情報を提供してください。
640 865
641<Steps>866<Steps>
642 <Step title="サーバーで OAuth アプリを登録する">867 <Step title="サーバーで OAuth アプリを登録する">
643 サーバーの開発者ポータルを通じてアプリを作成し、クライアント ID とクライアントシークレットをメモしてください。868 サーバーの開発者ポータルを通じてアプリを作成し、クライアント ID とクライアントシークレットをメモしてください。
644 869
645 多くのサーバーはリダイレクト URI も必要とします。その場合は、ポートを選択し、`http://localhost:PORT/callback` の形式でリダイレクト URI を登録してください。次のステップで `--callback-port` と同じポートを使用してください。870 多くのサーバーはリダイレクト URI も必要とします。その場合は、ポートを選択し、`http://localhost:PORT/callback` 形式でリダイレクト URI を登録してください。次のステップで `--callback-port` と同じポートを使用してください。
871
872 v2.1.229 では、Claude Code は代わりに `http://127.0.0.1:PORT/callback` を送信していました。登録されたリダイレクト URI と完全に一致するサーバーは、リダイレクト URI の不一致でサインインを拒否していました。Claude Code v2.1.231 は `localhost` 形式を復元しました。v2.1.229 で復旧するには、Claude Code をアップグレードするか、一時的にサーバーの登録されたリダイレクト URI に `http://127.0.0.1:PORT/callback` 形式を追加してください。
646 </Step>873 </Step>
647 874
648 <Step title="認証情報を使用してサーバーを追加する">875 <Step title="認証情報を使用してサーバーを追加する">
649 次のいずれかの方法を選択してください。`--callback-port` に使用されるポートは、利用可能な任意のポートにすることができます。前のステップで登録したリダイレクト URI と一致する必要があります。876 以下のいずれかの方法を選択してください。`--callback-port` に使用されるポートは、利用可能な任意のポートにできます。前のステップで登録したリダイレクト URI と一致する必要があります。
650 877
651 <Tabs>878 <Tabs>
652 <Tab title="claude mcp add">879 <Tab title="claude mcp add">
653 `--client-id` を使用してアプリのクライアント ID を渡します。`--client-secret` フラグはマスクされた入力でシークレットを求めます:880 `--client-id` を使用してアプリのクライアント ID を渡します。`--client-secret` フラグはマスクされた入力でシークレットをプロンプトします。
654 881
655 ```bash theme={null}882 ```bash theme={null}
656 claude mcp add --transport http \883 claude mcp add --transport http \
660 </Tab>887 </Tab>
661 888
662 <Tab title="claude mcp add-json">889 <Tab title="claude mcp add-json">
663 JSON 設定に `oauth` オブジェクトを含め、`--client-secret` を別のフラグとして渡します:890 JSON 設定に `oauth` オブジェクトを含め、`--client-secret` を別のフラグとして渡します。
664 891
665 ```bash theme={null}892 ```bash theme={null}
666 claude mcp add-json my-server \893 claude mcp add-json my-server \
670 </Tab>897 </Tab>
671 898
672 <Tab title="claude mcp add-json(コールバックポートのみ)">899 <Tab title="claude mcp add-json(コールバックポートのみ)">
673 動的クライアント登録を使用しながらポートを固定するには、クライアント ID なしで `--callback-port` を使用します:900 動的クライアント登録を使用しながらポートを固定するには、クライアント ID なしで `--callback-port` を使用します。
674 901
675 ```bash theme={null}902 ```bash theme={null}
676 claude mcp add-json my-server \903 claude mcp add-json my-server \
678 ```905 ```
679 </Tab>906 </Tab>
680 907
681 <Tab title="CI / env var">908 <Tab title="CI / 環境変数">
682 環境変数を通じてシークレットを設定して、対話的なプロンプトをスキップします:909 環境変数を通じてシークレットを設定して、対話型プロンプトをスキップします。
683 910
684 ```bash theme={null}911 ```bash theme={null}
685 MCP_CLIENT_SECRET=your-secret claude mcp add --transport http \912 MCP_CLIENT_SECRET=your-secret claude mcp add --transport http \
691 </Step>918 </Step>
692 919
693 <Step title="Claude Code で認証する">920 <Step title="Claude Code で認証する">
694 Claude Code で `/mcp` を実行し、ブラウザのログインフローに従ってください。921 Claude Code で `/mcp` を実行し、ブラウザーログインフローに従ってください。
695 </Step>922 </Step>
696</Steps>923</Steps>
697 924
698<Tip>925<Tip>
699 ヒント:926 ヒント:
700 927
701 * クライアントシークレットはシステムキーチェーン(macOS)または認証情報ファイルに安全に保存され、設定には保存されません928 * クライアントシークレットは、設定ではなく、システムキーチェーン(macOS)または認証情報ファイルに安全に保存されます
702 * サーバーがシークレットなしのパブリック OAuth クライアントを使用する場合は、`--client-secret` なしで `--client-id` のみを使用してください929 * クライアントシークレットはサーバーを追加するときにのみ設定できます。`claude mcp login` または `/mcp` から認証するとき、Claude Code は保存されたシークレットを使用し、プロンプトを表示したり `MCP_CLIENT_SECRET` を読み込んだりしません
703 * `--callback-port` は `--client-id` の有無にかかわらず使用できます930 * 後でシークレットを追加または変更するには、`claude mcp remove <name>` でサーバーを削除してから、`--client-secret` と同じ `--scope` で再度追加してください
704 * これらのフラグは HTTP および SSE トランスポートにのみ適用されます。stdio サーバーには影響しません931 * サーバーがシークレットのないパブリック OAuth クライアントを使用する場合は、`--client-secret` なしで `--client-id` のみを使用してください
705 * `claude mcp get <name>` を使用して、OAuth 認証情報がサーバーに設定されていることを確認してください932 * これらのフラグは HTTP および SSE トランスポートにのみ適用されます。stdio サーバーには効果がありません
933 * `claude mcp get <name>` を使用して、OAuth 認証情報がサーバーに対して設定されていることを確認してください
706</Tip>934</Tip>
707 935
708<h3 id="override-oauth-metadata-discovery">936<h3 id="override-oauth-metadata-discovery">
709 OAuth メタデータ検出をオーバーライドする937 OAuth メタデータ検出をオーバーライドする
710</h3>938</h3>
711 939
712Claude Code を特定の OAuth 認可サーバーメタデータ URL に指定して、デフォルトの検出チェーンをバイパスします。MCP サーバーの標準エンドポイントがエラーになる場合、または内部プロキシを通じて検出をルーティングしたい場合に設定します。デフォルトでは、Claude Code は最初に RFC 9728 保護リソースメタデータを `/.well-known/oauth-protected-resource` でチェックし、次に RFC 8414 認可サーバーメタデータを `/.well-known/oauth-authorization-server` でフォールバックします。940特定の OAuth 認可サーバーメタデータ URL を指して、デフォルト検出チェーンをバイパスしてください。MCP サーバーの標準エンドポイントがエラーになるとき、または内部プロキシを通じて検出をルーティングしたいときに `authServerMetadataUrl` を設定してください。デフォルトでは、Claude Code は最初に `/.well-known/oauth-protected-resource` で RFC 9728 保護リソースメタデータをチェックし、次に `/.well-known/oauth-authorization-server` で RFC 8414 認可サーバーメタデータにフォールバックします。
713 941
714`.mcp.json` のサーバー設定の `oauth` オブジェクトに `authServerMetadataUrl` を設定します:942`.mcp.json` のサーバー設定の `oauth` オブジェクトで `authServerMetadataUrl` を設定してください。
715 943
716```json theme={null}944```json theme={null}
717{945{
733 OAuth スコープを制限する961 OAuth スコープを制限する
734</h3>962</h3>
735 963
736`oauth.scopes` を設定して、認可フロー中に Claude Code がリクエストするスコープをピン留めします。これは、アップストリーム認可サーバーがより多くのスコープをアドバタイズする場合に、MCP サーバーをセキュリティチームが承認したサブセットに制限するサポートされた方法です。値は RFC 6749 §3.3 の `scope` パラメータ形式と一致する単一のスペース区切り文字列です。964`oauth.scopes` を設定して、認可フロー中に Claude Code がリクエストするスコープをピン留めしてください。これは、アップストリーム認可サーバーがより多くのスコープをアドバタイズするときに、MCP サーバーをセキュリティチームによって承認されたサブセットに制限するサポートされた方法です。値は RFC 6749 §3.3 の `scope` パラメーター形式と一致する単一のスペース区切り文字列です。
737 965
738```json theme={null}966```json theme={null}
739{967{
749}977}
750```978```
751 979
752`oauth.scopes` は `authServerMetadataUrl` と `/.well-known` でサーバーが検出するスコープの両方に優先します。MCP サーバーがリクエストするスコープセットを決定するようにするには、設定を解除したままにしてください。980`oauth.scopes` は `authServerMetadataUrl` とサーバーが `/.well-known` で検出するスコープの両方より優先されます。MCP サーバーがリクエストされたスコープセットを決定できるようにするには、設定を解除のままにしてください。
753 981
754v2.1.196 以降、`oauth.scopes` が設定されていない場合、Claude Code はサーバーの `WWW-Authenticate` ヘッダーまたはその保護リソースメタデータによって提供されるスコープをリクエストし、どちらも提供しない場合は `scope` パラメータを送信しません。自動的に検出された認可サーバーメタデータから完全な `scopes_supported` カタログをリクエストしなくなりました。そのカタログをリクエストすると、管理者のみまたはテンプレートスコープをアドバタイズするアイデンティティプロバイダーが `invalid_scope` エラーで認可リクエストを拒否しました。設定された `authServerMetadataUrl` からフェッチされたメタデータは、その `scopes_supported` をリクエストされたスコープとして提供します。982v2.1.196 以降、`oauth.scopes` が設定されていない場合、Claude Code はサーバーの `WWW-Authenticate` ヘッダーまたは保護されたリソースメタデータによって提供されるスコープをリクエストし、どちらも提供しない場合は `scope` パラメーターを送信しません。自動的に検出された認可サーバーメタデータから完全な `scopes_supported` カタログをリクエストしなくなりました。そのカタログをリクエストすると、管理者のみまたはテンプレートスコープをアドバタイズするアイデンティティプロバイダーが `invalid_scope` エラーで認可リクエストを拒否していました。設定された `authServerMetadataUrl` から取得されたメタデータは、その `scopes_supported` をリクエストされたスコープとして提供します。
755 983
756認可サーバーが `scopes_supported` で `offline_access` をアドバタイズする場合、Claude Code はそれをピン留めされたスコープに追加して、新しいブラウザサインインなしでアクセストークンを更新できるようにします。984認可サーバーが `scopes_supported` で `offline_access` をアドバタイズする場合、Claude Code はそれをピン留めされたスコープに追加して、新しいブラウザーサインインなしでアクセストークンをリフレッシュできるようにします。
757 985
758サーバーが後で `insufficient_scope` の 403 を返す場合、Claude Code は同じピン留めされたスコープで再認証します。必要なツールが pin の外側のスコープを必要とする場合は、`oauth.scopes` を拡張してください。986サーバーが後でツール呼び出しに対して 403 `insufficient_scope` を返す場合、Claude Code は同じピン留めされたスコープで再認証します。ピン留めされたセット外のスコープが必要なツールが必要な場合は、`oauth.scopes` を拡張してください。
759 987
760<h3 id="use-dynamic-headers-for-custom-authentication">988<h3 id="use-dynamic-headers-for-custom-authentication">
761 カスタム認証用の動的ヘッダーを使用する989 カスタム認証に動的ヘッダーを使用する
762</h3>990</h3>
763 991
764MCP サーバーが OAuth 以外の認証スキーム(Kerberos、短期トークン、内部 SSO など)を使用する場合、`headersHelper` を使用して接続時にリクエストヘッダーを生成します。Claude Code はコマンドを実行し、その出力を接続ヘッダーにマージします。992MCP サーバーが Kerberos、短命トークン、または内部 SSO などの OAuth 以外の認証スキームを使用する場合は、`headersHelper` を使用して接続時にリクエストヘッダーを生成してください。Claude Code はコマンドを実行し、その出力を接続ヘッダーにマージします。
765 993
766```json theme={null}994```json theme={null}
767{995{
775}1003}
776```1004```
777 1005
778コマンドはインラインにすることもできます:1006コマンドはインラインにすることもできます。
779 1007
780```json theme={null}1008```json theme={null}
781{1009{
792**要件:**1020**要件:**
793 1021
794* コマンドは文字列キーと値のペアの JSON オブジェクトを stdout に書き込む必要があります1022* コマンドは文字列キーと値のペアの JSON オブジェクトを stdout に書き込む必要があります
795* コマンドは 10 秒のタイムアウト付きのシェルで実行されます。セッションの現在の作業ディレクトリから実行します。スクリプトには絶対パスまたは `PATH` 上のコマンドを使用してください1023* Claude Code はコマンドをシェルで実行し、10 秒後にそれを放棄します
1024* Claude Code は[サーバーを設定した場所](#where-the-helper-runs)によってコマンドの作業ディレクトリを選択するため、スクリプトを絶対パスとして指定するか、`PATH` に配置してください
796* 動的ヘッダーは同じ名前の静的 `headers` をオーバーライドします1025* 動的ヘッダーは同じ名前の静的 `headers` をオーバーライドします
797 1026
798ヘルパーは各接続時に実行されます(セッション開始時と再接続時)。キャッシングはないため、スクリプトはトークンの再利用を担当します。1027Claude Code は各接続時にヘルパーを新たに実行します。セッション開始時と再接続時に、[プロジェクトおよびローカルスコープサーバーの信頼ルール](#trust-a-folder-before-its-headershelper-runs)がそれを実行できるようにします。結果をキャッシュしないため、スクリプトはトークンの再利用を担当します。
1028
1029ツール呼び出しが `401 Unauthorized` または `403 Forbidden` を返す場合、Claude Code は自動的に同じルールの下でヘルパーを再実行し、新しいヘッダーで再接続し、呼び出しを 1 回再試行します。その再試行も失敗した場合にのみ、Claude Code は `/mcp` でサーバーを認証が必要としてマークします。
1030
1031ヘルパーの出力に `Authorization` ヘッダーが含まれている場合、Claude Code はその認証情報をサーバーの認証として使用し、サーバーの OAuth にフォールバックしません。
799 1032
800v2.1.193 以降、ツール呼び出しが `401 Unauthorized` または `403 Forbidden` を返す場合、Claude Code は自動的にヘルパーを再実行し、新しいヘッダーで再接続し、呼び出しを 1 回再試行します。Claude Code は、その再試行も失敗した場合にのみ、サーバーが `/mcp` で認証を必要とするとマークします。1033サーバーが接続中にヘルパーの認証情報を拒否する場合、Claude Code はサーバーを認証が必要としてマークする代わりに、接続が失敗したことを報告します。ヘルパーが返す認証情報を修正してから、`/mcp` から再接続してヘルパーを再実行してください。
801 1034
802Claude Code は、ヘルパーを実行するときにこれらの環境変数を設定します:1035Claude Code はヘルパーを実行するときに、これらの環境変数を設定します。
803 1036
804| 変数 | 値 |1037| 変数 | 値 |
805| :---------------------------- | :------------------------------------------------------------------------------- |1038| :---------------------------- | :------------------------------------------------------------------------------ |
806| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP サーバーの名前 |1039| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP サーバーの名前 |
807| `CLAUDE_CODE_MCP_SERVER_URL` | MCP サーバーの URL |1040| `CLAUDE_CODE_MCP_SERVER_URL` | MCP サーバーの URL |
808| `CLAUDE_PLUGIN_ROOT` | プラグインのルートディレクトリ。[プラグイン](/docs/ja/plugins-reference#mcp-servers) がサーバーを提供する場合にのみ設定されます |1041| `CLAUDE_PLUGIN_ROOT` | プラグインのルートディレクトリ。[プラグイン](/docs/ja/plugins-reference#mcp-servers)がサーバーを提供する場合にのみ設定されます |
809 1042
810これらを使用して、複数の MCP サーバーに対応する単一のヘルパースクリプトを作成できます。1043これらを使用して、複数の MCP サーバーに対応する単一のヘルパースクリプトを作成してください。
811 1044
812プラグイン提供のサーバーの場合、ヘルパーはそのワーキングディレクトリをプラグインルートに設定して実行されるため、相対 `headersHelper` パスはセッションのワーキングディレクトリに対してではなくプラグインディレクトリ内で解決されます。Claude Code v2.1.195 以降が必要です。1045プラグイン提供の `headersHelper` はプラグインの [`${user_config.*}`](/docs/ja/plugins-reference#user-configuration) 値を参照できません。コマンドはシェルを通じて実行されるためです。Claude Code はサーバーを設定ミスとして [エラー](/docs/ja/errors#plugin-command-references-user-config)で報告し、値を置換しません。代わりに、シェル解析されない `headers` フィールドに `${user_config.KEY}` を配置するか、ヘルパースクリプトに設定ファイルから値を読み込ませてください。v2.1.207 より前は、`headersHelper` は `${user_config.*}` 値を置換していました。
813 1046
814プラグイン提供の `headersHelper` はプラグインの [`${user_config.*}`](/docs/ja/plugins-reference#user-configuration) 値を参照できません。コマンドはシェルを通じて実行されるためです。Claude Code はサーバーを [エラー](/docs/ja/errors#plugin-command-references-user-config) で設定が正しくないと報告し、値を置換しません。`${user_config.KEY}` をサーバーの `headers` フィールドに配置してください。これはシェル解析されません。または、ヘルパースクリプトが独自の環境またはコンフィグファイルから値を読み取るようにしてください。v2.1.207 より前は、`headersHelper` は `${user_config.*}` 値を置換していました。1047<h4 id="where-the-helper-runs">
1048 ヘルパーが実行される場所
1049</h4>
815 1050
816<Note>1051Claude Code は、サーバーを宣言する設定から `headersHelper` コマンドの作業ディレクトリを選択します。Claude が Bash で実行する `cd` はそれを移動しません。[`/cd`](/docs/ja/permissions#move-the-session-to-another-directory)はセッションのプライマリ作業ディレクトリから実行されるサーバーのみを移動します。以下の各行は、`headersHelper` コマンドの相対パスが解決される対象のディレクトリを示します。
817 `headersHelper` は任意のシェルコマンドを実行します。プロジェクトまたはローカルスコープで定義されている場合、ワークスペース信頼ダイアログを受け入れた後にのみ実行されます。1052
818</Note>1053| サーバーを設定した場所 | 作業ディレクトリ |
1054| :---------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------ |
1055| [プラグイン](/docs/ja/plugins-reference#mcp-servers) | プラグインのルートディレクトリ。Claude Code v2.1.195 以降が必要です |
1056| プロジェクト `.mcp.json` または [ローカルスコープ](#local-scope)サーバー | サーバーが宣言されているプロジェクトディレクトリ |
1057| プロジェクト内のエージェントファイル、SDK の `mcpServers` オプションまたは `setMcpServers()` メソッドからのサーバー、または [`--mcp-config`](/docs/ja/cli-reference) | セッションの[プライマリ作業ディレクトリ](/docs/ja/permissions#working-directories) |
1058| [ユーザースコープ](#user-scope)、[管理 MCP](/docs/ja/managed-mcp)、[claude.ai コネクタ](#use-mcp-servers-from-claude-ai)、またはプロジェクト外のエージェントファイル(`--add-dir` ディレクトリからのものを含む) | 設定ディレクトリ `~/.claude`([`CLAUDE_CONFIG_DIR`](/docs/ja/env-vars)を設定していない場合) |
1059
1060v2.1.238 より前は、Claude Code はユーザースコープ、管理、および claude.ai コネクタサーバーのヘルパー、およびプロジェクト外のエージェントファイルのヘルパーも、それを開始したディレクトリから実行していました。
1061
1062<h4 id="which-variables-a-helper-can-read">
1063 ヘルパーが読み取ることができる変数
1064</h4>
1065
1066リポジトリまたはプラグインが提供する `headersHelper` は、書いていないコマンドなため、Claude Code はそれを環境から認証情報変数なしで実行します(`ANTHROPIC_API_KEY` など)。サーバーを設定した場所によって、これが適用されるかどうかが決まります。
1067
1068* **削除される**:プロジェクト `.mcp.json` またはプラグイン内のサーバー、およびプロジェクトからのエージェントファイルまたは `--add-dir` ディレクトリからのインラインサーバー
1069* **削除されない**:[ユーザー](#user-scope)または[ローカルスコープ](#local-scope)、[管理 MCP](/docs/ja/managed-mcp)、[claude.ai コネクタ](#use-mcp-servers-from-claude-ai)、または SDK または [`--mcp-config`](/docs/ja/cli-reference) から提供されるサーバー、および `~/.claude/agents/` からのインラインサーバー、管理設定から、または `--agents` で渡されるもの
1070
1071Git の `GIT_CONFIG_KEY_<n>` 変数を除き、Claude Code は環境から `TOKEN`、`SECRET`、`PASSWORD`、`KEY`、または `AUTH` を含む名前のような認証情報のように見える名前を持つすべての変数を削除します。したがって、`ANTHROPIC_API_KEY` と `MY_REGISTRY_TOKEN` の両方が削除されます。Claude Code は、`ANTHROPIC_CUSTOM_HEADERS` などの名前がそのパターンに従わない固定リストの認証情報変数も削除します。
1072
1073これがヘルパーに適用される場合は、スクリプトにファイルまたは認証情報ストアから認証情報を読み込ませてください。サーバーの `url` が[これらの変数のいずれかを展開する](#environment-variable-expansion-in-mcp-json)場合、ヘルパーが受け取る `CLAUDE_CODE_MCP_SERVER_URL` 値にはその部分が `REDACTED` に置き換えられています。
1074
1075<h4 id="trust-a-folder-before-its-headershelper-runs">
1076 headersHelper が実行される前にフォルダーを信頼する
1077</h4>
1078
1079Claude Code は `headersHelper` を任意のシェルコマンドとして実行します。プロジェクト `.mcp.json` 内のサーバーまたは[ローカルスコープ](#local-scope)の場合、サーバーが宣言されているプロジェクトディレクトリの[信頼ダイアログ](/docs/ja/permissions#project-allow-rules-and-workspace-trust)を受け入れた後にのみ、ヘルパーを実行します。v2.1.238 より前は、`claude -p` または SDK セッションはこれらのヘルパーを信頼をチェックせずに実行していました。対話セッションは親フォルダーを信頼した後に 1 回実行していました。
1080
1081* **カウントされない信頼**:親フォルダーの信頼、および `claude -p` または SDK セッションが[設定ファイルのフック](/docs/ja/permissions#what-runs-before-you-trust-a-folder)に対して取得する自動信頼
1082* **フォルダーを信頼するまで**:Claude Code は静的 `headers` のみでサーバーを接続します。`claude -p` または SDK セッションでは、1 つの [`headersHelper not run`](/docs/ja/errors#headershelper-not-run) 行を stderr に出力し、信頼を付与する方法を示します。
1083* **ダイアログなしで信頼する**:`~/.claude.json` で `projects["<path>"].hasTrustDialogAccepted` を `true` に設定してください。`<path>` は、[プロジェクト許可ルールとワークスペース信頼](/docs/ja/permissions#project-allow-rules-and-workspace-trust)が Claude Code がキーを設定するフォルダーです。
1084
1085Claude Code は[エージェントファイル](/docs/ja/sub-agents#scope-mcp-servers-to-a-subagent)で宣言されたサーバーに同じルールを適用し、そのエージェントファイルがどこから来たかをチェックします。プロジェクト内のファイルの場合は `.claude/agents/` ディレクトリから、または `--add-dir` ディレクトリから。[そのプロジェクトまたはディレクトリ自体を信頼する](/docs/ja/permissions#what-runs-before-you-trust-a-folder)まで、Claude Code はサーバーをロードしません。したがって、そのヘルパーも実行されません。
819 1086
820<h2 id="add-mcp-servers-from-json-configuration">1087<h2 id="add-mcp-servers-from-json-configuration">
821 JSON 設定から MCP サーバーを追加する1088 JSON 設定から MCP サーバーを追加する
893</Tip>1160</Tip>
894 1161
895<h2 id="use-mcp-servers-from-claude-ai">1162<h2 id="use-mcp-servers-from-claude-ai">
896 Claude.ai から MCP サーバーを使用する1163 claude.ai から MCP サーバーを使用する
897</h2>1164</h2>
898 1165
899[Claude.ai](https://claude.ai) アカウントで Claude Code にログインしている場合、Claude.ai で追加した MCP サーバーは、[connectors](https://claude.com/docs/connectors) として知られており、Claude Code で自動的に利用可能です:1166[claude.ai](https://claude.ai) アカウントで Claude Code にログインしている場合、claude.ai に追加した MCP サーバー([connectors](https://claude.com/docs/connectors) として知られています)は Claude Code で自動的に利用可能になります。
900 1167
901<Steps>1168<Steps>
902 <Step title="Claude.ai で MCP サーバーを設定する">1169 <Step title="claude.ai で MCP サーバーを設定する">
903 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) でサーバーを追加します。Team および Enterprise プランでは、管理者のみがサーバーを追加できます。1170 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) でサーバーを追加します。Team および Enterprise プランでは、管理者のみがサーバーを追加できます。
904 </Step>1171 </Step>
905 1172
906 <Step title="MCP サーバーを認証する">1173 <Step title="MCP サーバーを認証する">
907 Claude.ai で必要な認証ステップを完了します。1174 claude.ai で必要な認証ステップを完了します。
908 </Step>1175 </Step>
909 1176
910 <Step title="Claude Code でサーバーを表示および管理する">1177 <Step title="Claude Code でサーバーを表示および管理する">
911 Claude Code で、以下のコマンドを使用します:1178 Claude Code で、次のコマンドを使用します。
912 1179
913 ```text theme={null}1180 ```text wrap theme={null}
914 /mcp1181 /mcp
915 ```1182 ```
916 1183
917 Claude.ai のサーバーはリストに表示され、Claude.ai から来ていることを示すインジケータが付きます。1184 claude.ai からのサーバーはリストに表示され、claude.ai から来たことを示すインジケーターが付きます。
918 </Step>1185 </Step>
919</Steps>1186</Steps>
920 1187
921v2.1.161 以降、以前にサインインしたことのないコネクタは、claude.ai セクションの最後にある `Show unused connectors` 行の背後に折りたたまれているため、組織がプロビジョニングしたリストがパネルを埋めることはありません。その行を選択して展開します。以前にサインインしたコネクタは、現在再認証が必要な場合でも表示されたままです。1188Claude Code は、組織が claude.ai で認証を管理している場合、`/mcp` および [`/plugin`](/docs/ja/plugins) マネージャーで connector を `managed` としてマークします。Managed ステータスは、Claude Code が connector に接続する方法や、組織の [tool controls](#organization-controls-on-connector-tools) を適用する方法を変更しません。
922 1189
923Claude.ai コネクタは、アクティブな [認証方法](/docs/ja/authentication#authentication-precedence) が Claude.ai サブスクリプションである場合にのみ取得されます。`ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、`apiKeyHelper`、または Amazon Bedrock や Google Cloud の Agent Platform などのサードパーティプロバイダーがアクティブな場合は読み込まれません。以前に `/login` を実行した場合でも同様です。`/mcp` で追加したコネクタがリストされない場合は、`/status` を実行してアクティブな認証方法を確認し、その環境変数を設定解除するか `apiKeyHelper` 設定を削除してから、`/login` を実行して Claude.ai アカウントを選択します。1190まだサインインしたことのない Connector は、claude.ai セクションの最後にある `Show unused connectors` 行の背後に折りたたまれているため、組織がプロビジョニングしたリストがパネルを満たしません。その行を選択して展開します。以前にサインインした Connector は、現在再認証が必要な場合でも表示されたままです。
924 1191
925Claude Code で追加したサーバーは、同じ URL を指す claude.ai コネクタより [優先](#scope-hierarchy-and-precedence) されます。この場合、`/mcp` はコネクタを非表示としてリストし、代わりにコネクタを使用する場合は重複を削除する方法を表示します。1192claude.ai からの Connector は、アクティブな [authentication method](/docs/ja/authentication#authentication-precedence) が claude.ai サブスクリプションログインである場合にのみ取得されます。以前に `/login` を実行した場合でも、次の場合は読み込まれません。
926 1193
927Microsoft 365、Gmail、Google Calendar などの一部の Anthropic ホスト型コネクタは、アップストリーム ID プロバイダーが claude.ai が登録したリダイレクト URL のみを受け入れるため、Claude Code からのローカル OAuth をサポートしていません。v2.1.162 以降、これらのホストのいずれかを `/mcp` で認証すると、代わりに claude.ai の Settings → Connectors で接続するよう指示するメッセージが表示されます。そこで接続されると、コネクタは Claude Code に自動的に表示されます。1194* `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` がアクティブ
1195* Amazon Bedrock や Google Cloud の Agent Platform などのサードパーティプロバイダーがアクティブ
1196* `ANTHROPIC_PROFILE`、フェデレーション変数、またはアクティブな [Anthropic profile](/docs/ja/authentication#anthropic-profiles-and-federation-credentials) が認証情報を提供
1197* `CLAUDE_CODE_OAUTH_TOKEN` が [`claude setup-token`](/docs/ja/authentication#generate-a-long-lived-token) からのトークンを保持している(モデルリクエストのみを実行できます)
928 1198
929<h3 id="organization-controls-on-connector-tools">1199`/mcp` が追加した connector をリストしない場合は、`/status` を実行してどの authentication method がアクティブであるかを確認します。その環境変数を設定解除し、`apiKeyHelper` 設定を削除するか、[profile をオフに切り替え](/docs/ja/authentication#anthropic-profiles-and-federation-credentials)、`/login` を実行して claude.ai アカウントを選択します。
930 組織のコネクタツールに対する制御1200
1201一時的なネットワーク問題により、セッション開始時に connector リストが読み込まれない場合、Claude Code はバックグラウンドで最大 3 回再試行し、再試行が成功すると connector が表示されます。まだ表示されていない場合は、Claude Code を再起動してリストを再度取得します。
1202
1203`/mcp` が connector を `connected · session token rejected` として表示する場合、またはその詳細ビューが [`claude.ai rejected the session token`](/docs/ja/errors#claude-ai-rejected-the-session-token) を表示する場合、claude.ai は Claude Code ログインからのトークンを拒否しました。通常、ログインの有効期限が切れて更新できなかったためです。connector を再度認証しても、connector 自体の認証が拒否されたわけではないため、この状態はクリアされません。クリアするには、以下を実行します。
1204
12051. `/login` を実行して再度サインインします。
12062. `/mcp` から connector を再度接続します。
1207
1208v2.1.222 より前では、Claude Code は connector を認証が必要として マークしていました。これを認証しても解決しませんでした。
1209
1210Claude Code で追加したサーバーは、同じ URL を指す claude.ai connector よりも [precedence](#scope-hierarchy-and-precedence) を持ちます。これが発生すると、`/mcp` は connector を hidden としてリストし、代わりに connector を使用する場合は重複を削除する方法を表示します。
1211
1212Microsoft 365、Gmail、Google Calendar などの一部の Anthropic ホスト connector は、アップストリーム ID プロバイダーが claude.ai が登録したリダイレクト URL のみを受け入れるため、Claude Code からのローカル OAuth をサポートしていません。`claude mcp add` または `.mcp.json` で追加したサーバーがこれらのホストの 1 つを指し、`/mcp` から、または `claude mcp login` でサインインすると、Claude Code は [`is Anthropic-hosted and doesn't support local OAuth`](/docs/ja/errors#anthropic-hosted-and-doesnt-support-local-oauth) を表示し、代わりに [claude.ai/customize/connectors](https://claude.ai/customize/connectors) でサービスを接続するよう指示します。
1213
1214`claude mcp remove <name>` でエントリを削除し、claude.ai でサービスを接続した後、connector は Claude Code に自動的に表示されます。
1215
1216<h3 id="how-connectors-reach-claude-code">
1217 Connector が Claude Code に到達する方法
931</h3>1218</h3>
932 1219
933組織は [claude.ai connectors](https://claude.com/docs/connectors) に対してツール単位の制御を設定できます。Claude Code はスタートアップ時にこれらの設定を読み取り、ローカルで強制します。`/mcp` を実行して、各ツールに適用される設定を確認します。1220claude.ai connector を管理する設定は、セッションが実行される場所によって異なります。セッションの種類によっては、claude.ai 自体から connector を取得するセッションのみがあるためです。以下の各行は、1 種類のセッションで connector がどのように到達するか、およびそこで何が connector を制御するかを示しています。デスクトップアプリの [WSL sessions](/docs/ja/desktop-wsl#what-works-in-a-wsl-session) には、connector がまだ利用できないため、行がありません。
1221
1222| セッションが実行される場所 | Connector がどのように到達するか | 何が connector を管理するか |
1223| :------------------------------------------------------------------------------------------------------------------- | :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |
1224| Terminal、[VS Code](/docs/ja/vs-code)、[JetBrains](/docs/ja/jetbrains)、および [Agent SDK](/docs/ja/agent-sdk/claude-code-features) セッション | Claude Code が claude.ai から取得 | このセクションの設定および [managed MCP configuration](/docs/ja/managed-mcp) |
1225| [Cloud sessions](/docs/ja/claude-code-on-the-web) | リモートホストが渡す | claude.ai 組織設定、および [allowlist と denylist](/docs/ja/managed-mcp#policy-based-control-with-allowlists-and-denylists) 設定がセッションに到達し、セッションを実行するホスト上の `managed-mcp.json` |
1226| [desktop app](/docs/ja/desktop) のローカルおよび SSH セッション | デスクトップアプリが in-process で配信 | 組織の [connector tool controls](#organization-controls-on-connector-tools) の `blocked` エントリ |
934 1227
935* **ツールが `ask` に設定されている場合**:Claude Code は `Your organization requires approval for this tool` という理由で毎回呼び出しのたびにプロンプトを表示します。プロンプトは `acceptEdits`、`auto`、`bypassPermissions` [権限モード](/docs/ja/permissions#permission-modes) でも表示され、選択を記憶するオプションは提供されません。ツールに一致する [Allow ルール](/docs/ja/permissions) もプロンプトをスキップしません。プロンプトを表示しない `dontAsk` モードでは、Claude Code は代わりに呼び出しを拒否します。1228[`disableClaudeAiConnectors`](#disable-claude-ai-connectors)、`ENABLE_CLAUDEAI_MCP_SERVERS`、および [`allowAllClaudeAiMcps`](/docs/ja/settings-reference#allowallclaudeaimcps) は最初の行のみに作用します。Claude Code が自体で取得する connector です。他の 2 つの行は次の点で異なります。
936* **ツールが `blocked` に設定されている場合**:Claude Code は Claude がそれを見る前にツールをフィルタリングするため、ツールリストに表示されません。
937 1229
938これらの制御を強制するには Claude Code v2.1.129 以降が必要です。以前のバージョンは設定を無視し、標準的な権限フローを適用します。1230* **Cloud sessions**: セッションに到達する `allowedMcpServers` および `deniedMcpServers` エントリ(例えば [server-managed settings](/docs/ja/server-managed-settings) を通じて)は、配信された connector もフィルタリングします。セッションのプロキシは各 connector の URL を書き直すため、connector 自体の URL 用に書かれた `serverUrl` パターンはそれと一致しません。自己ホスト環境で URL allowlist と共に配信された connector を許可するには、[Connector traffic leaves your network](/docs/ja/self-hosted-environments-deploy#connector-traffic-leaves-your-network) の下にリストされている `serverUrl` エントリを追加します。セッションを実行するホスト(例えば [self-hosted runner host](/docs/ja/self-hosted-environments-configuration#mcp-servers))に `managed-mcp.json` が存在する場合、Claude Code は配信された connector をドロップします。`allowAllClaudeAiMcps` を設定するかどうかに関わらず。
1231* **Desktop app local and SSH sessions**: デスクトップアプリは connector を in-process `type: "sdk"` サーバーとして登録し、MCP 設定または `managed-mcp.json` は到達しません。ユーザーは [claude.ai/customize/connectors](https://claude.ai/customize/connectors) で connector を切断することで、自分のセッションから connector を除外します。組織は connector の [tools](#organization-controls-on-connector-tools) をブロックするか、[Claude Code in the desktop app](/docs/ja/desktop#admin-console-controls) を完全にオフにします。
1232
1233<h3 id="organization-controls-on-connector-tools">
1234 Connector tools の組織コントロール
1235</h3>
1236
1237組織は [claude.ai connectors](https://claude.com/docs/connectors) に tool ごとのコントロールを設定できます。Claude Code はこれらの設定をスタートアップ時に読み取り、ローカルで実行します。ただし、デスクトップアプリの [local and SSH sessions](#how-connectors-reach-claude-code) では除きます。そこでは、デスクトップアプリは connector を配信する前に `blocked` tool を保留し、`ask` 設定は Claude Code に到達しないため、セッションの通常の [permission rules](/docs/ja/permissions) をそれらの tool に適用し、すべての呼び出しでプロンプトを表示する代わりに。Claude Code が connector 自体を取得するセッションでは、`/mcp` を実行して、各 tool に適用される設定を connector で確認します。
1238
1239* **Tool が `ask` に設定されている場合**: Claude Code は理由 `Your organization requires approval for this tool` ですべての呼び出しでプロンプトを表示します。プロンプトは `acceptEdits`、`auto`、および `bypassPermissions` [permission modes](/docs/ja/permissions#permission-modes) でも表示され、選択を記憶するオプションは提供されません。tool と一致する [Allow rules](/docs/ja/permissions) はプロンプトをスキップしません。プロンプトを表示しない `dontAsk` モードでは、Claude Code は呼び出しを代わりに拒否します。
1240* **Tool が `blocked` に設定されている場合**: Claude Code は Claude がそれを見る前に tool をフィルタリングするため、tool リストに表示されません。デスクトップアプリと claude.ai チャットは同じ `blocked` 設定を適用するため、Claude はそこでも tool を使用できず、デスクトップアプリのセッションから tool を保留しながらチャットで利用可能に保つことはできません。デスクトップアプリは tool がすべてブロックされている connector をスキップします。
939 1241
940<h3 id="disable-claude-ai-connectors">1242<h3 id="disable-claude-ai-connectors">
941 Claude.ai コネクタを無効にする1243 claude.ai connector を無効にする
942</h3>1244</h3>
943 1245
944Claude Code で claude.ai MCP サーバーを無効にするには、任意の設定スコープで [`disableClaudeAiConnectors`](/docs/ja/settings#available-settings) を `true` に設定します:1246Claude Code は [`disableClaudeAiConnectors`](/docs/ja/settings-reference#disableclaudeaiconnectors) を、[自体で取得する](#how-connectors-reach-claude-code) connector のみに適用し、クラウドホストまたはデスクトップアプリが配信する connector には適用しません。取得する connector をオフにするには、任意の設定スコープで設定を `true` に設定します。
945 1247
946```json theme={null}1248```json theme={null}
947{1249{
949}1251}
950```1252```
951 1253
952この設定は任意のソース true セマンティクスを使用します:任意の設定ソースの `true` が優先されます。チェックインされたプロジェクト `.claude/settings.json` はリポジトリをクラウドコネクタから除外できますが、プロジェクトレベルの `false` はユーザーレベルまたはポリシーレベルの `true` が無効にしたコネクタを再度有効にすることはできません。`--mcp-config` を介して明示的に渡されたサーバーは影響を受けません。1254この設定は any-source-true セマンティクスを使用します。任意の設定ソースの `true` が優先されます。チェックインされたプロジェクト `.claude/settings.json` は Claude Code が自体で取得する connector をリポジトリから除外できますが、プロジェクトレベルの `false` は、ユーザーまたはポリシーレベルの `true` が無効にした connector を再度有効にすることはできません。`--mcp-config` を通じて明示的に渡されたサーバーは影響を受けません。
953 1255
954`ENABLE_CLAUDEAI_MCP_SERVERS` 環境変数を `false` に設定することもできます。これは現在のシェルセッションに対して同じ効果があります:1256`ENABLE_CLAUDEAI_MCP_SERVERS` 環境変数を `false` に設定することもできます。これは現在のシェルセッションに対して同じ効果があります。
955 1257
956```bash theme={null}1258```bash theme={null}
957ENABLE_CLAUDEAI_MCP_SERVERS=false claude1259ENABLE_CLAUDEAI_MCP_SERVERS=false claude
958```1260```
959 1261
960すべての claude.ai コネクタを無効にする代わりに個別の claude.ai コネクタをブロックするには、名前または URL パターンで [`deniedMcpServers`](/docs/ja/managed-mcp) に追加します。たとえば、`serverName` エントリ `"claude.ai Slack"` は Slack コネクタをブロックします。現在のプロジェクトのみのコネクタのオン/オフを切り替えるには、`/mcp` パネルを使用します。1262すべての claude.ai connector をブロックする代わりに個別の claude.ai connector をブロックするには、名前または URL パターンで [`deniedMcpServers`](/docs/ja/managed-mcp) に追加します。例えば、`serverName` エントリ `"claude.ai Slack"` は Slack connector をブロックします。また、`/mcp` を実行して、Claude Code が取得する任意の connector を現在のプロジェクトのみでオン/オフに切り替えることもできます。
961
962<Note>
963 これらのクライアント側の設定は、ローカル Claude Code セッションを管理します。[Claude Code on the web](/docs/ja/claude-code-on-the-web) セッションでは、claude.ai コネクタはリモートホストによってプロビジョニングされ、明示的な `--mcp-config` エントリとして到着するため、`disableClaudeAiConnectors` は適用されません。コネクタ URL はセッションプロキシを通じて書き直されるため、ベンダー URL をターゲットとする `deniedMcpServers` `serverUrl` パターンは一致しません。クラウドセッションが使用できるコネクタを管理するには、claude.ai 組織設定から行います。
964</Note>
965 1263
966<h2 id="use-claude-code-as-an-mcp-server">1264<h2 id="use-claude-code-as-an-mcp-server">
967 Claude Code を MCP サーバーとして使用する1265 Claude Code を MCP サーバーとして使用する
968</h2>1266</h2>
969 1267
970Claude Code 自体を MCP サーバーとして使用でき、他のアプリケーションが接続できます:1268Claude Code 自体を MCP サーバーとして使用して、他のアプリケーションが接続できるようにすることができます。
971 1269
972```bash theme={null}1270```bash theme={null}
973# Claude を stdio MCP サーバーとして起動する1271# Claude を stdio MCP サーバーとして起動する
974claude mcp serve1272claude mcp serve
975```1273```
976 1274
977これを Claude Desktop で使用するには、この設定を claude\_desktop\_config.json に追加します:1275コマンドは起動時に何も出力しません。stdio MCP サーバーは stdin と stdout を介して通信するため、サイレント状態でブロックされたターミナルはサーバーが実行中で、クライアントの接続を待機していることを意味します。
1276
1277Claude Desktop でこれを使用するには、claude\_desktop\_config.json にこの設定を追加します。
978 1278
979```json theme={null}1279```json theme={null}
980{1280{
990```1290```
991 1291
992<Warning>1292<Warning>
993 **実行可能ファイルパスの設定**:`command` フィールドは Claude Code 実行可能ファイルを参照する必要があります。`claude` コマンドがシステムの PATH にない場合は、実行可能ファイルへの完全なパスを指定する必要があります。1293 **実行可能ファイルパスの設定**: `command` フィールドは Claude Code 実行可能ファイルを参照する必要があります。`claude` コマンドがシステムの PATH にない場合は、実行可能ファイルへの完全なパスを指定する必要があります。
994 1294
995 完全なパスを見つけるには:1295 完全なパスを見つけるには:
996 1296
998 which claude1298 which claude
999 ```1299 ```
1000 1300
1001 その後、設定で完全なパスを使用します:1301 次に、設定で完全なパスを使用します。
1002 1302
1003 ```json theme={null}1303 ```json theme={null}
1004 {1304 {
1013 }1313 }
1014 ```1314 ```
1015 1315
1016 正しい実行可能ファイルパスがないと、`spawn claude ENOENT` のようなエラーが発生します。1316 正しい実行可能ファイルパスがない場合、`spawn claude ENOENT` などのエラーが発生します。
1017</Warning>1317</Warning>
1018 1318
1019<Tip>1319<Tip>
1020 ヒント:1320 ヒント:
1021 1321
1022 * サーバーは View、Edit、LS などの Claude のツールへのアクセスを提供します1322 * Claude Desktop では、Claude にディレクトリ内のファイルを読み取り、編集などを行うよう依頼してみてください。
1023 * Claude Desktop で、Claude にディレクトリ内のファイルを読み取り、編集などを行うよう依頼してみてください。1323 * この MCP サーバーは Claude Code のツールのみを MCP クライアントに公開するため、独自のクライアントは個別のツール呼び出しのユーザー確認を実装する責任があります。
1024 * この MCP サーバーは Claude Code のツールのみを MCP クライアントに公開しているため、独自のクライアントは個々のツール呼び出しのユーザー確認を実装する責任があります。
1025</Tip>1324</Tip>
1026 1325
1027<h2 id="mcp-output-limits-and-warnings">1326<h2 id="mcp-output-limits-and-warnings">
1028 MCP 出力制限と警告1327 MCP 出力制限と警告
1029</h2>1328</h2>
1030 1329
1031MCP ツールが大きな出力を生成する場合、Claude Code はトークン使用量を管理して、会話コンテキストが圧倒されるのを防ぐのに役立ちます:1330MCP ツールが大きな出力を生成する場合、Claude Code はトークン使用量を管理して、会話コンテキストが圧倒されるのを防ぐのに役立ちます。
1032 1331
1033* **出力警告閾値**:Claude Code は MCP ツール出力が 10,000 トークンを超えると警告を表示します1332* **出力警告閾値**:Claude Code は、MCP ツール出力が 10,000 トークンを超える場合に警告を表示します
1034* **設定可能な制限**:`MAX_MCP_OUTPUT_TOKENS` 環境変数を使用して、許可される最大 MCP 出力トークンを調整できます1333* **設定可能な制限**:`MAX_MCP_OUTPUT_TOKENS` 環境変数を使用して、許可される最大 MCP 出力トークン数を調整できます
1035* **デフォルト制限**:デフォルトの最大値は 25,000 トークンです1334* **デフォルト制限**:デフォルトの最大値は 25,000 トークンです
1036* **スコープ**:環境変数は独自の制限を宣言しないツールに適用されます。[`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) を設定するツールは、`MAX_MCP_OUTPUT_TOKENS` が何に設定されているかに関わらず、テキストコンテンツにその値を使用します。画像データを返すツールは引き続き `MAX_MCP_OUTPUT_TOKENS` の対象です1335* **スコープ**:環境変数は、独自の制限を宣言していないツールに適用されます。[`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) を設定するツールは、`MAX_MCP_OUTPUT_TOKENS` に設定されている値に関係なく、テキストコンテンツに対してその値を代わりに使用します。画像データを返すツールは、引き続き `MAX_MCP_OUTPUT_TOKENS` の対象となります
1336* **制限を超える場合**:画像コンテンツのない結果が制限を超える場合、Claude Code はそれをファイルに保存し、会話内でファイルパスを名前とするメッセージに置き換えます。そのため、Claude はコンテンツが必要な場合にファイルを読み取ります。ファイルはセッションの `tool-results` ディレクトリ内の [`~/.claude/projects/`](/docs/ja/claude-directory#cleaned-up-automatically) に配置されます。
1037 1337
1038大きな出力を生成するツールの制限を増やすには:1338大きな出力を生成するツールの制限を増やすには:
1039 1339
1042claude1342claude
1043```1343```
1044 1344
1045これは特に以下を行う MCP サーバーで役立ちます:
1046
1047* 大規模なデータセットまたはデータベースをクエリする
1048* 詳細なレポートまたはドキュメントを生成する
1049* 広範なログファイルまたはデバッグ情報を処理する
1050
1051<h3 id="raise-the-limit-for-a-specific-tool">1345<h3 id="raise-the-limit-for-a-specific-tool">
1052 特定のツールの制限を引き上げる1346 特定のツールの制限を引き上げる
1053</h3>1347</h3>
1054 1348
1055MCP サーバーを構築している場合、ツールの `tools/list` 応答エントリで `_meta["anthropic/maxResultSizeChars"]` を設定することで、個々のツールがデフォルトの永続化ディスク閾値より大きい結果を返すことを許可できます。Claude Code はそのツールの閾値を注釈付き値に引き上げます。最大 500,000 文字のハードシーリングまで。1349MCP サーバーを構築している場合、ツールの `tools/list` レスポンスエントリで `_meta["anthropic/maxResultSizeChars"]` を設定することで、個別のツールがデフォルトの永続化ディスク閾値より大きい結果を返すことができます。Claude Code はそのツールの閾値を注釈付きの値に引き上げます。ただし、500,000 文字のハードシーリングまでです。
1056 1350
1057これは、データベーススキーマまたは完全なファイルツリーなど、本質的に大きいが必要な出力を返すツールに役立ちます。注釈がない場合、デフォルト閾値を超える結果はディスクに永続化され、会話内のファイル参照に置き換えられます。1351これは、データベーススキーマや完全なファイルツリーなど、本質的に大きいが必要な出力を返すツールに役立ちます。注釈がない場合、デフォルト閾値を超える結果はディスクに永続化され、会話内のファイル参照に置き換えられます。
1058 1352
1059```json theme={null}1353```json theme={null}
1060{1354{
1066}1360}
1067```1361```
1068 1362
1069注釈はテキストコンテンツの `MAX_MCP_OUTPUT_TOKENS` とは独立して適用されるため、ユーザーは注釈を宣言するツールのために環境変数を引き上げる必要はありません。画像データを返すツールは引き続きトークン制限の対象です。1363注釈はテキストコンテンツに対して `MAX_MCP_OUTPUT_TOKENS` とは独立して適用されるため、ユーザーはそれを宣言するツールのために環境変数を引き上げる必要はありません。画像データを返すツールは、引き続きトークン制限の対象となります。
1070 1364
1071<Warning>1365<Warning>
1072 特定の MCP サーバーで出力警告が頻繁に発生する場合は、`MAX_MCP_OUTPUT_TOKENS` 制限を増やすことを検討してください。制御していないサーバーの場合は、サーバー作成者に `anthropic/maxResultSizeChars` 注釈を追加するか、応答をページネーションするよう依頼することもできます。注釈は画像コンテンツを返すツールには影響しません。これらの場合、`MAX_MCP_OUTPUT_TOKENS` を引き上げることが唯一のオプションです。1366 制御していない特定の MCP サーバーで出力警告が頻繁に発生する場合は、`MAX_MCP_OUTPUT_TOKENS` 制限を増やすことを検討してください。サーバー作成者に `anthropic/maxResultSizeChars` 注釈を追加するか、レスポンスをページネーションするよう依頼することもできます。注釈は画像コンテンツを返すツールには効果がありません。それらの場合、`MAX_MCP_OUTPUT_TOKENS` を引き上げることが唯一のオプションです。
1073</Warning>1367</Warning>
1074 1368
1075<h2 id="tool-input-schemas-with-a-root-level-combinator">1369<h2 id="tool-input-schemas-with-a-root-level-combinator">
1076 ツール入力スキーマとルートレベルのコンビネータ1370 ルートレベルのコンビネータを持つツール入力スキーマ
1077</h2>1371</h2>
1078 1372
1079一部の MCP サーバーは、ツールの入力スキーマを JSON Schema ユニオンとして宣言し、スキーマの最上位に `anyOf`、`oneOf`、または `allOf` があります。Claude API はこれらのキーワードをスキーマルートで受け入れません。`properties` 内にネストされたコンビネータは受け入れます。これは Claude Code が変更されずに送信します。1373一部の MCP サーバーは、ツールの入力スキーマを JSON Schema ユニオンとして宣言し、スキーマの最上位に `anyOf`、`oneOf`、または `allOf` を配置しています。Claude API はこれらのキーワードをスキーマのルートで受け入れません。ただし、`properties` 内にネストされたコンビネータは受け入れており、Claude Code はそれらを変更せずに送信します。
1080 1374
1081Claude Code v2.1.195 以降、ルートレベルのコンビネータを持つツールは利用可能なままです。API にツールを送信する前に、Claude Code はスキーマを単一のオブジェクトにフラット化し、ツールの説明の先頭に、どのパラメータグループが一緒に属しているかを Claude に伝える文を追加します:1375ルートレベルのコンビネータを持つツールは利用可能なままです。ツールを API に送信する前に、Claude Code はスキーマをフラット化して単一のオブジェクトにし、どのパラメータグループが一緒に属するかを Claude に伝える文をツールの説明の先頭に追加します。
1082 1376
1083* `allOf`:すべてのブランチのプロパティがマージされ、各ブランチの `required` リストは引き続き適用されます1377* `allOf`:すべてのブランチからのプロパティがマージされ、各ブランチの `required` リストは引き続き適用されます
1084* `anyOf` と `oneOf`:すべてのブランチのプロパティがマージされ、各ブランチの `required` リストはスキーマによって強制されるのではなく、ツール説明で説明されます1378* `anyOf` と `oneOf`:すべてのブランチからのプロパティがマージされ、各ブランチの `required` リストはスキーマによって強制されるのではなく、ツールの説明に記述されます
1085 1379
1086サーバーは Claude が選択した引数を受け取るため、サーバー側で組み合わせの検証を続けてください。1380サーバーは Claude が選択した引数を受け取るため、サーバー側で組み合わせの検証を続けてください。
1087 1381
1088Claude Code が API が受け入れるスキーマを生成できない場合、またはリモート設定を受け取らないデプロイメント(オフラインマシンなど)では、そのツールをスキップし、理由をサーバーのログに記録し、サーバーの他のツールを利用可能なままにします。v2.1.195 より前のバージョンでは、入力スキーマにルートレベルの `anyOf`、`oneOf`、または `allOf` があるすべてのツールをスキップします。1382Claude Code が API が受け入れるスキーマを生成できない場合、またはスキーマの書き換えを有効にするリモート設定を受け取らないデプロイメントの場合、そのツール 1 つをスキップし、理由をサーバーのログに記録し、サーバーの他のツールは利用可能なままにします。v2.1.195 より前のバージョンは、入力スキーマにルートレベルの `anyOf`、`oneOf`、または `allOf` を持つすべてのツールをスキップします。
1383
1384<h2 id="tools-with-invalid-input-schemas">
1385 無効な入力スキーマを持つツール
1386</h2>
1387
1388Claude API はリクエスト内のすべてのツールの入力スキーマをチェックし、いずれかのスキーマが失敗すると、リクエスト全体を 400 エラーで拒否します。そのため、スキーマが不正な形式の MCP ツール 1 つがあると、それを含むすべてのリクエストが失敗します。Claude Code はサーバーのツールを読み込む際に API のチェックのうち 2 つを自身で実行し、それらのチェックに失敗するツールを除外するため、サーバーの他のツールは動作し続けます。
1389
1390* トップレベルのプロパティ名は 1 ~ 64 文字の長さで、ASCII 文字と数字、`_`、`.`、`-` のみを使用する必要があります
1391* スキーマは JSON Schema draft 2020-12 メタスキーマに対して有効である必要があります。Claude Code は `$schema` を宣言していないスキーマと draft 2020-12 を宣言しているスキーマにこのチェックを適用します。他の方言を宣言しているスキーマはこのチェックをスキップしますが、上記のプロパティ名チェックは引き続き適用されます
1392
1393Claude Code は [ルートレベルのコンビネータの書き換え](#tool-input-schemas-with-a-root-level-combinator) の後、実際に送信するスキーマに対してチェックを実行します。
1394
1395Claude Code がツールを除外する場合、その理由をサーバーのログに記録し、除外したツールとその理由を Claude に伝えるため、ツールが見つからない理由を Claude に尋ねることができます。サーバーのスキーマを修正すると、Claude Code が次にサーバーのツールを読み込むときにツールが復帰します。
1396
1397Claude Code は Anthropic から取得するフィーチャーフラグを通じて除外をオンにします。[フラグ取得がオフになっているデプロイメント](/docs/ja/env-vars#features-that-need-feature-flag-fetching) または フラグが到着したことのないマシン(エアギャップマシンなど)では、Claude Code はチェックを実行してサーバーのログにどのツールが拒否されるかを記録しますが、ツールのスキーマを API に送信します。API は [ツールの位置で名前を付けた 400 エラー](/docs/ja/errors#tool-input-schema-is-invalid) でそのスキーマを含むリクエストを拒否します。v2.1.216 より前では、デプロイメントはこれらのチェックを実行していませんでした。
1398
1399[ルートレベルのコンビネータ処理](#tool-input-schemas-with-a-root-level-combinator) は独立しており、フラグ取得がオフの場合またはフラグが到着したことのない場合、独自の動作を保持します。
1089 1400
1090<h2 id="require-approval-for-a-specific-tool">1401<h2 id="require-approval-for-a-specific-tool">
1091 特定のツールの承認を要求する1402 特定のツールに対して承認を要求する
1092</h2>1403</h2>
1093 1404
1094MCP サーバーを構築している場合、ツールの `tools/list` 応答エントリで `_meta["anthropic/requiresUserInteraction"]` を `true` に設定することで、ツールがすべての呼び出しで明示的な承認を必要とするとマークできます。値は JSON ブール値 `true` である必要があります。他の値は無視されます。1405MCP サーバーを構築している場合、ツールの `tools/list` レスポンスエントリで `_meta["anthropic/requiresUserInteraction"]` を `true` に設定することで、そのツールがすべての呼び出しで明示的な承認を必要とするようにマークできます。値は JSON ブール値 `true` である必要があります。その他の値は無視されます。
1095 1406
1096Claude Code は、`acceptEdits`、`auto`、`bypassPermissions` [権限モード](/docs/ja/permissions#permission-modes) でも、そのツールの権限プロンプトをすべての呼び出しで表示し、「今後は聞かない」オプションを提供しません。[許可ルール](/docs/ja/permissions#permission-rule-syntax) がツールと一致しても、プロンプトをスキップしません。`dontAsk` モードでは、プロンプトを表示しないため、Claude Code は呼び出しを拒否します。1407Claude Code は、`acceptEdits`、`auto`、`bypassPermissions` [権限モード](/docs/ja/permissions#permission-modes)でも、そのツールの権限プロンプトをすべての呼び出しで表示し、それに対して「今後は表示しない」オプションを提供しません。ツールに一致する [許可ルール](/docs/ja/permissions#permission-rule-syntax) もプロンプトをスキップしません。プロンプトを表示しない `dontAsk` モードでは、Claude Code は呼び出しを拒否します。
1097 1408
1098プロンプトは人に到達する必要があります。[`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) を使用した非対話型モードでは、フラグ付きツールのプロンプトツールからの `allow` 結果は、メッセージ `MCP tool requires user interaction; not supported via --permission-prompt-tool` を含む拒否に変換されます。Agent SDK の [`canUseTool` コールバック](/docs/ja/agent-sdk/permissions) はこれらの呼び出しを受け取り、承認できます。SDK ホストはユーザーに表示することが期待されるためです。1409プロンプトは人間に到達する必要があります。[`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) を使用した非対話モードでは、フラグが付いたツールのプロンプトツールからの `allow` 結果は、メッセージ `MCP tool requires user interaction; not supported via --permission-prompt-tool` とともに拒否に変換されます。Agent SDK の [`canUseTool` コールバック](/docs/ja/agent-sdk/permissions) はこれらの呼び出しを受け取り、承認できます。これは、SDK アプリケーションがこれらを ユーザーに表示することが期待されているためです。
1099 1410
1100これは、同意またはアクセス許可ステップなど、権限プロンプト自体がポイントであるツールに使用します。自動承認は人間が同意しないことを意味するため。同じサーバーの他のツールは通常の権限動作を保持します。1411これを使用するのは、権限プロンプト自体がポイントであるツール、たとえば同意またはアクセス許可ステップなど、自動承認は人間が同意しないことを意味する場合です。同じサーバーからの他のツールは、通常の権限動作を保持します。
1101 1412
1102次の `tools/list` エントリは、1 つのツールを常に承認が必要とマークします。1413次の `tools/list` エントリは、1 つのツールを常に承認が必要なものとしてマークします。
1103 1414
1104```json theme={null}1415```json theme={null}
1105{1416{
1111}1422}
1112```1423```
1113 1424
1114`anthropic/requiresUserInteraction` 注釈には Claude Code v2.1.199 以降が必要です。以前のバージョンはそれを無視し、標準的な権限フローを適用します。1425`anthropic/requiresUserInteraction` アノテーションには Claude Code v2.1.199 以降が必要です。以前のバージョンはこれを無視し、標準的な権限フローを適用します。
1426
1427[Remote Control](/docs/ja/remote-control) や [Agent SDK](/docs/ja/agent-sdk/overview) 上に構築されたアプリケーションなど、一部のサーフェスでは通常、1 タップでツール呼び出しを承認できます。このアノテーションでマークされたツールの場合、Claude Code は 1 タップアクションを保留し、代わりにツールの完全な権限プロンプトを表示するため、承認は依然としてプロンプトに答える人から得られます。
1115 1428
1116セッションが [Remote Control](/docs/ja/remote-control) または SDK ホストに接続されている場合、Claude Code は権限リクエストをユーザーインタラクションが必要とマークするため、クライアントはワンタップ承認アクションの代わりにツールの権限プロンプトを表示します。1429Claude Code は、安全警告を含むものや、リモートサーフェスが表示できない常に許可オプションなど、ターミナルダイアログでのみ完全にレンダリングできる権限リクエストに対して、同じ方法で 1 タップ承認を保留します。その要求にはリモートコントロールではなく、ターミナルダイアログで答えます。Claude Code v2.1.214 以降が必要です。
1117 1430
1118<h2 id="respond-to-mcp-elicitation-requests">1431<h2 id="respond-to-mcp-elicitation-requests">
1119 MCP 応答要求に対応する1432 MCP エリシテーション要求に応答する
1120</h2>1433</h2>
1121 1434
1122MCP サーバーはタスク中に構造化された入力をあなたに要求するための応答要求を使用できます。サーバーが独自に取得できない情報が必要な場合、Claude Code は対話的なダイアログを表示し、あなたの応答をサーバーに返します。設定は不要です。応答要求ダイアログはサーバーが要求したときに自動的に表示されます。1435MCP サーバーは、エリシテーションを使用してタスク中に構造化された入力をリクエストできます。サーバーが独自に取得できない情報が必要な場合、Claude Code はインタラクティブなダイアログを表示し、応答をサーバーに返します。お客様側での設定は不要です。エリシテーションダイアログはサーバーがリクエストすると自動的に表示されます。
1436
1437サーバーは 2 つの方法で入力をリクエストできます。
1123 1438
1124サーバーは 2 つの方法で入力を要求できます:1439* **フォームモード**: Claude Code はサーバーで定義されたフォームフィールド(例えば、ユーザー名とパスワードプロンプト)を含むダイアログを表示します。フィールドに入力して送信します。
1440* **URL モード**: Claude Code はブラウザ URL を開いて認証または承認を行います。ブラウザでフローを完了してから、CLI で確認します。
1125 1441
1126* **フォームモード**:Claude Code はサーバーで定義されたフォームフィールド(例:ユーザー名とパスワードプロンプト)を含むダイアログを表示します。フィールドに入力して送信します。1442URL モード では、Claude Code は URL をコマンドライン引数としてシステムの URL ハンドラーに渡し、その引数の長さに上限を設けます。コマンドラインのエスケープ後の URL がその上限を超える場合、リクエストを拒否することのみできます。`%` や `&` など、エスケープが必要なすべての文字は、上限に対して 4 倍カウントされます。その文字自体と 3 つのエスケープ文字です。これらを含まない URL は約 8,000 文字で上限に達します。3 番目の文字ごとに `%` があるパーセントエスケープで構成される URL は、約 4,000 で上限に達します。
1127* **URL モード**:Claude Code はブラウザ URL を開いて認証または承認を行います。ブラウザでフローを完了し、CLI で確認します。
1128 1443
1129応答要求に自動応答するには、[`Elicitation` フック](/docs/ja/hooks#elicitation)を使用してください。1444ダイアログを表示せずにエリシテーション要求に自動応答するには、[`Elicitation` フック](/docs/ja/hooks#elicitation)を使用します。
1130 1445
1131MCP サーバーを構築していて応答要求を使用する場合は、[MCP 応答要求仕様](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation)を参照してプロトコルの詳細とスキーマの例を確認してください。1446エリシテーションを使用する MCP サーバーを構築している場合は、プロトコルの詳細とスキーマの例については [MCP エリシテーション仕様](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation)を参照してください。
1132 1447
1133<h2 id="use-mcp-resources">1448<h2 id="use-mcp-resources">
1134 MCP リソースを使用する1449 MCP リソースを使用する
1135</h2>1450</h2>
1136 1451
1137MCP サーバーはリソースを公開でき、ファイルを参照する方法と同様に @ メンションを使用して参照できます。1452MCP サーバーは、ファイルを参照する方法と同様に、@ メンションを使用して参照できるリソースを公開できます。
1138 1453
1139<h3 id="reference-mcp-resources">1454<h3 id="reference-mcp-resources">
1140 MCP リソースを参照する1455 MCP リソースを参照する
1141</h3>1456</h3>
1142 1457
1143<Steps>1458<Steps>
1144 <Step title="利用可能なリソースをリストする">1459 <Step title="利用可能なリソースをリストアップする">
1145 プロンプトで `@` を入力して、接続されているすべての MCP サーバーから利用可能なリソースを表示します。リソースはオートコンプリートメニューのファイルと一緒に表示されます。1460 プロンプトで `@` を入力すると、接続されているすべての MCP サーバーから利用可能なリソースが表示されます。リソースはオートコンプリートメニューのファイルと一緒に表示されます。
1146 </Step>1461 </Step>
1147 1462
1148 <Step title="特定のリソースを参照する">1463 <Step title="特定のリソースを参照する">
1149 `@server:protocol://resource/path` の形式を使用してリソースを参照します:1464 `@server:protocol://resource/path` の形式を使用してリソースを参照します。
1150 1465
1151 ```text theme={null}1466 ```text wrap theme={null}
1152 Can you analyze @github:issue://123 and suggest a fix?1467 Can you analyze @github:issue://123 and suggest a fix?
1153 ```1468 ```
1154 1469
1155 ```text theme={null}1470 ```text wrap theme={null}
1156 Please review the API documentation at @docs:file://api/authentication1471 Please review the API documentation at @docs:file://api/authentication
1157 ```1472 ```
1158 </Step>1473 </Step>
1159 1474
1160 <Step title="複数のリソース参照">1475 <Step title="複数のリソース参照">
1161 1 つのプロンプトで複数のリソースを参照できます:1476 1 つのプロンプトで複数のリソースを参照できます。
1162 1477
1163 ```text theme={null}1478 ```text wrap theme={null}
1164 Compare @postgres:schema://users with @docs:file://database/user-model1479 Compare @postgres:schema://users with @docs:file://database/user-model
1165 ```1480 ```
1166 </Step>1481 </Step>
1171 1486
1172 * リソースは参照されると自動的に取得され、添付ファイルとして含まれます1487 * リソースは参照されると自動的に取得され、添付ファイルとして含まれます
1173 * リソースパスは @ メンションオートコンプリートでファジー検索可能です1488 * リソースパスは @ メンションオートコンプリートでファジー検索可能です
1174 * Claude Code はサーバーがサポートしている場合、MCP リソースをリストおよび読み取るツールを自動的に提供します1489 * Claude Code は、サーバーがサポートしている場合、MCP リソースをリストアップして読み取るためのツールを自動的に提供します
1175 * リソースには、MCP サーバーが提供するあらゆるタイプのコンテンツ(テキスト、JSON、構造化データなど)を含めることができます1490 * リソースには、MCP サーバーが提供するあらゆるタイプのコンテンツ(テキスト、JSON、構造化データなど)を含めることができます
1176</Tip>1491</Tip>
1177 1492
1178<h2 id="scale-with-mcp-tool-search">1493<h2 id="scale-with-mcp-tool-search">
1179 MCP ツール検索でスケーリングする1494 MCP ツール検索でスケーリング
1180</h2>1495</h2>
1181 1496
1182ツール検索は MCP コンテキスト使用量を低く保つことで、ツール定義をオンデマンドで遅延させます。セッション開始時にはツール名とサーバー命令のみがロードされるため、より多くの MCP サーバーを追加してもコンテキストウィンドウへの影響は最小限です。Claude Code は固定のサーバーごとのツール上限を課しません。実用的な制限はコンテキストウィンドウの予算です。1497ツール検索は、Claude がツールを必要とするまでツール定義を遅延させることで、MCP コンテキスト使用量を低く保ちます。セッション開始時にはツール名とサーバー指示のみが読み込まれるため、MCP サーバーを追加してもコンテキストウィンドウへの影響は最小限です。Claude Code はサーバーごとの固定ツール上限を課しません。実用的な上限はコンテキストウィンドウの予算です。
1183
1184<h3 id="how-it-works">
1185 仕組み
1186</h3>
1187
1188ツール検索はデフォルトで有効です。MCP ツールは事前にコンテキストにロードされるのではなく、遅延されます。Claude はタスクが必要な場合、検索ツールを使用して関連する MCP ツールを検出します。Claude が実際に使用するツールのみがコンテキストに入ります。あなたの視点からは、MCP ツールは以前と同じように機能します。
1189 1498
1190しきい値ベースのロードを優先する場合は、`ENABLE_TOOL_SEARCH=auto` を設定して、コンテキストウィンドウの 10% 以内に収まる場合はスキーマを事前にロードし、オーバーフローのみを遅延させます。すべてのオプションについては、[ツール検索の設定](#configure-tool-search)を参照してください。1499<Note>
1500 ツール検索は Microsoft Foundry の[Azure でホストされているデプロイメント](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)ではサポートされていません。これらのデプロイメントはサーバー側でツール検索を拒否します。Claude Code はこの拒否を検出し、そのデプロイメント用に MCP ツールを事前に読み込みます。[`ENABLE_TOOL_SEARCH`](#configure-tool-search) はデプロイメント自体からの拒否であるため、これをオーバーライドすることはできません。
1501</Note>
1191 1502
1192<h3 id="for-mcp-server-authors">1503<h3 id="for-mcp-server-authors">
1193 MCP サーバー作成者向け1504 MCP サーバー作成者向け
1194</h3>1505</h3>
1195 1506
1196MCP サーバーを構築している場合、ツール検索が有効になっているとサーバー命令フィールドがより有用になります。サーバー命令は、[スキル](/docs/ja/skills)の仕組みと同様に、Claude がいつサーバーのツールを検索するかを理解するのに役立ちます。1507MCP サーバーを構築している場合、ツール検索が有効になるとサーバー指示フィールドがより有用になります。サーバー指示は、[スキル](/docs/ja/skills)の動作方法と同様に、Claude がいつツールを検索すべきかを理解するのに役立ちます。
1197 1508
1198明確で説明的なサーバー命令を追加して、以下を説明します:1509以下を説明する明確で説明的なサーバー指示を追加してください。
1199 1510
1200* ツールが処理するタスクのカテゴリ1511* ツールが処理するタスクのカテゴリ
1201* Claude がツールを検索すべき場合1512* Claude がツールを検索すべき時期
1202* サーバーが提供する主な機能1513* サーバーが提供する主な機能
1203 1514
1204Claude Code はツール説明とサーバー命令を各 2KB で切り詰めます。切り詰めを避けるために簡潔に保ち、重要な詳細を最初に配置してください。1515Claude Code はツール説明とサーバー指示を各 2KB で切り詰めます。切り詰めを避けるために簡潔に保ち、重要な詳細は最初の方に配置してください。
1205 1516
1206<h3 id="configure-tool-search">1517<h3 id="configure-tool-search">
1207 ツール検索を設定する1518 ツール検索を設定する
1208</h3>1519</h3>
1209 1520
1210ツール検索はデフォルトで有効です:MCP ツールは遅延され、オンデマンドで検出されます。Claude Code は Google Cloud の Agent Platform ではデフォルトで無効にします。`ANTHROPIC_BASE_URL` が非ファーストパーティホストを指している場合も無効です。ほとんどのプロキシは `tool_reference` ブロックを転送しないためです。`ENABLE_TOOL_SEARCH` を明示的に設定して、いずれかのフォールバックをオーバーライドしてください。1521ツール検索はデフォルトで有効です。MCP ツールは遅延され、オンデマンドで検出されます。Claude Code は `ANTHROPIC_BASE_URL` が非ファーストパーティホストを指している場合、ツール検索を無効にします。ほとんどのプロキシは `tool_reference` ブロックを転送しないためです。`ENABLE_TOOL_SEARCH` を明示的に設定して、そのフォールバックをオーバーライドします。
1522
1523[`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/ja/env-vars) を設定するとツール検索がオフになります。`ENABLE_TOOL_SEARCH` を自分で設定してオーバーライドすることはできません。組織は [管理設定](/docs/ja/managed-settings)を通じて Claude Code v2.1.227 以降でツール検索をオンに保つことができます。[プリリリース機能を無効にする](/docs/ja/llm-gateway-protocol#disable-pre-release-capabilities)は、オーバーライドが適用される場所と変数が削除する内容をカバーしています。
1524
1525ツール検索には `tool_reference` ブロックをサポートするモデルが必要です。Claude Sonnet 4.5、Claude Haiku 4.5、Claude Opus 4.5、およびそれ以降のモデルです。現在のリストについては、[API ドキュメントのモデル互換性](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool#model-compatibility)を参照してください。
1526
1527Google Cloud の Agent Platform では、Claude Code はモデル世代によって決定します。
1211 1528
1212[`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/ja/env-vars)を設定するとツール検索がオフになり、`ENABLE_TOOL_SEARCH` はそれをオーバーライドできません。この変数は、`defer_loading` ツール定義と `tool_reference` コンテンツブロックが必要とするベータヘッダーを削除します。1529* **Claude Opus 4.5、Sonnet 4.5、Haiku 4.5、およびそれ以降**: ツール検索はデフォルトでオンです。Anthropic API と同じです。
1530* **以前の Agent Platform モデル**: Claude Code は必要なベータヘッダーを拒否するサーバースタックのため、すべての MCP ツールを事前に読み込みます。`ENABLE_TOOL_SEARCH=true` はこれをオーバーライドしません。
1213 1531
1214ツール検索には、`tool_reference` ブロックをサポートするモデルが必要です:Claude Sonnet 4.5、Claude Haiku 4.5、Claude Opus 4.5、およびそれ以降のモデル。現在のリストについては、[API ドキュメントのモデル互換性](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool#model-compatibility)を参照してください。Google Cloud の Agent Platform では、Claude Sonnet 4.5 以降および Claude Opus 4.5 以降でツール検索がサポートされています。1532v2.1.221 より前は、Claude Code は `ENABLE_TOOL_SEARCH=true` を設定しない限り、Google Cloud の Agent Platform 上のすべてのモデルに対してツール検索を無効にしていました。
1215 1533
1216`ENABLE_TOOL_SEARCH` 環境変数でツール検索の動作を制御します:1534`ENABLE_TOOL_SEARCH` 環境変数でツール検索の動作を制御します。
1217 1535
1218| 値 | 動作 |1536| 値 | 動作 |
1219| :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1537| :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1220| (未設定) | すべての MCP ツールが遅延され、オンデマンドでロードされます。Google Cloud の Agent Platform または `ANTHROPIC_BASE_URL` が非ファーストパーティホストの場合は事前ロードにフォールバック |1538| (未設定) | すべての MCP ツールが遅延され、オンデマンドで読み込まれます。Google Cloud の Agent Platform の Claude 4.5 世代より前のモデル、`ANTHROPIC_BASE_URL` が非ファーストパーティホストの場合、または Azure でホストされている Microsoft Foundry デプロイメント上で事前読み込みにフォールバックします |
1221| `true` | すべての MCP ツールが遅延。Claude Code は Google Cloud の Agent Platform およびプロキシ経由でもベータヘッダーを送信します。Google Cloud の Agent Platform モデルが Sonnet 4.5 または Opus 4.5 より前の場合、または `tool_reference` ブロックをサポートしないプロキシの場合、リクエストは失敗します |1539| `true` | すべての MCP ツールが遅延されます。ただし、Azure でホストされている Microsoft Foundry デプロイメント上では、サーバー側の拒否により事前読み込みが強制され、Google Cloud の Agent Platform の Claude 4.5 世代より前のモデル上では、Claude Code はツール読み込みを事前に保ちます。Claude Code はベータヘッダーをプロキシ経由で送信し、`tool_reference` ブロックをサポートしないプロキシではリクエストが失敗します |
1222| `auto` | しきい値モード:ツールがコンテキストウィンドウの 10% 以内に収まる場合は事前ロード、そうでない場合は遅延 |1540| `auto` | しきい値モード。Claude Code は、定義の合計がコンテキストウィンドウの 10% 未満の間は、遅延させるツールを事前に読み込み、定義が 10% に達すると、すべてを遅延させます |
1223| `auto:N` | カスタムパーセンテージ付きしきい値モード。`N` は 0-100(例:5% の場合は `auto:5`) |1541| `auto:N` | カスタムパーセンテージを使用したしきい値モード。`N` は 0~100 です。たとえば、5% の場合は `auto:5` です |
1224| `false` | すべての MCP ツールが事前ロード、遅延なし |1542| `false` | すべての MCP ツールが事前に読み込まれ、遅延はありません |
1225 1543
1226```bash theme={null}1544```bash theme={null}
1227# カスタム 5% しきい値を使用する1545# カスタム 5% しきい値を使用する
1231ENABLE_TOOL_SEARCH=false claude1549ENABLE_TOOL_SEARCH=false claude
1232```1550```
1233 1551
1234または、[settings.json `env` フィールド](/docs/ja/settings#available-settings)で値を設定します。1552または [settings.json `env` フィールド](/docs/ja/settings-reference#env)で値を設定します。
1235 1553
1236`ToolSearch` ツールを特別に無効にすることもできます:1554`ToolSearch` ツールを特別に無効にすることもできます。
1237 1555
1238```json theme={null}1556```json theme={null}
1239{1557{
1247 サーバーを遅延から除外する1565 サーバーを遅延から除外する
1248</h3>1566</h3>
1249 1567
1250サーバーのツールが検索ステップなしで常に Claude に表示される場合は、そのサーバーの設定で `alwaysLoad` を `true` に設定します。そのサーバーのすべてのツールは、`ENABLE_TOOL_SEARCH` 設定に関係なく、セッション開始時にコンテキストにロードされます。これは、Claude がすべてのターンで必要とする少数のツールに使用してください。各事前ロードツールはコンテキストを消費するため、会話に利用可能なコンテキストが減少します。1568サーバーのツールが常に Claude に表示され、検索ステップなしで利用可能にする場合は、そのサーバーの設定で `alwaysLoad` を `true` に設定します。そのサーバーのすべてのツールは、`ENABLE_TOOL_SEARCH` 設定に関係なく、セッション開始時にコンテキストに読み込まれます。これは、Claude がすべてのターンで必要とする少数のツール用に使用してください。事前読み込みされた各ツールは、会話に利用可能なコンテキストを消費するためです。
1251 1569
1252次の `.mcp.json` エントリは、1 つの HTTP サーバーを除外し、他のサーバーは遅延したままにします:1570次の `.mcp.json` エントリは、1 つの HTTP サーバーを除外し、他のサーバーを遅延させたままにします。
1253 1571
1254```json theme={null}1572```json theme={null}
1255{1573{
1263}1581}
1264```1582```
1265 1583
1266`alwaysLoad` フィールドはすべてのサーバータイプで利用可能で、Claude Code v2.1.121 以降が必要です。MCP サーバーは、ツールの `_meta` オブジェクトに `"anthropic/alwaysLoad": true` を含めることで、個別のツールを常にロードとしてマークすることもできます。これはそのツールのみに同じ効果があります。1584`alwaysLoad` フィールドはすべてのサーバータイプで利用可能です。MCP サーバーは、ツールの `_meta` オブジェクトに `"anthropic/alwaysLoad": true` を含めることで、個別のツールを常に読み込まれるようにマークすることもできます。これはそのツールのみに同じ効果があります。
1267 1585
1268`alwaysLoad: true` を設定すると、サーバーが接続されるまでスタートアップもブロックされます。これは標準的な 5 秒の接続タイムアウトでキャップされます。これは MCP スタートアップが[デフォルトではノンブロッキング](/docs/ja/env-vars)である場合でも適用されます。ツールは最初のプロンプトが構築されるときに存在する必要があるためです。他のサーバーはバックグラウンドで接続し続けます。1586`alwaysLoad: true` を設定すると、スタートアップはサーバーのツールを待機します。最初のプロンプトが構築されるときに存在する必要があるため、標準の 5 秒接続タイムアウトでキャップされます。有効な [`cached` エントリ](#server-status-detail)を持つリモートサーバーは、接続せずにキャッシュからツールを供給するため、スタートアップを保持しません。他のサーバーはデフォルトでバックグラウンドで接続します。[`MCP_CONNECTION_NONBLOCKING=0`](/docs/ja/env-vars) を設定して、スタートアップがそれらも待機するようにします。
1269 1587
1270<h2 id="use-mcp-prompts-as-commands">1588<h2 id="use-mcp-prompts-as-commands">
1271 MCP プロンプトをコマンドとして使用する1589 MCP プロンプトをコマンドとして使用する
1272</h2>1590</h2>
1273 1591
1274MCP サーバーはプロンプトを公開でき、Claude Code でコマンドとして利用可能になります。1592MCP サーバーは Claude Code でコマンドとして利用可能になるプロンプトを公開できます。
1275 1593
1276<h3 id="execute-mcp-prompts">1594<h3 id="execute-mcp-prompts">
1277 MCP プロンプトを実行する1595 MCP プロンプトを実行する
1279 1597
1280<Steps>1598<Steps>
1281 <Step title="利用可能なプロンプトを検出する">1599 <Step title="利用可能なプロンプトを検出する">
1282 `/` を入力して、MCP サーバーからのプロンプトを含むすべての利用可能なコマンドを表示します。MCP プロンプトは `/mcp__servername__promptname` の形式で表示されます。1600 `/` と入力して、MCP サーバーからのプロンプトを含む、利用可能なコマンドを確認します。Claude Code は各 MCP プロンプトを `/servername:promptname (MCP)` として一覧表示します。`/mcp__servername__promptname` と入力して実行することもできます。
1283 </Step>1601 </Step>
1284 1602
1285 <Step title="引数なしでプロンプトを実行する">1603 <Step title="引数なしでプロンプトを実行する">
1286 ```text theme={null}1604 ```text wrap theme={null}
1287 /mcp__github__list_prs1605 /mcp__github__list_prs
1288 ```1606 ```
1289 </Step>1607 </Step>
1290 1608
1291 <Step title="引数を使用してプロンプトを実行する">1609 <Step title="引数付きでプロンプトを実行する">
1292 多くのプロンプトは引数を受け入れます。コマンドの後にスペース区切りで渡します:1610 多くのプロンプトは引数を受け入れます。コマンドの後に空白で区切られた引数を渡します。Claude Code は引数を空白で分割するため、各引数は単一のトークンです:
1293 1611
1294 ```text theme={null}1612 ```text wrap theme={null}
1295 /mcp__github__pr_review 4561613 /mcp__github__pr_review 456
1296 ```1614 ```
1297 1615
1298 ```text theme={null}1616 ```text wrap theme={null}
1299 /mcp__jira__create_issue "ログインフローのバグ" high1617 /mcp__jira__create_issue login-bug high
1300 ```1618 ```
1301 </Step>1619 </Step>
1302</Steps>1620</Steps>
1304<Tip>1622<Tip>
1305 ヒント:1623 ヒント:
1306 1624
1307 * MCP プロンプトは接続されているサーバーから動的に検出されます1625 * MCP プロンプトは接続されたサーバーから動的に検出されます
1308 * 引数はプロンプトの定義されたパラメータに基づいて解析されます1626 * 引数はプロンプトの定義されたパラメータに基づいて解析されます
1309 * プロンプト結果は会話に直接注入されます1627 * プロンプト結果は会話に直接注入されます
1310 * サーバーとプロンプト名は正規化されます(スペースはアンダースコアになります)1628 * `/mcp__servername__promptname` の形式では、Claude Code はサーバー名内の `A-Z`、`a-z`、`0-9`、`_`、および `-` 以外の文字を `_` に置き換え、サーバーが宣言したプロンプト名を使用します
1311</Tip>1629</Tip>
1312 1630
1313<h2 id="managed-mcp-configuration">1631<h2 id="managed-mcp-configuration">
1314 管理対象 MCP 設定1632 管理対象 MCP 設定
1315</h2>1633</h2>
1316 1634
1317MCP サーバーへのアクセスを集中管理する必要がある組織の場合は、[管理対象 MCP 設定](/docs/ja/managed-mcp)を参照してください。`managed-mcp.json` を使用した固定サーバーセットのデプロイ、`allowedMcpServers` と `deniedMcpServers` によるサーバーの制限、およびサーバーがブロックされた場合にユーザーに表示される内容について説明しています。1635MCP サーバーへの接続をユーザーが行えるかを一元管理する必要がある組織の場合は、[管理対象 MCP 設定](/docs/ja/managed-mcp)を参照してください。`managed-mcp.json` を使用した固定サーバーセットのデプロイ、`managedMcpServers` を使用したすべてのユーザーへのサーバー提供、`allowedMcpServers` と `deniedMcpServers` によるサーバーの制限、およびサーバーがブロックされた場合にユーザーに表示される内容について説明しています。