64 64
65### Option 1: Einen Remote-HTTP-Server hinzufügen65### Option 1: Einen Remote-HTTP-Server hinzufügen
66 66
67HTTP-Server sind die empfohlene Option für die Verbindung mit Remote-MCP-Servern. Dies ist das am weitesten unterstützte Transportprotokoll für Cloud-basierte Dienste.67HTTP-Server sind die empfohlene Option, um sich mit Remote-MCP-Servern zu verbinden. Dies ist der am weitesten unterstützte Transport für cloudbasierte Dienste.
68 68
69```bash theme={null}69```bash theme={null}
70# Grundlegende Syntax70# Basic syntax
71claude mcp add --transport http <name> <url>71claude mcp add --transport http <name> <url>
72 72
73# Echtes Beispiel: Mit Notion verbinden73# Real example: Connect to Notion
74claude mcp add --transport http notion https://mcp.notion.com/mcp74claude mcp add --transport http notion https://mcp.notion.com/mcp
75 75
76# Beispiel mit Bearer-Token76# Example with Bearer token
77claude mcp add --transport http secure-api https://api.example.com/mcp \77claude mcp add --transport http secure-api https://api.example.com/mcp \
78 --header "Authorization: Bearer your-token"78 --header "Authorization: Bearer your-token"
79```79```
80 80
81Bei der Konfiguration von MCP-Servern über JSON in `.mcp.json`, `~/.claude.json` oder `claude mcp add-json` akzeptiert das Feld `type` `streamable-http` als Alias für `http`. Die MCP-Spezifikation verwendet den Namen `streamable-http` für dieses Transportprotokoll, sodass Konfigurationen, die aus der Serverdokumentation kopiert werden, ohne Änderungen funktionieren.81Wenn Sie MCP-Server über JSON in `.mcp.json`, `~/.claude.json` oder `claude mcp add-json` konfigurieren, akzeptiert das Feld `type` den Wert `streamable-http` als Alias für `http`. Die MCP-Spezifikation verwendet für diesen Transport den Namen `streamable-http`, sodass aus der Serverdokumentation kopierte Konfigurationen ohne Änderung funktionieren.
82 82
83Ein JSON-Eintrag mit einer `url` aber ohne `type` ist ein Konfigurationsfehler, da Claude Code einen Eintrag ohne `type` als Stdio-Server liest. Claude Code überspringt diesen Server und meldet `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.83Ein JSON-Eintrag, der eine `url`, aber keinen `type` hat, ist ein Konfigurationsfehler, weil Claude Code einen Eintrag ohne `type` als stdio-Server liest. Claude Code überspringt diesen Server und meldet `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.
84 84
85Nur eine SDK-Host-Anwendung, wie eine [Agent SDK](https://code.claude.com/docs/de/agent-sdk/mcp.md)-Anwendung oder die [Desktop-App](https://code.claude.com/docs/de/desktop.md), kann einen In-Process-Server vom Typ `"type": "sdk"` registrieren. Claude Code überspringt einen `"type": "sdk"`-Eintrag in `.mcp.json`, `~/.claude.json` oder Einstellungen und meldet `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.85Nur eine SDK-Host-Anwendung, etwa eine [Agent SDK](https://code.claude.com/docs/de/agent-sdk/mcp.md)-Anwendung oder die [Desktop-App](https://code.claude.com/docs/de/desktop.md), kann einen In-Process-Server mit `"type": "sdk"` registrieren. Claude Code überspringt einen `"type": "sdk"`-Eintrag in `.mcp.json`, `~/.claude.json` oder in den Einstellungen und meldet `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.
86 86
87> [!NOTE]87> [!NOTE]
88>88>
92 92
93> [!WARNING]93> [!WARNING]
94>94>
95> Das SSE-Transportprotokoll (Server-Sent Events) ist veraltet. Verwenden Sie stattdessen HTTP-Server, wo verfügbar.95> Der SSE-Transport (Server-Sent Events) ist veraltet. Verwenden Sie stattdessen HTTP-Server, sofern verfügbar.
96 96
97Einige Dienste stellen weiterhin nur einen SSE-Endpunkt bereit. Fügen Sie diese mit demselben Befehl `claude mcp add --transport http <name> <url>` wie [einen HTTP-Server](#option-1-add-a-remote-http-server) hinzu. Claude Code versucht zuerst das HTTP-Transportprotokoll und wechselt zu SSE, wenn der Server es nicht akzeptiert. Der automatische Wechsel erfordert Claude Code v2.1.265 oder später.97Einige Dienste stellen weiterhin nur einen SSE-Endpunkt bereit. Fügen Sie diese mit demselben Befehl `claude mcp add --transport http <name> <url>` hinzu wie [einen HTTP-Server](#option-1-add-a-remote-http-server). Claude Code versucht zuerst den HTTP-Transport und wechselt zu SSE, wenn der Server ihn nicht akzeptiert. Der automatische Wechsel erfordert Claude Code v2.1.265 oder höher.
98 98
99Bei einer früheren Version oder um direkt über SSE zu verbinden, übergeben Sie stattdessen `--transport sse`:99Verwenden Sie bei einer früheren Version, oder um direkt über SSE zu verbinden, stattdessen `--transport sse`:
100 100
101```bash theme={null}101```bash theme={null}
102# Grundlegende Syntax102# Basic syntax
103claude mcp add --transport sse <name> <url>103claude mcp add --transport sse <name> <url>
104 104
105# Echtes Beispiel: Mit Asana verbinden105# Real example: Connect to Asana
106claude mcp add --transport sse asana https://mcp.asana.com/sse106claude mcp add --transport sse asana https://mcp.asana.com/sse
107 107
108# Beispiel mit Authentifizierungsheader108# Example with authentication header
109claude mcp add --transport sse private-api https://api.company.com/sse \109claude mcp add --transport sse private-api https://api.company.com/sse \
110 --header "X-API-Key: your-key-here"110 --header "X-API-Key: your-key-here"
111```111```
112 112
113### Option 3: Einen lokalen Stdio-Server hinzufügen113### Option 3: Einen lokalen stdio-Server hinzufügen
114 114
115Stdio-Server werden als lokale Prozesse auf Ihrem Computer ausgeführt. Sie sind ideal für Tools, die direkten Systemzugriff oder benutzerdefinierte Skripte benötigen.115Stdio-Server laufen als lokale Prozesse auf Ihrem Rechner. Sie eignen sich ideal für Tools, die direkten Systemzugriff benötigen, oder für eigene Skripte.
116 116
117Claude Code setzt `CLAUDE_PROJECT_DIR` in der Umgebung des erzeugten Servers auf das Projektstammverzeichnis, sodass Ihr Server projektrelative Pfade auflösen kann, ohne vom Arbeitsverzeichnis abhängig zu sein. Dies ist dasselbe Verzeichnis, das Hooks in ihrer `CLAUDE_PROJECT_DIR`-Variable erhalten. Lesen Sie es aus Ihrem Serverprozess, zum Beispiel `process.env.CLAUDE_PROJECT_DIR` in Node oder `os.environ["CLAUDE_PROJECT_DIR"]` in Python.117Claude Code setzt `CLAUDE_PROJECT_DIR` in der Umgebung des gestarteten Servers auf das Projektstammverzeichnis, sodass Ihr Server projektrelative Pfade auflösen kann, ohne vom Arbeitsverzeichnis abzuhängen. Dies ist dasselbe Verzeichnis, das Hooks in ihrer Variable `CLAUDE_PROJECT_DIR` erhalten. Lesen Sie sie innerhalb Ihres Serverprozesses aus, zum Beispiel mit `process.env.CLAUDE_PROJECT_DIR` in Node oder `os.environ["CLAUDE_PROJECT_DIR"]` in Python.
118 118
119`CLAUDE_PROJECT_DIR` ist das stabile Projektstammverzeichnis und ändert sich nicht, wenn Sie während einer Sitzung Arbeitsverzeichnisse hinzufügen oder entfernen. Ein Server, der seinen eigenen Dateisystemzugriff auf einen Satz zulässiger Verzeichnisse beschränkt, sollte stattdessen die MCP-Anfrage `roots/list` implementieren. Claude Code antwortet auf `roots/list` mit dem Startverzeichnis der Sitzung plus jedem [zusätzlichen Arbeitsverzeichnis](https://code.claude.com/docs/de/permissions.md#working-directories), das Sie mit `--add-dir`, `/add-dir` oder der Einstellung `additionalDirectories` gewährt haben. Claude Code sendet `notifications/roots/list_changed`, wenn sich dieser Satz ändert.119`CLAUDE_PROJECT_DIR` ist das stabile Projektstammverzeichnis und ändert sich nicht, wenn Sie während der Sitzung Arbeitsverzeichnisse hinzufügen oder entfernen. Ein Server, der seinen eigenen Dateisystemzugriff auf eine Menge erlaubter Verzeichnisse beschränkt, sollte stattdessen die MCP-Anfrage `roots/list` implementieren. Claude Code beantwortet `roots/list` mit dem Startverzeichnis der Sitzung sowie jedem [zusätzlichen Arbeitsverzeichnis](https://code.claude.com/docs/de/permissions.md#working-directories), das Sie mit `--add-dir`, `/add-dir` oder der Einstellung `additionalDirectories` freigegeben haben. Claude Code sendet `notifications/roots/list_changed`, wenn sich diese Menge ändert.
120 120
121Diese Variable wird in der Umgebung des Servers gesetzt, nicht in der Umgebung von Claude Code selbst. Daher erfordert das Referenzieren über `${VAR}`-Expansion in `command` oder `args` eines projektgebundenen `.mcp.json`-Eintrags oder eines lokal- oder benutzergebundenen Servereintrags in `~/.claude.json` einen Standard wie `${CLAUDE_PROJECT_DIR:-.}`. Von Plugins bereitgestellte MCP-Konfigurationen ersetzen `${CLAUDE_PROJECT_DIR}` direkt und benötigen keinen Standard.121Diese Variable wird in der Umgebung des Servers gesetzt, nicht in der eigenen Umgebung von Claude Code. Wenn Sie sie daher per `${VAR}`-Expansion im `command` oder in den `args` eines projektbezogenen `.mcp.json`-Eintrags oder eines Servereintrags mit lokalem oder Benutzer-Geltungsbereich in `~/.claude.json` referenzieren, ist ein Standardwert wie `${CLAUDE_PROJECT_DIR:-.}` erforderlich. Von Plugins bereitgestellte MCP-Konfigurationen ersetzen `${CLAUDE_PROJECT_DIR}` direkt und benötigen keinen Standardwert.
122 122
123```bash theme={null}123```bash theme={null}
124# Grundlegende Syntax124# Basic syntax
125claude mcp add [options] <name> -- <command> [args...]125claude mcp add [options] <name> -- <command> [args...]
126 126
127# Echtes Beispiel: Airtable-Server hinzufügen127# Real example: Add Airtable server
128claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \128claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
129 -- npx -y airtable-mcp-server129 -- npx -y airtable-mcp-server
130```130```
131 131
132> [!NOTE]132> [!NOTE]
133>133>
134> Bei Stdio-Servern trennt `--` (Doppelstrich) Claudes eigene Optionen wie `--transport`, `--env` und `--scope` vom Befehl und den Argumenten, die den Server ausführen. Alles nach `--` wird unverändert an den Server übergeben.134> Bei stdio-Servern trennt `--` (doppelter Bindestrich) die eigenen Optionen von Claude, etwa `--transport`, `--env` und `--scope`, vom Befehl und den Argumenten, die den Server ausführen. Alles nach `--` wird unverändert an den Server übergeben.
135>135>
136> Zum Beispiel:136> Zum Beispiel:
137>137>
138> * `claude mcp add --transport stdio myserver -- npx server` → führt `npx server` aus138> * `claude mcp add --transport stdio myserver -- npx server` → führt `npx server` aus
139> * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → führt `python server.py --port 8080` mit `KEY=value` in der Umgebung aus139> * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → führt `python server.py --port 8080` mit `KEY=value` in der Umgebung aus
140>140>
141> Ohne `--` würde Claude Code versuchen, die Flags des Servers wie `--port` oben als seine eigenen Optionen zu analysieren.141> Ohne `--` würde Claude Code versuchen, die Flags des Servers, wie oben `--port`, als eigene Optionen zu parsen.
142>142>
143> `--env` akzeptiert mehrere `KEY=value`-Paare. Wenn der Servername direkt nach `--env` kommt, liest die CLI den Namen als ein weiteres Paar und lehnt ihn ab. Platzieren Sie daher mindestens eine andere Option wie `--transport stdio` zwischen `--env` und dem Servernamen.143> `--env` akzeptiert mehrere `KEY=value`-Paare. Folgt der Servername direkt auf `--env`, liest die CLI den Namen als weiteres Paar und lehnt ihn ab. Platzieren Sie daher mindestens eine andere Option, etwa `--transport stdio`, zwischen `--env` und dem Servernamen.
144 144
145#### Wie Claude Code einen Stdio-Server stoppt145#### Wie Claude Code einen stdio-Server beendet
146 146
147Wenn Claude Code die Verbindung zu einem Stdio-Server trennt, zum Beispiel wenn Ihre Sitzung endet, sendet es dem Serverprozess ein Signal und wartet kurz, bis er sich beendet, bevor es ihn zwangsweise stoppt. Wenn Ihr Server beim Herunterfahren seinen Zustand speichert oder Sperrdateien entfernt, behandeln Sie das Signal für Ihre Plattform und schließen Sie diese Arbeit innerhalb dieser Zeit ab:147Wenn Claude Code die Verbindung zu einem stdio-Server trennt, zum Beispiel wenn Ihre Sitzung endet, sendet es dem Serverprozess ein Signal und wartet kurz auf dessen Beendigung, bevor es ihn zwangsweise stoppt. Wenn Ihr Server beim Herunterfahren Zustand speichert oder Sperrdateien entfernt, behandeln Sie das Signal für Ihre Plattform und schließen Sie innerhalb dieser Zeit ab:
148 148
149* **Unter macOS und Linux**: Claude Code sendet `SIGINT`, dann `SIGTERM`, wenn der Prozess 100 Millisekunden später noch läuft, und nach weiteren 400 Millisekunden `SIGKILL`.149* **Unter macOS und Linux**: Claude Code sendet `SIGINT`, dann `SIGTERM`, falls der Prozess 100 Millisekunden später noch läuft, und nach weiteren 400 Millisekunden `SIGKILL`.
150* **Unter Windows**: Claude Code schließt stdin des Servers und beendet dann den Prozessbaum des Servers, wenn der Prozess 300 Millisekunden später noch läuft.150* **Unter Windows**: Claude Code schließt stdin des Servers und beendet dann den Prozessbaum des Servers, falls der Prozess 300 Millisekunden später noch läuft.
151 151
152Vor v2.1.296 beendete Claude Code unter Windows den Prozessbaum des Servers sofort, ohne zuerst stdin zu schließen oder zu warten.152Vor v2.1.296 beendete Claude Code unter Windows den Prozessbaum des Servers sofort, ohne zuvor stdin zu schließen oder zu warten.
153 153
154### Option 4: Einen Remote-WebSocket-Server hinzufügen154### Option 4: Einen Remote-WebSocket-Server hinzufügen
155 155
156WebSocket-Server halten eine persistente bidirektionale Verbindung, die sich für Remote-MCP-Server eignet, die Claude unaufgefordert Ereignisse übermitteln. Verwenden Sie HTTP, wenn Ihr Server nur auf Anfragen antwortet, da HTTP OAuth und das Flag `claude mcp add --transport` unterstützt, während WebSocket beides nicht unterstützt.156WebSocket-Server halten eine persistente bidirektionale Verbindung, was sich für Remote-MCP-Server eignet, die Ereignisse unaufgefordert an Claude senden. Verwenden Sie stattdessen HTTP, wenn Ihr Server nur auf Anfragen antwortet, da HTTP OAuth und das Flag `claude mcp add --transport` unterstützt, WebSocket hingegen keines von beiden.
157 157
158Konfigurieren Sie WebSocket-Server in `.mcp.json` oder mit `claude mcp add-json`:158Konfigurieren Sie WebSocket-Server in `.mcp.json` oder mit `claude mcp add-json`:
159 159
162 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'162 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'
163```163```
164 164
165Der Eintrag `type: "ws"` akzeptiert dieselben Felder `url`, `headers`, `headersHelper`, `timeout` und `alwaysLoad` wie `http`. Die Authentifizierung erfolgt nur über Header. Übergeben Sie ein statisches Token in `headers` oder generieren Sie eines beim Verbinden mit [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Das Flag `claude mcp add --transport` akzeptiert `ws` nicht.165Der Eintrag `type: "ws"` akzeptiert dieselben Felder `url`, `headers`, `headersHelper`, `timeout` und `alwaysLoad` wie `http`. Die Authentifizierung erfolgt ausschließlich über Header. Übergeben Sie also ein statisches Token in `headers` oder erzeugen Sie eines beim Verbindungsaufbau mit [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Das Flag `claude mcp add --transport` akzeptiert `ws` nicht.
166 166
167### Einen Server aus Setupanweisungen hinzufügen, die für einen anderen Client geschrieben wurden167### Einen Server aus Einrichtungsanleitungen für einen anderen Client hinzufügen
168 168
169MCP-Server sind nicht spezifisch für Claude Code, daher können die Setupanweisungen eines Servers für Claude Desktop, Cursor oder einen anderen MCP-Client geschrieben sein und keinen `claude mcp add`-Befehl geben. Um den Server trotzdem hinzuzufügen, suchen Sie in diesen Anweisungen nach einer URL, einem Startbefehl oder einem JSON-Block:169MCP-Server sind nicht spezifisch für Claude Code. Die Einrichtungsanleitung eines Servers kann daher für Claude Desktop, Cursor oder einen anderen MCP-Client geschrieben sein und keinen `claude mcp add`-Befehl enthalten. Um den Server trotzdem hinzuzufügen, suchen Sie in dieser Anleitung nach einer URL, einem Startbefehl oder einem JSON-Block:
170 170
171* **Eine URL** wie `https://mcp.example.com/mcp`: Der Server ist Remote.171* **Eine URL** wie `https://mcp.example.com/mcp`: Der Server ist remote.
172* **Ein Startbefehl** wie `npx -y @example/mcp-server`: Der Server wird auf Ihrem Computer ausgeführt.172* **Ein Startbefehl** wie `npx -y @example/mcp-server`: Der Server läuft auf Ihrem Rechner.
173* **Ein `mcpServers`-JSON-Block**: Konfiguration, die für die Einstellungsdatei eines anderen Clients geschrieben wurde.173* **Ein `mcpServers`-JSON-Block**: eine Konfiguration, die für die Einstellungsdatei eines anderen Clients geschrieben wurde.
174 174
175Jede ist eine der Eingaben, die die vier Optionen in [MCP-Server installieren](#installing-mcp-servers) benötigen. Finden Sie die Form, die Sie haben, unten, um sie in den Befehl umzuwandeln, den Claude Code akzeptiert. Jeder Befehl schreibt in [lokalen Bereich](#local-scope), es sei denn, Sie fügen `--scope project` oder `--scope user` hinzu.175Jede dieser Formen ist eine der Eingaben, die die vier Optionen unter [MCP-Server installieren](#installing-mcp-servers) entgegennehmen. Suchen Sie unten die Form, die Ihnen vorliegt, um sie in den Befehl umzuwandeln, den Claude Code akzeptiert. Jeder Befehl schreibt in den [lokalen Geltungsbereich](#local-scope), sofern Sie nicht `--scope project` oder `--scope user` hinzufügen.
176 176
177#### Einen Server aus einer URL hinzufügen177#### Einen Server aus einer URL hinzufügen
178 178
179Eine URL bedeutet, dass der Server Remote ist. Für einen `https://`-Endpunkt fügen Sie ihn mit `--transport http` hinzu, oder folgen Sie [Option 2](#option-2-add-a-remote-sse-server), wenn die Anweisungen sagen, dass der Endpunkt SSE verwendet. Für einen `wss://`-Endpunkt verwenden Sie stattdessen [Option 4](#option-4-add-a-remote-websocket-server), da `--transport` `ws` nicht akzeptiert:179Eine URL bedeutet, dass der Server remote ist. Fügen Sie einen `https://`-Endpunkt mit `--transport http` hinzu, oder folgen Sie [Option 2](#option-2-add-a-remote-sse-server), wenn die Anleitung angibt, dass der Endpunkt SSE verwendet. Verwenden Sie für einen `wss://`-Endpunkt stattdessen [Option 4](#option-4-add-a-remote-websocket-server), da `--transport` den Wert `ws` nicht akzeptiert:
180 180
181```bash theme={null}181```bash theme={null}
182claude mcp add --transport http example https://mcp.example.com/mcp182claude mcp add --transport http example https://mcp.example.com/mcp
183```183```
184 184
185Wenn die Anweisungen auch einen API-Schlüssel oder Token-Header geben, übergeben Sie ihn mit `--header` wie in [Option 1](#option-1-add-a-remote-http-server) gezeigt.185Wenn die Anleitung zusätzlich einen API-Schlüssel oder einen Token-Header angibt, übergeben Sie ihn mit `--header`, wie in [Option 1](#option-1-add-a-remote-http-server) gezeigt.
186 186
187#### Einen Server aus einem `npx`-, `uvx`- oder Binärbefehl hinzufügen187#### Einen Server aus einem `npx`-, `uvx`- oder Binärbefehl hinzufügen
188 188
189Ein Startbefehl bedeutet, dass der Server als lokaler Stdio-Prozess ausgeführt wird. Platzieren Sie den gesamten Befehl nach `--`, sodass Claude Code Flags wie `-y` an den Befehl übergibt, der den Server startet, anstatt sie als seine eigenen Optionen zu lesen. Übergeben Sie alle Umgebungsvariablen, die die Anweisungen anfordern, mit `--env`, nach dem Servernamen und vor `--`:189Ein Startbefehl bedeutet, dass der Server als lokaler stdio-Prozess läuft. Setzen Sie den gesamten Befehl hinter `--`, damit Claude Code Flags wie `-y` an den Befehl übergibt, der den Server startet, anstatt sie als eigene Optionen zu lesen. Übergeben Sie alle Umgebungsvariablen, die die Anleitung verlangt, mit `--env` nach dem Servernamen und vor `--`:
190 190
191```bash theme={null}191```bash theme={null}
192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server
193```193```
194 194
195[Option 3](#option-3-add-a-local-stdio-server) behandelt den `--`-Trennzeichen vollständig.195[Option 3](#option-3-add-a-local-stdio-server) behandelt das Trennzeichen `--` ausführlich.
196 196
197#### Einen Server aus einem `mcpServers`-JSON-Block hinzufügen197#### Einen Server aus einem `mcpServers`-JSON-Block hinzufügen
198 198
199Ein `mcpServers`-Block, der für einen anderen MCP-Client wie Claude Desktop geschrieben wurde, verwendet den Wrapper-Schlüssel und die Eintragform, die Claude Code liest. Übergeben Sie `claude mcp add-json` das Objekt in `mcpServers`, nicht den Wrapper. Zwei Einträge benötigen zuerst eine Reparatur:199Ein `mcpServers`-Block, der für einen anderen MCP-Client wie Claude Desktop geschrieben wurde, verwendet denselben Wrapper-Schlüssel und dieselbe Eintragsform, die Claude Code liest. Übergeben Sie an `claude mcp add-json` das Objekt innerhalb von `mcpServers`, nicht den Wrapper. Zwei Arten von Einträgen müssen zuerst korrigiert werden:
200 200
201* **Eine `url` ohne `type`**: Fügen Sie `"type": "http"`, `"type": "sse"` oder `"type": "ws"` hinzu, um dem Endpunkt zu entsprechen. Claude Code liest einen Eintrag ohne `type` als Stdio-Server, daher schlägt ein `url`-Eintrag ohne `type` fehl.201* **Eine `url` ohne `type`**: Fügen Sie passend zum Endpunkt `"type": "http"`, `"type": "sse"` oder `"type": "ws"` hinzu. Claude Code liest einen Eintrag ohne `type` als stdio-Server, daher schlägt ein `url`-Eintrag ohne `type` fehl.
202* **Ein Schlüssel mit Zeichen außer Buchstaben, Zahlen, Bindestrichen und Unterstrichen**: Wählen Sie einen Servernamen, der nur diese Zeichen verwendet. Andernfalls ist der Schlüssel der Servername.202* **Ein Schlüssel mit anderen Zeichen als Buchstaben, Ziffern, Bindestrichen und Unterstrichen**: Wählen Sie einen Servernamen, der nur diese Zeichen verwendet. Andernfalls ist der Schlüssel der Servername.
203 203
204Zum Beispiel wird dieser Block:204Zum Beispiel wird dieser Block:
205 205
220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'
221```221```
222 222
223[MCP-Server aus JSON-Konfiguration hinzufügen](#add-mcp-servers-from-json-configuration) behandelt Shell-Escaping und das Flag `--scope` für `add-json`. Um den Server stattdessen mit Ihrem Team zu teilen, fügen Sie `--scope project` hinzu, oder fügen Sie den Eintrag unter `mcpServers` in `.mcp.json` in Ihrem Projektstammverzeichnis hinzu und committen Sie ihn. [Projektbereich](#project-scope) behandelt, wie Claude Code diese Datei lädt und genehmigt.223[MCP-Server aus einer JSON-Konfiguration hinzufügen](#add-mcp-servers-from-json-configuration) behandelt das Escaping in der Shell und das Flag `--scope` für `add-json`. Um den Server stattdessen mit Ihrem Team zu teilen, fügen Sie `--scope project` hinzu, oder fügen Sie den Eintrag unter `mcpServers` in `.mcp.json` im Stammverzeichnis Ihres Projekts hinzu und committen Sie ihn. [Projekt-Geltungsbereich](#project-scope) beschreibt, wie Claude Code diese Datei lädt und genehmigt.
224 224
225Jeder `claude mcp add`- und `claude mcp add-json`-Befehl gibt bei Erfolg eine `Added ...`-Zeile aus. Um zu überprüfen, dass Claude Code verbunden ist, führen Sie `claude mcp get <name>` aus; [Serverstatus](#server-status) behandelt die Statuse, die er anzeigt, und den Genehmigungsschritt für `.mcp.json`-Server.225Jeder `claude mcp add`- und `claude mcp add-json`-Befehl gibt bei Erfolg eine Zeile `Added ...` aus. Um zu prüfen, ob Claude Code sich verbunden hat, führen Sie `claude mcp get <name>` aus. [Serverstatus](#server-status) behandelt die angezeigten Status und den Genehmigungsschritt für `.mcp.json`-Server.
226 226
227### Ihre Server verwalten227### Ihre Server verwalten
228 228
229Nach der Konfiguration können Sie Ihre MCP-Server mit diesen Befehlen verwalten:229Nach der Konfiguration können Sie Ihre MCP-Server mit diesen Befehlen verwalten:
230 230
231```bash theme={null}231```bash theme={null}
232# Alle konfigurierten Server auflisten232# List all configured servers
233claude mcp list233claude mcp list
234 234
235# Details für einen bestimmten Server abrufen235# Get details for a specific server
236claude mcp get notion236claude mcp get notion
237 237
238# Einen Server entfernen238# Remove a server
239claude mcp remove notion239claude mcp remove notion
240 240
241# (innerhalb von Claude Code) Serverstatus überprüfen241# (within Claude Code) Check server status
242/mcp242/mcp
243```243```
244 244
245Wenn Sie einen Remote-Server entfernen, löscht Claude Code auch die OAuth-Token und die Client-Registrierung, die es für diesen Server gespeichert hat. Claude Code widerruft die Token nicht beim Autorisierungsserver, der sie ausgestellt hat. Um die Token zu widerrufen, sofern der Autorisierungsserver einen Widerruf unterstützt, führen Sie [`claude mcp logout <name>`](#authenticate-from-the-command-line) in Ihrer Shell vor `claude mcp remove <name>` aus.245Wenn Sie einen Remote-Server entfernen, löscht Claude Code auch die OAuth-Token und die Client-Registrierung, die es für diesen Server gespeichert hat. Claude Code widerruft die Token nicht beim Autorisierungsserver, der sie ausgestellt hat. Um die Token dort zu widerrufen, wo der Autorisierungsserver einen Widerruf unterstützt, führen Sie [`claude mcp logout <name>`](#authenticate-from-the-command-line) in Ihrer Shell vor `claude mcp remove <name>` aus.
246 246
247#### Serverstatus247#### Serverstatus
248 248
249`claude mcp add` bestätigt ein erfolgreiches Hinzufügen durch Ausgabe einer `Added ...`-Zeile, was bedeutet, dass die Konfiguration geschrieben wurde. Wenn der Befehl stattdessen eine `was not saved`-Meldung ausgibt, siehe [MCP-Server wurde nicht gespeichert oder entfernt](https://code.claude.com/docs/de/errors.md#mcp-server-was-not-saved-or-removed); für eine `may not have been saved`-Meldung siehe [MCP-Server wurde möglicherweise nicht gespeichert oder entfernt](https://code.claude.com/docs/de/errors.md#mcp-server-may-not-have-been-saved-or-removed).249`claude mcp add` bestätigt ein erfolgreiches Hinzufügen durch die Ausgabe einer Zeile `Added ...`, was bedeutet, dass die Konfiguration geschrieben wurde. Wenn der Befehl stattdessen eine Meldung `was not saved` ausgibt, siehe [MCP-Server wurde nicht gespeichert oder entfernt](https://code.claude.com/docs/de/errors.md#mcp-server-was-not-saved-or-removed); bei einer Meldung `may not have been saved` siehe [MCP-Server wurde möglicherweise nicht gespeichert oder entfernt](https://code.claude.com/docs/de/errors.md#mcp-server-may-not-have-been-saved-or-removed).
250 250
251`claude mcp list` zeigt neben jedem aufgelisteten Server einen Gesundheitsstatus an, wie `✔ Connected`, `! Needs authentication` oder `✘ Failed to connect`. Ein Fehlerstatus bedeutet, dass Claude Code keine Verbindung zu diesem Server herstellen konnte, nicht dass der List-Befehl fehlgeschlagen ist.251`claude mcp list` zeigt neben jedem aufgelisteten Server einen Integritätsstatus an, etwa `✔ Connected`, `! Needs authentication` oder `✘ Failed to connect`. Ein Fehlerstatus bedeutet, dass Claude Code keine Verbindung zu diesem Server herstellen konnte, nicht dass der Listenbefehl fehlgeschlagen ist.
252 252
253Die Statuse in dieser Liste melden eine Konfigurationsentscheidung statt eines Verbindungsversuchs, daher gibt Claude Code sie aus, ohne sich mit dem Server zu verbinden:253Die Status in dieser Liste melden eine Konfigurationsentscheidung statt eines Verbindungsversuchs, daher gibt Claude Code sie aus, ohne sich mit dem Server zu verbinden:
254 254
255* ``⏸ Pending approval (run `claude` to approve)``: ein projektbezogener Server aus `.mcp.json`, den Sie noch nicht genehmigt haben. Claude Code zeigt ihn sowohl in `claude mcp list` als auch in `claude mcp get <name>` an. Führen Sie `claude` interaktiv aus, um ihn zu prüfen und zu genehmigen.255* ``⏸ Pending approval (run `claude` to approve)``: ein projektbezogener Server aus `.mcp.json`, den Sie noch nicht genehmigt haben. Claude Code zeigt ihn sowohl in `claude mcp list` als auch in `claude mcp get <name>` an. Führen Sie `claude` interaktiv aus, um ihn zu prüfen und zu genehmigen.
256* `✘ Rejected (see disabledMcpjsonServers in settings)`: ein `.mcp.json`-Server, den ein [`disabledMcpjsonServers`](https://code.claude.com/docs/de/settings-reference#disabledmcpjsonservers)-Eintrag ablehnt. Claude Code zeigt ihn nur in `claude mcp get <name>`.256* `✘ Rejected (see disabledMcpjsonServers in settings)`: ein `.mcp.json`-Server, den ein [`disabledMcpjsonServers`](https://code.claude.com/docs/de/settings-reference#disabledmcpjsonservers)-Eintrag ablehnt. Claude Code zeigt ihn nur in `claude mcp get <name>` an.
257* `⊘ Disabled for this project (re-enable via /mcp)`: ein Server, den die [`disabledMcpServers`](#disable-a-server-without-removing-it)-Liste des Projekts nennt. Claude Code zeigt ihn sowohl in `claude mcp list` als auch in `claude mcp get <name>`. Schalten Sie den Server über das `/mcp`-Panel wieder ein.257* `⊘ Disabled for this project (re-enable via /mcp)`: ein Server, der in der Liste [`disabledMcpServers`](#disable-a-server-without-removing-it) des Projekts steht. Claude Code zeigt ihn sowohl in `claude mcp list` als auch in `claude mcp get <name>` an. Schalten Sie den Server über das `/mcp`-Panel wieder ein.
258* `✘ Blocked by enterprise managed policy`: ein Server, den eine der Richtlinien Ihrer Organisation ablehnt. Claude Code zeigt ihn sowohl in `claude mcp list` als auch in `claude mcp get <name>` an. Ein Server, der durch eine Allowlist, eine Denylist oder eine andere Einschränkung in der [verwalteten MCP-Konfiguration](https://code.claude.com/docs/de/managed-mcp.md#how-restrictions-appear-to-users) blockiert wird, ist in beiden Befehlen ausgeblendet, statt mit diesem Status angezeigt zu werden. Fragen Sie Ihren Administrator, welche Richtlinie den Server blockiert.258* `✘ Blocked by enterprise managed policy`: ein Server, den eine der Richtlinien Ihrer Organisation ablehnt. Claude Code zeigt ihn sowohl in `claude mcp list` als auch in `claude mcp get <name>` an. Ein Server, der durch eine Allowlist, eine Denylist oder eine andere Einschränkung in der [verwalteten MCP-Konfiguration](https://code.claude.com/docs/de/managed-mcp.md#how-restrictions-appear-to-users) blockiert wird, wird in beiden Befehlen ausgeblendet, statt mit diesem Status angezeigt zu werden. Fragen Sie Ihren Administrator, welche Richtlinie den Server blockiert.
259 259
260#### Genehmigungen von Projektservern und Workspace-Vertrauen260#### Genehmigungen von Projektservern und Workspace-Vertrauen
261 261
262`claude mcp list` und `claude mcp get` lesen `.mcp.json`-Genehmigungen nur aus Einstellungsdateien, die nicht in das Repository eingecheckt werden, bis Sie dem Workspace vertrauen, indem Sie `claude` darin ausführen und den Workspace-Vertrauensdialog akzeptieren. Ein geklontes Repository kann seine eigenen Server nicht genehmigen: [`enableAllProjectMcpServers`](https://code.claude.com/docs/de/settings-reference#enableallprojectmcpservers) oder [`enabledMcpjsonServers`](https://code.claude.com/docs/de/settings-reference#enabledmcpjsonservers), die in die `.claude/settings.json` des Projekts eingecheckt werden, werden in einem nicht vertrauenswürdigen Ordner ignoriert, und der Server bleibt bei `⏸ Pending approval`, statt verbunden und auf seinen Zustand geprüft zu werden.262`claude mcp list` und `claude mcp get` lesen `.mcp.json`-Genehmigungen nur aus Einstellungsdateien, die nicht im Repository eingecheckt sind, bis Sie dem Workspace vertrauen, indem Sie `claude` darin ausführen und den Vertrauensdialog für den Workspace akzeptieren. Ein geklontes Repository kann seine eigenen Server nicht genehmigen: [`enableAllProjectMcpServers`](https://code.claude.com/docs/de/settings-reference#enableallprojectmcpservers) oder [`enabledMcpjsonServers`](https://code.claude.com/docs/de/settings-reference#enabledmcpjsonservers), die in der `.claude/settings.json` des Projekts committet sind, werden in einem nicht vertrauenswürdigen Ordner ignoriert, und der Server bleibt bei `⏸ Pending approval`, statt verbunden und auf Integrität geprüft zu werden.
263 263
264Genehmigungen aus diesen Quellen gelten weiterhin in einem nicht vertrauenswürdigen Ordner:264Genehmigungen aus diesen Quellen gelten auch in einem nicht vertrauenswürdigen Ordner:
265 265
266* Ihre Benutzer-`~/.claude/settings.json`266* Ihre Benutzerdatei `~/.claude/settings.json`
267* verwaltete Einstellungen267* verwaltete Einstellungen
268* Einstellungen, die mit `--settings` übergeben werden268* mit `--settings` übergebene Einstellungen
269 269
270Claude Code wendet auch Genehmigungen aus einer nicht verfolgten `.claude/settings.local.json` an, aber es führt git aus, um zu überprüfen, ob die Datei verfolgt wird, und führt diese Überprüfung nur in einem [vertrauenswürdigen Ordner](https://code.claude.com/docs/de/permissions.md#project-allow-rules-and-workspace-trust) durch. In einem Ordner, dem Sie noch nie vertraut haben, wartet Claude Code auf den Vertrauensdialog, bevor die Genehmigungen der Datei angewendet werden, es sei denn, der Ordner ist Ihr eigenes Konfigurationsheim: Ihr Home-Verzeichnis oder ein Verzeichnis, dessen `.claude` Sie als [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/de/env-vars) gesetzt haben. Vor v2.1.207 wendete Claude Code Genehmigungen aus einer nicht verfolgten `.claude/settings.local.json` auch in einem Ordner an, dem Sie noch nie vertraut hatten.270Claude Code wendet auch Genehmigungen aus einer nicht versionierten `.claude/settings.local.json` an, führt aber git aus, um zu prüfen, ob die Datei versioniert ist, und führt diese Prüfung nur in einem [vertrauenswürdigen Ordner](https://code.claude.com/docs/de/permissions.md#project-allow-rules-and-workspace-trust) aus. In einem Ordner, dem Sie nie vertraut haben, wartet Claude Code auf den Vertrauensdialog, bevor es die Genehmigungen der Datei anwendet, es sei denn, der Ordner ist Ihr eigenes Konfigurationsverzeichnis: Ihr Home-Verzeichnis oder ein Verzeichnis, dessen `.claude` Sie als [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/de/env-vars) festgelegt haben. Vor v2.1.207 wendete Claude Code Genehmigungen aus einer nicht versionierten `.claude/settings.local.json` auch in einem Ordner an, dem Sie nie vertraut hatten.
271 271
272Ein `disabledMcpjsonServers`-Eintrag in einer beliebigen Einstellungsdatei lehnt den Server weiterhin ab.272Ein `disabledMcpjsonServers`-Eintrag in einer beliebigen Einstellungsdatei lehnt den Server weiterhin ab.
273 273
274#### Serverstatus-Detail274#### Details zum Serverstatus
275 275
276In `/mcp`, einschließlich des Menüs eines Servers dort, und im [`/plugin`](https://code.claude.com/docs/de/plugins/install)-Manager kann ein Remote-HTTP- oder SSE-Server, den Sie zuvor verwendet haben, einen `cached`-Status wie `cached 2h ago · connects on first use · 5 tools` anzeigen. Claude Code hat die Werkzeugliste des Servers aus seinem Erkennungs-Cache geladen, der in einer vorherigen Sitzung gespeichert wurde, anstatt beim Start zu verbinden, und Claude Code verbindet den Server das erste Mal, wenn Claude eines der Werkzeuge des Servers aufruft. Die Werkzeuge sind ab Ihrer ersten Nachricht verfügbar, daher müssen Sie nichts tun. Der Erkennungs-Cache und sein `cached`-Status erfordern Claude Code v2.1.221 oder später.276In `/mcp`, einschließlich des dortigen Menüs eines Servers, und im [`/plugin`](https://code.claude.com/docs/de/plugins/install)-Manager kann ein Remote-HTTP- oder SSE-Server, den Sie bereits verwendet haben, einen `cached`-Status wie `cached 2h ago · connects on first use · 5 tools` anzeigen. Claude Code hat die Tool-Liste des Servers aus seinem Discovery-Cache geladen, der in einer früheren Sitzung gespeichert wurde, statt sich beim Start zu verbinden, und Claude Code verbindet den Server, wenn Claude zum ersten Mal eines der Tools des Servers aufruft. Die Tools sind ab Ihrer ersten Nachricht verfügbar, Sie müssen also nichts tun. Der Discovery-Cache und sein `cached`-Status erfordern Claude Code v2.1.221 oder höher.
277 277
278Der Erkennungs-Cache ist standardmäßig deaktiviert, es sei denn, ein schrittweiser Rollout hat ihn für Ihr Konto aktiviert. Setzen Sie [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/de/env-vars), um ihn einzuschalten, oder `0`, um ihn deaktiviert zu halten, auch wenn der Rollout ihn aktiviert hat. Vor v2.1.238 war der Cache standardmäßig aktiviert.278Der Discovery-Cache ist standardmäßig deaktiviert, sofern ihn kein schrittweiser Rollout für Ihr Konto aktiviert hat. Setzen Sie [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/de/env-vars), um ihn einzuschalten, oder `0`, um ihn auch dann ausgeschaltet zu lassen, wenn der Rollout ihn aktiviert hat. Vor v2.1.238 war der Cache standardmäßig aktiviert.
279 279
280Wenn Sie **Disable** oder **Clear authentication** aus dem Menü eines Servers in `/mcp` auswählen, verwirft Claude Code auch den Cache-Eintrag dieses Servers. **Reconnect** verwirft ihn auch auf einem verbundenen oder fehlgeschlagenen Server; auf einem `cached`-Server verbindet **Reconnect** den Server jetzt und behält den Eintrag. Das nächste Mal, wenn Claude Code sich mit dem Server verbindet, nachdem der Eintrag verworfen wurde, ruft es die Werkzeugliste vom Server ab, anstatt sie aus dem Cache zu holen.280Wenn Sie im Menü eines Servers in `/mcp` **Disable** oder **Clear authentication** auswählen, verwirft Claude Code auch den Cache-Eintrag dieses Servers. **Reconnect** verwirft ihn ebenfalls bei einem verbundenen oder fehlgeschlagenen Server; bei einem `cached`-Server verbindet **Reconnect** den Server sofort und behält den Eintrag. Wenn Claude Code sich nach dem Verwerfen des Eintrags das nächste Mal mit dem Server verbindet, ruft es die Tool-Liste vom Server statt aus dem Cache ab.
281 281
282##### Verbindungsfehler und nicht konfigurierte Server282##### Verbindungsfehler und nicht konfigurierte Server
283 283
284Wenn der Status eines Servers `✘ Failed to connect` lautet, hängt `claude mcp list` die Fehlerdetails an diese Statuszeile an, und `claude mcp get <name>` zeigt sie in einer Zeile `Issue:` an. Die Details sind der HTTP-Status oder Fehlercode sowie jeglicher Fehlertext, den der Server zurückgegeben hat. Die Detailansicht des Servers in `/mcp` enthält denselben vom Server gemeldeten Text in ihrer Zeile `Issue:`.284Wenn der Status eines Servers `✘ Failed to connect` lautet, hängt `claude mcp list` die Fehlerdetails an diese Statuszeile an, und `claude mcp get <name>` zeigt sie in einer `Issue:`-Zeile an. Die Details bestehen aus dem HTTP-Status oder Fehlercode sowie etwaigem Fehlertext, den der Server zurückgegeben hat. Die Detailansicht des Servers in `/mcp` enthält denselben vom Server gemeldeten Text in ihrer `Issue:`-Zeile.
285 285
286Claude Code entfernt anmeldedatenähnlichen Text aus diesen Details und schließt nie die expandierte Server-URL ein, die Geheimnisse enthalten kann. An einen Status `✘ Connection error` hängt Claude Code keine Details an, da der Ausnahmetext, den es dort ausgeben würde, diese URL enthalten kann.286Claude Code schwärzt anmeldedatenähnlichen Text in diesen Details und fügt nie die expandierte Server-URL ein, die Geheimnisse enthalten kann. Claude Code hängt an einen `✘ Connection error`-Status keine Details an, weil der dort ausgegebene Ausnahmetext diese URL enthalten kann.
287 287
288Wenn Sie die Authentifizierung von `/mcp` aus abschließen und die Verbindung immer noch mit einem HTTP-Status oder einem Transportfehlercode fehlschlägt, fügt Claude Code diesen Code und den Ursprung der Server-URL zur Meldung hinzu, die es nach dem Versuch ausgibt. Der Ursprung ist das Schema und der Host, plus der Port, wenn die URL einen nennt, wie `https://mcp.example.com`.288Wenn Sie die Authentifizierung über `/mcp` abschließen und die Verbindung trotzdem mit einem HTTP-Status oder einem Transportfehlercode fehlschlägt, fügt Claude Code diesen Code und den Ursprung der Server-URL in die Meldung ein, die es nach dem Versuch ausgibt. Der Ursprung besteht aus Schema und Host sowie dem Port, falls die URL einen angibt, etwa `https://mcp.example.com`.
289 289
290* Der Pfad und die Abfrage erscheinen niemals in dieser Meldung.290* Pfad und Query erscheinen nie in dieser Meldung.
291* Für einen Server im lokalen, Projekt- oder Benutzer-[Bereich](#mcp-installation-scopes) oder in verwalteter MCP-Konfiguration zeigt der Ursprung den Host wie in dieser Konfiguration geschrieben, daher wird eine `${VAR}`-Referenz im Host in der Meldung nicht erweitert.291* Bei einem Server im lokalen, Projekt- oder Benutzer-[Geltungsbereich](#mcp-installation-scopes) oder in der verwalteten MCP-Konfiguration zeigt der Ursprung den Host so, wie er in dieser Konfiguration geschrieben ist, sodass eine `${VAR}`-Referenz im Host in der Meldung nicht expandiert wird.
292* Bei einem Fehler ohne Status oder Fehlercode zeigt Claude Code den Fehlertext ohne den Ursprung.292* Bei einem Fehler ohne Status oder Fehlercode zeigt Claude Code den Fehlertext ohne den Ursprung an.
293 293
294Ein Remote-Server, dessen Konfiguration eine leere `url` hat, wird in `/mcp`, in `claude mcp list` und im [`/plugin`](https://code.claude.com/docs/de/plugins/install)-Manager als `not configured` angezeigt, und Claude Code versucht nicht, sich damit zu verbinden. Ein Plugin kann einen Platzhalter-Eintrag wie diesen für einen Connector enthalten, den Sie später konfigurieren, sodass Claude Code ihn nicht als Fehler oder Setup-Problem meldet. Die Detailansicht des Servers in `/mcp` zeigt `No URL configured for this server`; setzen Sie die `url` des Eintrags, um ihn zu verbinden.294Ein Remote-Server, dessen Konfiguration eine leere `url` hat, wird in `/mcp`, in `claude mcp list` und im [`/plugin`](https://code.claude.com/docs/de/plugins/install)-Manager als `not configured` angezeigt, und Claude Code versucht nicht, sich mit ihm zu verbinden. Ein Plugin kann einen solchen Platzhaltereintrag für einen Konnektor enthalten, den Sie später konfigurieren, sodass Claude Code ihn nicht als Fehler oder Einrichtungsproblem meldet. Die Detailansicht des Servers in `/mcp` lautet `No URL configured for this server`; setzen Sie die `url` des Eintrags, um ihn zu verbinden.
295 295
296#### Konfigurationswarnungen296#### Konfigurationswarnungen
297 297
298Claude Code warnt vor den folgenden Konfigurationsproblemen. Jeder Eintrag sagt, was Claude Code überprüft und wie die Warnung beseitigt wird:298Claude Code warnt vor den folgenden Konfigurationsproblemen. Jeder Eintrag beschreibt, was Claude Code prüft und wie Sie die Warnung beseitigen:
299 299
300* **Versteckte Leerzeichen**: Claude Code warnt, wenn ein MCP-Konfigurationswert versteckte führende oder nachfolgende Leerzeichen trägt, die oft vom Einfügen eines Tokens mit einem nachfolgenden Zeilenumbruch stammen. Claude Code überprüft `command`, `url`, jeden `args`-Eintrag und die Werte und Schlüsselnamen unter `env` und `headers`. Claude Code zeigt die Warnung in der `claude mcp list`-Ausgabe und in `/mcp` an und nennt die betroffenen Felder, ohne ihre Werte auszugeben, zum Beispiel `Leading or trailing whitespace in: headers.Authorization`. Claude Code trimmt die Leerzeichen nicht und verwendet die Werte genau wie geschrieben, daher bearbeiten Sie die Konfiguration, um sie zu entfernen.300* **Versteckte Leerzeichen**: Claude Code warnt, wenn ein MCP-Konfigurationswert versteckte führende oder nachgestellte Leerzeichen enthält, was oft vom Einfügen eines Tokens mit einem nachgestellten Zeilenumbruch herrührt. Claude Code prüft `command`, `url`, jeden `args`-Eintrag sowie die Werte und Schlüsselnamen unter `env` und `headers`. Claude Code zeigt die Warnung in der Ausgabe von `claude mcp list` und in `/mcp` an und nennt die betroffenen Felder, ohne ihre Werte wiederzugeben, zum Beispiel `Leading or trailing whitespace in: headers.Authorization`. Claude Code entfernt die Leerzeichen nicht und verwendet die Werte genau wie geschrieben. Bearbeiten Sie daher die Konfiguration, um sie zu entfernen.
301* **Gleicher Name in mehr als einem Bereich**: Wenn Sie denselben Servernamen in mehr als einem [Bereich](#mcp-installation-scopes) mit verschiedenen Endpunkten definieren, warnt Claude Code vor dem Konflikt in der `claude mcp list`-Ausgabe und in `/mcp`. Claude Code speichert OAuth-Anmeldungen pro Endpunkt, daher müssen Sie sich, wenn Sie die Definition authentifizieren, die in einem Projekt geladen wird, in einem Projekt, in dem eine andere Definition geladen wird, immer noch separat anmelden. Behalten Sie den Endpunkt, den Sie möchten, und entfernen Sie die anderen mit `claude mcp remove <name> --scope <scope>`. In der Warnung zitiert Claude Code den Endpunkt jedes Bereichs wie in Ihrer Konfiguration geschrieben, mit [`${VAR}`-Referenzen](#environment-variable-expansion-in-mcp-json) nicht erweitert, daher zeigt es niemals einen aufgelösten Wert wie einen API-Schlüssel.301* **Gleicher Name in mehr als einem Geltungsbereich**: Wenn Sie denselben Servernamen in mehr als einem [Geltungsbereich](#mcp-installation-scopes) mit unterschiedlichen Endpunkten definieren, warnt Claude Code in der Ausgabe von `claude mcp list` und in `/mcp` vor dem Konflikt. Claude Code speichert OAuth-Anmeldungen pro Endpunkt. Wenn Sie also die Definition authentifizieren, die in einem Projekt geladen wird, müssen Sie sich in einem Projekt, in dem eine andere Definition geladen wird, dennoch separat anmelden. Behalten Sie den gewünschten Endpunkt und entfernen Sie die anderen mit `claude mcp remove <name> --scope <scope>`. In der Warnung zitiert Claude Code den Endpunkt jedes Geltungsbereichs so, wie er in Ihrer Konfiguration geschrieben ist, mit nicht expandierten [`${VAR}`-Referenzen](#environment-variable-expansion-in-mcp-json), sodass es nie einen aufgelösten Wert wie einen API-Schlüssel anzeigt.
302* **Reservierte Namen**: Claude Code reserviert die Namen seiner integrierten Server, einschließlich `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview` und `Claude Browser`. Wenn Ihre Konfiguration einen Server mit einem reservierten Namen definiert, überspringt Claude Code ihn beim Laden und zeigt eine Warnung an, die Sie auffordert, ihn umzubenennen. `claude mcp add` lehnt einen reservierten Namen mit einem Fehler ab. `Claude Preview` und `Claude Browser` benennen beide den integrierten Server, den das [Vorschau-Panel der Claude Code Desktop-App](https://code.claude.com/docs/de/desktop.md#preview-your-app) verwendet.302* **Reservierte Namen**: Claude Code reserviert die Namen seiner integrierten Server, darunter `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview` und `Claude Browser`. Wenn Ihre Konfiguration einen Server mit einem reservierten Namen definiert, überspringt Claude Code ihn beim Laden und zeigt eine Warnung an, die Sie auffordert, ihn umzubenennen. `claude mcp add` lehnt einen reservierten Namen mit einem Fehler ab. `Claude Preview` und `Claude Browser` bezeichnen beide den integrierten Server, den der [Vorschaubereich der Claude Code Desktop-App](https://code.claude.com/docs/de/desktop.md#preview-your-app) verwendet.
303* **Fehlende Umgebungsvariable**: Wenn eine [`${VAR}`-Referenz](#environment-variable-expansion-in-mcp-json) in der Konfiguration eines Servers eine Variable nennt, die nicht gesetzt ist und keinen `:-default` hat, warnt Claude Code in der `claude mcp list`-Ausgabe und in `/mcp`, nennt die Variable und lädt den Server immer noch mit dem `${VAR}`-Text nicht erweitert. Setzen Sie die Variable oder fügen Sie einen `${VAR:-default}`-Fallback hinzu. In der `url` und `headers` eines Remote-Servers lesen einige Anmeldungsvariablen stattdessen [als leer](#credential-variables-that-read-as-empty), ohne Warnung.303* **Fehlende Umgebungsvariable**: Wenn eine [`${VAR}`-Referenz](#environment-variable-expansion-in-mcp-json) in der Konfiguration eines Servers eine Variable nennt, die nicht gesetzt ist und keinen `:-default` hat, warnt Claude Code in der Ausgabe von `claude mcp list` und in `/mcp` unter Nennung der Variable und lädt den Server trotzdem mit dem nicht expandierten `${VAR}`-Text. Setzen Sie die Variable oder fügen Sie einen `${VAR:-default}`-Fallback hinzu. In `url` und `headers` eines Remote-Servers werden einige Anmeldedaten-Variablen stattdessen ohne Warnung [als leer gelesen](#credential-variables-that-read-as-empty).
304 304
305#### Werkzeugverfügbarkeit305#### Verfügbarkeit von Tools
306 306
307Das `/mcp`-Panel zeigt die Werkzeuganzahl neben jedem verbundenen Server und kennzeichnet Server, die die Werkzeugfähigkeit ankündigen, aber keine Werkzeuge bereitstellen.307Das `/mcp`-Panel zeigt neben jedem verbundenen Server die Anzahl der Tools an und kennzeichnet Server, die die Tools-Fähigkeit ankündigen, aber keine Tools bereitstellen.
308 308
309##### Tool-Anzahlen in einer Cloud-Sitzung309##### Tool-Anzahlen in einer Cloud-Sitzung
310 310
311In einer [Cloud-Sitzung](https://code.claude.com/docs/de/claude-code-on-the-web.md) bedeutet eine Anzahl wie `3 of 13 tools available`, dass Claude die anderen 10 nicht verwenden kann. Prüfen Sie unter anderem diese Ursachen:311In einer [Cloud-Sitzung](https://code.claude.com/docs/de/claude-code-on-the-web.md) bedeutet eine Anzeige wie `3 of 13 tools available`, dass Claude die anderen 10 nicht verwenden kann. Prüfen Sie unter anderem diese Ursachen:
312 312
313* **Eine Deny-Regel in der `.claude/settings.json` Ihres Repositorys nennt das Tool oder seinen gesamten Server**: Entfernen Sie die [Regel](https://code.claude.com/docs/de/permissions.md#mcp), sofern [Ihre Sitzung diese Datei liest](https://code.claude.com/docs/de/settings.md#settings-in-cloud-sessions)313* **Eine Deny-Regel in der `.claude/settings.json` Ihres Repositorys nennt das Tool oder seinen gesamten Server**: Entfernen Sie die [Regel](https://code.claude.com/docs/de/permissions.md#mcp), sofern [Ihre Sitzung diese Datei liest](https://code.claude.com/docs/de/settings.md#settings-in-cloud-sessions)
314* **Der vollständige Name des Tools ist länger als 128 Zeichen**: Folgen Sie [den Schritten für einen zu langen Namen](https://code.claude.com/docs/de/errors.md#mcp-tool-name-over-128-characters)314* **Der vollständige Name des Tools ist länger als 128 Zeichen**: Folgen Sie [den Schritten für einen zu langen Namen](https://code.claude.com/docs/de/errors.md#mcp-tool-name-over-128-characters)
315* **Der Server listet das Tool für seine eigene Oberfläche und nicht für Claude**: Wenn Sie den Server pflegen, fügen Sie `model` zu `_meta.ui.visibility` des Tools hinzu, um Claude das Tool zu geben. Andernfalls gibt es nichts zu beheben.315* **Der Server listet das Tool für seine eigene Oberfläche und nicht für Claude auf**: Wenn Sie den Server pflegen, fügen Sie `model` zu `_meta.ui.visibility` des Tools hinzu, um Claude das Tool zu geben. Andernfalls gibt es nichts zu beheben.
316 316
317##### Tools von einem Server, der sich noch verbindet317##### Tools von einem Server, der sich noch verbindet
318 318
319Wenn Ihre Anfrage Werkzeuge von einem Server benötigt, der sich noch im Hintergrund verbindet, wartet Claude auf diesen Server, bevor er fortfährt. Wie das Warten geschieht, hängt von Ihrer Konfiguration ab:319Wenn Ihre Anfrage Tools von einem Server benötigt, der sich noch im Hintergrund verbindet, wartet Claude auf diesen Server, bevor es fortfährt. Wie das Warten abläuft, hängt von Ihrer Konfiguration ab:
320 320
321* **Mit [Werkzeugsuche](#scale-with-mcp-tool-search), der Standard**: Das Warten geschieht innerhalb des `ToolSearch`-Aufrufs.321* **Mit [Tool-Suche](#scale-with-mcp-tool-search), der Standardeinstellung**: Das Warten findet innerhalb des `ToolSearch`-Aufrufs statt.
322* **Ohne Werkzeugsuche**: Claude verwendet stattdessen das `WaitForMcpServers`-Werkzeug. Konfigurationen ohne Werkzeugsuche umfassen `ENABLE_TOOL_SEARCH=false` und ein Modell, das älter als Claude Opus 4.5, Claude Sonnet 4.5 und Claude Haiku 4.5 ist, auf Google Clouds Agent Platform. Für ein `ANTHROPIC_BASE_URL`-Gateway siehe [Werkzeugsuche über ein LLM-Gateway](#tool-search-through-a-gateway).322* **Ohne Tool-Suche**: Claude verwendet stattdessen das Tool `WaitForMcpServers`. Zu den Konfigurationen ohne Tool-Suche gehören `ENABLE_TOOL_SEARCH=false` und ein Modell, das älter ist als Claude Opus 4.5, Claude Sonnet 4.5 und Claude Haiku 4.5, auf der Agent Platform von Google Cloud. Für ein `ANTHROPIC_BASE_URL`-Gateway siehe [Tool-Suche über ein LLM-Gateway](#tool-search-through-a-gateway).
323* **Bei einer Microsoft Foundry-[Bereitstellung auf Azure gehostet](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude startet auf dem Werkzeugsuche-Pfad statt mit `WaitForMcpServers`, da Claude Code die serverseitige Ablehnung der Bereitstellung nur von der API entdeckt. Nachdem Claude Code diese Bereitstellung auf [vorausgehendes Laden](#scale-with-mcp-tool-search) umschaltet, werden Werkzeuge von einem Server, der seinen Verbindungsaufbau abschließt, bei Claudes nächster Anfrage verfügbar.323* **Bei einem Microsoft Foundry-[Deployment, das auf Azure gehostet wird](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude startet auf dem Tool-Suche-Pfad statt mit `WaitForMcpServers`, da Claude Code die serverseitige Ablehnung des Deployments erst über die API feststellt. Nachdem Claude Code dieses Deployment auf [vorab geladene Tools](#scale-with-mcp-tool-search) umgestellt hat, werden Tools von einem Server, der seine Verbindung abschließt, bei Claudes nächster Anfrage verfügbar.
324 324
325Mit aktivierter Werkzeugsuche, wenn ein Server seinen Verbindungsaufbau abschließt, während Claude arbeitet, listet Claude Code die Werkzeugnamen des Servers bei Claudes nächster Anfrage im selben Turn auf. Claude kann dann diese Werkzeuge suchen und aufrufen, ohne auf Ihre nächste Nachricht zu warten.325Wenn die Tool-Suche aktiviert ist und ein Server seine Verbindung abschließt, während Claude arbeitet, listet Claude Code Claude die Tool-Namen des Servers bei seiner nächsten Anfrage im selben Turn auf. Claude kann diese Tools dann suchen und aufrufen, ohne auf Ihre nächste Nachricht zu warten.
326 326
327Nachdem Sie eine Sitzung fortgesetzt haben, kann Claude ein Tool aus der gespeicherten Konversation aufrufen, während der MCP-Server des Tools noch eine Verbindung herstellt. Während der Server seinen ersten Verbindungsversuch unternimmt, hält Claude Code den Aufruf bis zu 10 Sekunden zurück und führt ihn aus, sobald das Tool verfügbar ist. Wenn der Server nicht rechtzeitig eine Verbindung herstellt oder es bereits [nach einem fehlgeschlagenen Versuch erneut versucht](#automatic-reconnection), schlägt der Aufruf mit dem [Tool-Fehler](https://code.claude.com/docs/de/errors.md#no-such-tool-available) `No such tool available` fehl.327Nachdem Sie eine Sitzung fortgesetzt haben, kann Claude ein Tool aus der gespeicherten Konversation aufrufen, während sich der MCP-Server des Tools noch verbindet. Solange sich der Server im ersten Verbindungsversuch befindet, hält Claude Code den Aufruf bis zu 10 Sekunden zurück und führt ihn aus, sobald das Tool verfügbar ist. Wenn sich der Server nicht rechtzeitig verbindet oder bereits [nach einem fehlgeschlagenen Versuch erneut versucht](#automatic-reconnection), schlägt der Aufruf mit dem [Tool-Fehler](https://code.claude.com/docs/de/errors.md#no-such-tool-available) `No such tool available` fehl.
328 328
329### Einen Server deaktivieren, ohne ihn zu entfernen329### Einen Server deaktivieren, ohne ihn zu entfernen
330 330
331Schalten Sie einen Server im `/mcp`-Panel aus, um Claude Code daran zu hindern, sich damit zu verbinden, ohne seine Konfiguration zu verlieren. Claude Code listet den Server immer noch in `/mcp` auf, gekennzeichnet als deaktiviert.331Schalten Sie einen Server im `/mcp`-Panel aus, damit Claude Code sich nicht mehr mit ihm verbindet, ohne dass seine Konfiguration verloren geht. Claude Code listet den Server weiterhin in `/mcp` auf, als deaktiviert gekennzeichnet.
332 332
333Wenn Sie einen Server umschalten, zeichnet Claude Code Ihre Wahl pro Projekt in `~/.claude.json` in einer von zwei Listen auf, die disjunkte Sätze von Servern abdecken:333Wenn Sie einen Server umschalten, speichert Claude Code Ihre Wahl pro Projekt in `~/.claude.json`, in einer von zwei Listen, die disjunkte Mengen von Servern abdecken:
334 334
335* `disabledMcpServers`: eine Opt-out-Liste für benutzerkonfigurierte Server, Plugin-Server, Server, die Ihre Organisation [durch verwaltete Einstellungen bereitstellt](https://code.claude.com/docs/de/managed-mcp.md#provide-servers-through-managed-settings), die claude.ai-Connectoren, die Claude Code [selbst abruft](#how-connectors-reach-claude-code), und integrierte Server, die standardmäßig aktiviert sind. Claude Code verbindet sich nicht mit einem Server, den Sie hier auflisten. Wenn Sie einen claude.ai-Connector mit dem pro-Projekt-`/mcp`-Umschalter deaktivieren, der in [claude.ai-Connectoren deaktivieren](#disable-claude-ai-connectors) beschrieben ist, schreibt Claude Code ihn unter seinem Anzeigenamen in diese Liste, zum Beispiel `claude.ai Slack`.335* `disabledMcpServers`: eine Opt-out-Liste für benutzerkonfigurierte Server, Plugin-Server, Server, die Ihre Organisation [über verwaltete Einstellungen bereitstellt](https://code.claude.com/docs/de/managed-mcp.md#provide-servers-through-managed-settings), die claude.ai-Konnektoren, die Claude Code [selbst abruft](#how-connectors-reach-claude-code), sowie integrierte Server, die standardmäßig eingeschaltet sind. Claude Code verbindet sich nicht mit einem Server, den Sie hier aufführen. Wenn Sie einen claude.ai-Konnektor mit dem projektbezogenen `/mcp`-Schalter deaktivieren, der unter [claude.ai-Konnektoren deaktivieren](#disable-claude-ai-connectors) beschrieben ist, schreibt Claude Code ihn unter seinem Anzeigenamen in diese Liste, zum Beispiel `claude.ai Slack`.
336* `enabledMcpServers`: eine Opt-in-Liste für integrierte Server, die standardmäßig deaktiviert sind, wie `computer-use`. Claude Code verbindet sich mit einem standardmäßig deaktivierten Server nur, wenn Sie ihn hier auflisten.336* `enabledMcpServers`: eine Opt-in-Liste für integrierte Server, die standardmäßig ausgeschaltet sind, etwa `computer-use`. Claude Code verbindet sich mit einem standardmäßig ausgeschalteten Server nur, wenn Sie ihn hier aufführen.
337 337
338Claude Code konsultiert genau eine der beiden Listen für jeden Server, daher überschreibt keine Liste die andere. Wenn Sie einen regulären Server zu `enabledMcpServers` hinzufügen oder einen standardmäßig deaktivierten integrierten Server zu `disabledMcpServers`, ignoriert Claude Code den Eintrag.338Claude Code berücksichtigt für jeden Server genau eine der beiden Listen, sodass keine Liste die andere überschreibt. Wenn Sie einen regulären Server zu `enabledMcpServers` oder einen standardmäßig ausgeschalteten integrierten Server zu `disabledMcpServers` hinzufügen, ignoriert Claude Code den Eintrag.
339 339
340`disabledMcpServers` und `enabledMcpServers` sind nicht verwandt mit [`enabledMcpjsonServers`](https://code.claude.com/docs/de/settings-reference#enabledmcpjsonservers) und [`disabledMcpjsonServers`](https://code.claude.com/docs/de/settings-reference#disabledmcpjsonservers), die die Genehmigung von Servern steuern, die in der `.mcp.json`-Datei eines Projekts definiert sind.340`disabledMcpServers` und `enabledMcpServers` haben nichts mit [`enabledMcpjsonServers`](https://code.claude.com/docs/de/settings-reference#enabledmcpjsonservers) und [`disabledMcpjsonServers`](https://code.claude.com/docs/de/settings-reference#disabledmcpjsonservers) zu tun, die die Genehmigung von Servern steuern, die in der `.mcp.json`-Datei eines Projekts definiert sind.
341 341
342### MCP-Client-Runtimes342### MCP-Client-Laufzeitumgebungen
343 343
344Claude Code verbindet sich mit MCP-Servern über eine von zwei Client-Runtimes. Die v1-Runtime basiert auf MCP TypeScript SDK 1.x. Die v2-Runtime ist derselbe Code auf [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), das MCP-Protokollrevision 2026-07-28 hinzufügt. Der Rest dieser Seite gilt für beide Runtimes, außer wo ein Abschnitt die v2-Runtime nennt.344Claude Code verbindet sich über eine von zwei Client-Laufzeitumgebungen mit MCP-Servern. Die v1-Laufzeitumgebung basiert auf dem MCP TypeScript SDK 1.x. Die v2-Laufzeitumgebung ist derselbe Code auf dem [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), das die MCP-Protokollrevision 2026-07-28 hinzufügt. Der Rest dieser Seite gilt für beide Laufzeitumgebungen, außer wo ein Abschnitt die v2-Laufzeitumgebung nennt.
345 345
346Claude Code wählt jedes Mal, wenn Sie es starten, eine Runtime aus und behält sie bis zum Beenden. In Sitzungen, in denen es [Feature-Flags abruft](https://code.claude.com/docs/de/env-vars.md#features-that-need-feature-flag-fetching), verwendet es die v2-Runtime auf Claude Code v2.1.232 oder später.346Claude Code wählt bei jedem Start eine Laufzeitumgebung und behält sie bis zum Beenden bei. In Sitzungen, in denen es [Feature-Flags abruft](https://code.claude.com/docs/de/env-vars.md#features-that-need-feature-flag-fetching), verwendet es ab Claude Code v2.1.232 die v2-Laufzeitumgebung.
347 347
348In den Sitzungen, in denen es keine Feature-Flags abruft, verwendet Claude Code die v2-Runtime standardmäßig auf Claude Code v2.1.274 oder später:348In den Sitzungen, in denen es keine Feature-Flags abruft, verwendet Claude Code ab Claude Code v2.1.274 standardmäßig die v2-Laufzeitumgebung:
349 349
350* Sitzungen auf Amazon Bedrock, Claude Platform auf AWS, Google Clouds Agent Platform oder Microsoft Foundry, es sei denn, eine Host-Plattform, die Claude Code einbettet, setzt [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/de/env-vars)350* Sitzungen auf Amazon Bedrock, Claude Platform on AWS, der Agent Platform von Google Cloud oder Microsoft Foundry, sofern nicht eine Host-Plattform, die Claude Code einbettet, [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/de/env-vars) setzt
351* Sitzungen, die sich über ein [Claude-Apps-Gateway](https://code.claude.com/docs/de/claude-apps-gateway) anmelden351* Sitzungen, die über ein [Claude Apps Gateway](https://code.claude.com/docs/de/claude-apps-gateway) angemeldet sind
352* Sitzungen, in denen Sie Telemetrie oder Feature-Flag-Abruf deaktivieren, zum Beispiel mit `DISABLE_TELEMETRY`352* Sitzungen, in denen Sie Telemetrie oder das Abrufen von Feature-Flags ausschalten, zum Beispiel mit `DISABLE_TELEMETRY`
353 353
354Auf v2 gilt außerdem für Claude Code:354Unter v2 verhält sich Claude Code außerdem wie folgt:
355 355
356* Es fragt HTTP-, Stdio- und claude.ai-Konnektor-Server, ob sie die neuere Revision unterstützen, und verwendet sie mit denen, die dies tun. Dazu gehören die Konnektoren von Cloud- und [Remote Control](https://code.claude.com/docs/de/remote-control.md)-Sitzungen. Es verbindet sich mit jedem anderen Server wie v1.356* Es fragt HTTP-, stdio- und claude.ai-Konnektor-Server, ob sie die neuere Revision unterstützen, und verwendet sie mit den Servern, die dies tun. Dazu gehören die Konnektoren von Cloud- und [Remote Control](https://code.claude.com/docs/de/remote-control.md)-Sitzungen. Mit allen anderen Servern verbindet sich Claude Code wie unter v1.
357* Es empfängt `list_changed`-Benachrichtigungen von Servern auf der neueren Revision über einen [Stream, den es offen hält](#notification-streams-on-the-v2-runtime).357* Es empfängt `list_changed`-Benachrichtigungen von Servern mit der neueren Revision über einen [Stream, den es offen hält](#notification-streams-on-the-v2-runtime).
358* Es registriert keinen [Channel](#push-messages-with-channels)-Server, der sich auf der neueren Revision verbindet, da diese Revision keine Channel-Nachrichten tragen kann.358* Es registriert keinen [Channel](#push-messages-with-channels)-Server, der sich mit der neueren Revision verbindet, da diese Revision keine Channel-Nachrichten übertragen kann.
359* Es lässt eine [MCP-OAuth-Anmeldung](#authenticate-with-remote-mcp-servers) fehlschlagen, deren Autorisierungsantwort einen unerwarteten Aussteller nennt.359* Es lässt eine [MCP-OAuth-Anmeldung](#authenticate-with-remote-mcp-servers) fehlschlagen, deren Autorisierungsantwort einen unerwarteten Aussteller nennt.
360* Es sendet [MCP-OAuth](#authenticate-with-remote-mcp-servers)-Anmeldedaten nur an einen Token-Endpunkt, der über HTTPS oder bei `localhost`, `127.0.0.1` oder `::1` bereitgestellt wird. Die Anmeldung schlägt für einen Server fehl, dessen Token-Endpunkt einfaches `http://` irgendwo anders ist, wie ein Gerät in Ihrem lokalen Netzwerk. Siehe [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/de/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).360* Es sendet [MCP-OAuth](#authenticate-with-remote-mcp-servers)-Anmeldedaten nur an einen Token-Endpunkt, der über HTTPS oder unter `localhost`, `127.0.0.1` oder `::1` bereitgestellt wird. Die Anmeldung schlägt bei einem Server fehl, dessen Token-Endpunkt an anderer Stelle einfaches `http://` ist, etwa ein Gerät in Ihrem lokalen Netzwerk. Siehe [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/de/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).
361 361
362Anthropic kann einen bestimmten Server mit einem Feature-Flag, das Claude Code abruft, beim früheren Protokoll oder außerhalb dieses Streams halten. Um die Laufzeit selbst zu wählen, setzen Sie [`MCP_SDK_GENERATION`](https://code.claude.com/docs/de/env-vars) auf `v1` oder `v2`.362Anthropic kann einen bestimmten Server mit einem Feature-Flag, das Claude Code abruft, beim früheren Protokoll oder außerhalb dieses Streams halten. Um die Laufzeitumgebung selbst zu wählen, setzen Sie [`MCP_SDK_GENERATION`](https://code.claude.com/docs/de/env-vars) auf `v1` oder `v2`.
363 363
364Um festzulegen, ob Claude Code Server nach der neueren Revision fragt, setzen Sie [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/de/env-vars) auf `auto` oder `legacy`. Wenn diese Variable nicht gesetzt ist, kann Claude Code die Abfrage bei einem stdio-Server 7 Tage lang überspringen, zum Beispiel nachdem sich der Server bei der Abfrage beendet hat. Damit ein aktualisierter Server früher gefragt wird, setzen Sie `auto`.364Um festzulegen, ob Claude Code Server nach der neueren Revision fragt, setzen Sie [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/de/env-vars) auf `auto` oder `legacy`. Ist diese Variable nicht gesetzt, kann Claude Code die Nachfrage bei einem stdio-Server für 7 Tage überspringen, zum Beispiel nachdem sich der Server bei der Nachfrage beendet hat. Damit ein aktualisierter Server früher gefragt wird, setzen Sie `auto`.
365 365
366### Dynamische Werkzeugaktualisierungen366### Dynamische Tool-Aktualisierungen
367 367
368Ein MCP-Server kann die Tools, Prompts oder Ressourcen, die er anbietet, während der Verbindung ändern und eine `list_changed`-Benachrichtigung senden. Wenn eine solche Benachrichtigung eintrifft:368Ein MCP-Server kann die angebotenen Tools, Prompts oder Ressourcen ändern, während er verbunden ist, und eine `list_changed`-Benachrichtigung senden. Wenn eine solche eintrifft:
369 369
370* **In einer interaktiven Terminal-Sitzung** ruft Claude Code die aktualisierte Liste von diesem Server ab, sodass Sie ihn nicht erneut verbinden müssen.370* **In einer interaktiven Terminal-Sitzung** ruft Claude Code die aktualisierte Liste von diesem Server ab, sodass Sie ihn nicht neu verbinden müssen.
371* **Im [nicht interaktiven Modus](https://code.claude.com/docs/de/headless.md) mit dem Flag `-p` und im [Agent SDK](https://code.claude.com/docs/de/agent-sdk/overview.md)** aktualisiert Claude Code bei diesen Benachrichtigungen nur die Tool-Liste.371* **Im [nicht interaktiven Modus](https://code.claude.com/docs/de/headless.md) mit dem Flag `-p` und im [Agent SDK](https://code.claude.com/docs/de/agent-sdk/overview.md)** aktualisiert Claude Code bei diesen Benachrichtigungen nur die Tool-Liste.
372 372
373Wenn eine Aktualisierungsanfrage fehlschlägt, behält Claude Code die zuvor entdeckten Werkzeuge, Prompts und Ressourcen des Servers, bis eine spätere Aktualisierung erfolgreich ist.373Wenn eine Aktualisierungsanfrage fehlschlägt, behält Claude Code die zuvor ermittelten Tools, Prompts und Ressourcen des Servers bei, bis eine spätere Aktualisierung erfolgreich ist.
374 374
375#### Benachrichtigungsströme auf der v2-Runtime375#### Benachrichtigungs-Streams in der v2-Laufzeitumgebung
376 376
377Auf der [v2-Runtime](#mcp-client-runtimes) empfängt Claude Code `list_changed`-Benachrichtigungen von einem Server auf der neueren Protokollrevision über einen Stream, den es offen hält. Wenn der Stream schließt, öffnet Claude Code ihn erneut, mit zwei Grenzen:377In der [v2-Laufzeitumgebung](#mcp-client-runtimes) empfängt Claude Code `list_changed`-Benachrichtigungen von einem Server mit der neueren Protokollrevision über einen Stream, den es offen hält. Wenn der Stream geschlossen wird, öffnet Claude Code ihn erneut, mit zwei Einschränkungen:
378 378
379* **Der Stream schließt innerhalb von 10 Sekunden erneut**: Claude Code öffnet ihn bis zu dreimal erneut, dann stoppt es für diese Verbindung.379* **Der Stream schließt sich innerhalb von 10 Sekunden erneut**: Claude Code öffnet ihn bis zu dreimal erneut und hört dann für diese Verbindung auf.
380* **Der Stream bleibt länger als 10 Sekunden offen und schließt dann**, wie es Streams zu serverlosen Hosts häufig tun: Nach fünf Wiederöffnungen in einer Stunde wartet Claude Code etwa sechs Stunden vor der nächsten.380* **Der Stream bleibt länger als 10 Sekunden offen und schließt sich dann**, wie es bei Streams zu Serverless-Hosts häufig der Fall ist: Nach fünf erneuten Öffnungen innerhalb einer Stunde wartet Claude Code etwa sechs Stunden bis zur nächsten.
381 381
382Bis der Stream erneut öffnet, behalten Sie die zuletzt abgerufenen Werkzeuge, Prompts und Ressourcen des Servers. Um seine Änderungen schneller zu erkennen, verbinden Sie den Server von `/mcp` erneut.382Bis der Stream wieder geöffnet wird, behalten Sie die zuletzt abgerufenen Tools, Prompts und Ressourcen des Servers. Um seine Änderungen früher zu übernehmen, verbinden Sie den Server über `/mcp` neu.
383 383
384### Automatische Wiederverbindung384### Automatische Wiederverbindung
385 385
386Claude Code verbindet einen Remote-Server erneut, der während einer Sitzung abbricht, und versucht die erste Verbindung eines HTTP- oder SSE-Servers nach einem vorübergehenden Fehler erneut. Für einen Stdio-Server siehe [Stdio-Server, die beendet werden oder nicht starten](#stdio-servers-that-exit-or-fail-to-start).386Claude Code verbindet einen Remote-Server, dessen Verbindung während der Sitzung abbricht, erneut und versucht den ersten Verbindungsaufbau eines HTTP- oder SSE-Servers nach einem vorübergehenden Fehler erneut. Für einen stdio-Server siehe [Stdio-Server, die sich beenden oder nicht starten](#stdio-servers-that-exit-or-fail-to-start).
387 387
388#### Mitten in der Sitzung abbrechende Remote-Server388#### Verbindungsabbrüche eines Remote-Servers während der Sitzung
389 389
390Claude Code versucht zunächst, einen abgebrochenen Remote-Server bis zu fünfmal mit exponentiellem Backoff erneut zu verbinden, beginnend mit einer Verzögerung von einer Sekunde, die sich jedes Mal verdoppelt:390Claude Code versucht zunächst bis zu fünfmal, einen abgebrochenen Remote-Server mit exponentiellem Backoff neu zu verbinden, beginnend mit einer Verzögerung von einer Sekunde, die sich jedes Mal verdoppelt:
391 391
392* **In einer interaktiven Sitzung**: `/mcp` zeigt den Server als ausstehend an, während Claude Code erneut verbindet. Nach fünf fehlgeschlagenen Versuchen markiert Claude Code den Server als fehlgeschlagen oder als Authentifizierung erforderlich, wenn der Server erneut autorisiert werden muss. Wenn es den Server als fehlgeschlagen markiert, sehen Sie eine `MCP server "<name>" disconnected · open /mcp to reconnect`-Benachrichtigung. Sie können es manuell von `/mcp` aus erneut versuchen.392* **In einer interaktiven Sitzung**: `/mcp` zeigt den Server als ausstehend an, während Claude Code die Verbindung wiederherstellt. Nach fünf fehlgeschlagenen Versuchen markiert Claude Code den Server als fehlgeschlagen oder als authentifizierungsbedürftig, wenn der Server eine erneute Autorisierung benötigt. Wenn es den Server als fehlgeschlagen markiert, sehen Sie eine Benachrichtigung `MCP server "<name>" disconnected · open /mcp to reconnect`. Sie können es über `/mcp` manuell erneut versuchen.
393* **In [`claude -p`](https://code.claude.com/docs/de/headless)-Läufen und [Agent SDK](https://code.claude.com/docs/de/agent-sdk/overview.md)-Sitzungen**: Claude Code unternimmt dieselben fünf Versuche, ohne `/mcp`-Panel, um sie anzuzeigen. Wenn alle fünf fehlschlagen, läuft der Lauf ohne die Tools des Servers weiter:393* **Bei [`claude -p`](https://code.claude.com/docs/de/headless)-Ausführungen und [Agent SDK](https://code.claude.com/docs/de/agent-sdk/overview.md)-Sitzungen**: Claude Code unternimmt dieselben fünf Versuche, ohne ein `/mcp`-Panel, das sie anzeigt. Wenn alle fünf fehlschlagen, läuft die Ausführung ohne die Tools des Servers weiter:
394 * **Nach einem vorübergehenden Fehler, etwa einer 5xx-Antwort oder einem Timeout**: Claude Code versucht es bei einem HTTP- oder SSE-Server im Hintergrund weiter. Die Wiederholungsversuche dauern bis zu etwa einer halben Stunde, und die Tools des Servers werden wieder verfügbar, wenn einer davon eine Verbindung herstellt. Bis dahin meldet eine Agent SDK-Sitzung den [Status](https://code.claude.com/docs/de/agent-sdk/mcp.md#error-handling) `failed`, und Ihr Code kann [den Server erneut verbinden](https://code.claude.com/docs/de/agent-sdk/mcp.md#error-handling). Um ihn in `claude -p` erneut zu verbinden, starten Sie den Lauf neu.394 * **Nach einem vorübergehenden Fehler, etwa einer 5xx-Antwort oder einer Zeitüberschreitung**: Claude Code versucht einen HTTP- oder SSE-Server im Hintergrund weiterhin erneut. Die Wiederholungsversuche dauern bis zu etwa einer halben Stunde, und die Tools des Servers werden wieder verfügbar, wenn einer davon eine Verbindung herstellt. Bis dahin meldet eine Agent SDK-Sitzung den [Status](https://code.claude.com/docs/de/agent-sdk/mcp.md#error-handling) `failed`, und Ihr Code kann [den Server neu verbinden](https://code.claude.com/docs/de/agent-sdk/mcp.md#error-handling). Um ihn in `claude -p` neu zu verbinden, starten Sie die Ausführung erneut.
395 * **Wenn der Server [eine erneute Anmeldung von Ihnen erfordert](#authenticate-with-remote-mcp-servers)**: Claude Code beendet die Wiederholungsversuche, und eine Agent SDK-Sitzung meldet den Status des Servers als `needs-auth`. Melden Sie sich in Ihrer Shell mit [`claude mcp login <name>`](#authenticate-from-the-command-line) an. Starten Sie dann den Lauf neu oder [verbinden Sie den Server](https://code.claude.com/docs/de/agent-sdk/mcp.md#error-handling) in einer Agent SDK-Sitzung stattdessen erneut.395 * **Wenn der Server [eine erneute Anmeldung erfordert](#authenticate-with-remote-mcp-servers)**: Claude Code stellt die Wiederholungsversuche ein, und eine Agent SDK-Sitzung meldet den Status des Servers als `needs-auth`. Melden Sie sich mit [`claude mcp login <name>`](#authenticate-from-the-command-line) in Ihrer Shell an. Starten Sie dann die Ausführung erneut oder [verbinden Sie den Server](https://code.claude.com/docs/de/agent-sdk/mcp.md#error-handling) in einer Agent SDK-Sitzung stattdessen neu.
396 396
397#### Fehlgeschlagene erste Verbindungen397#### Fehlgeschlagene erste Verbindungen
398 398
399Wenn die erste Verbindung eines HTTP- oder SSE-Servers mit einem vorübergehenden Fehler fehlschlägt, wie einer 5xx-Antwort, einer verweigerten Verbindung oder einem Timeout, versucht Claude Code es bis zu dreimal erneut. Wenn die Verbindung immer noch fehlschlägt, markiert Claude Code den Server als fehlgeschlagen.399Wenn der erste Verbindungsaufbau eines HTTP- oder SSE-Servers mit einem vorübergehenden Fehler fehlschlägt, etwa einer 5xx-Antwort, einer abgelehnten Verbindung oder einer Zeitüberschreitung, versucht Claude Code es bis zu dreimal erneut. Wenn die Verbindung weiterhin fehlschlägt, markiert Claude Code den Server als fehlgeschlagen.
400 400
401Diese Wiederholungsversuche gelten in folgenden Fällen nicht:401Diese Wiederholungsversuche gelten in folgenden Fällen nicht:
402 402
403* Die erste Verbindung eines Stdio-Servers. Um es erneut zu versuchen, siehe [Stdio-Server, die beendet werden oder nicht starten](#stdio-servers-that-exit-or-fail-to-start)403* Der erste Verbindungsaufbau eines stdio-Servers. Um es erneut zu versuchen, siehe [Stdio-Server, die sich beenden oder nicht starten](#stdio-servers-that-exit-or-fail-to-start)
404* Die erste Verbindung eines WebSocket-Servers. Um es in einer interaktiven Terminal-Sitzung erneut zu versuchen, wählen Sie im Menü des Servers in `/mcp` **Reconnect** aus404* Der erste Verbindungsaufbau eines WebSocket-Servers. Um es in einer interaktiven Terminal-Sitzung erneut zu versuchen, wählen Sie im Menü des Servers in `/mcp` die Option **Reconnect**
405* Ein Authentifizierungs- oder Not-Found-Fehler, da er eine Konfigurationsänderung erfordert, um ihn zu beheben. Wenn ein [`headersHelper`](#use-dynamic-headers-for-custom-authentication) die einzige Quelle des `Authorization`-Headers des Servers ist, versucht Claude Code einen Authentifizierungsfehler trotzdem erneut, da es den Helper bei jedem Versuch erneut ausführt und frische Anmeldedaten abholen kann405* Ein Authentifizierungs- oder Not-found-Fehler, da zur Behebung eine Konfigurationsänderung nötig ist. Wenn ein [`headersHelper`](#use-dynamic-headers-for-custom-authentication) die einzige Quelle des `Authorization`-Headers des Servers ist, versucht Claude Code einen Authentifizierungsfehler trotzdem erneut, da es den Helper bei jedem Versuch neu ausführt und so neue Anmeldedaten erhalten kann
406 406
407#### Stdio-Server, die beendet werden oder nicht starten407#### Stdio-Server, die sich beenden oder nicht starten
408 408
409Um einen Stdio-Server erneut zu starten, lesen Sie die Spalte, die dem entspricht, was mit ihm passiert ist. Ihre Zeile finden Sie anhand dessen, wie Sie Claude Code ausführen: in einer interaktiven Sitzung, in einem `claude -p`-Lauf oder in einer Agent SDK-Sitzung.409Um einen stdio-Server erneut zu starten, lesen Sie die Spalte, die dem entspricht, was mit ihm passiert ist. Finden Sie Ihre Zeile danach, wie Sie Claude Code ausführen: eine interaktive Sitzung, eine `claude -p`-Ausführung oder eine Agent SDK-Sitzung.
410 410
411| Wie Sie Claude Code ausführen | Der Prozess des Servers wird mitten in der Sitzung beendet | Die erste Verbindung des Servers schlägt fehl |411| Wie Sie Claude Code ausführen | Der Prozess des Servers beendet sich während der Sitzung | Der erste Verbindungsaufbau des Servers schlägt fehl |
412| - | - | - |412| - | - | - |
413| Interaktive Sitzung | Claude Code markiert den Server als fehlgeschlagen. Um ihn erneut zu starten, wählen Sie **Reconnect** im Menü des Servers in `/mcp` | Claude Code markiert den Server als fehlgeschlagen. Um ihn erneut zu starten, wählen Sie **Reconnect** im Menü des Servers in `/mcp` |413| Interaktive Sitzung | Claude Code markiert den Server als fehlgeschlagen. Um ihn erneut zu starten, wählen Sie im Menü des Servers in `/mcp` die Option **Reconnect** | Claude Code markiert den Server als fehlgeschlagen. Um ihn erneut zu starten, wählen Sie im Menü des Servers in `/mcp` die Option **Reconnect** |
414| `claude -p`-Lauf | Claude Code startet den Server erneut, wenn Claude das nächste Mal eines der Tools des Servers aufruft, und der Aufruf wird ausgeführt, sobald der Server verbunden ist | Der Lauf wird ohne die Tools des Servers fortgesetzt. Damit Claude Code die Verbindung erneut versucht, starten Sie den Lauf neu. Wenn ein Plugin den Server bereitstellt, überspringen neue Läufe die Verbindung nach einem Fehlschlag 15 Minuten lang. Warten Sie daher zuerst so lange oder [versuchen Sie es früher erneut](https://code.claude.com/docs/de/errors.md#skipping-connection-recent-failure-cached) |414| `claude -p`-Ausführung | Claude Code startet den Server erneut, wenn Claude das nächste Mal eines der Tools des Servers aufruft, und der Aufruf wird ausgeführt, sobald der Server verbunden ist | Die Ausführung läuft ohne die Tools des Servers weiter. Damit Claude Code die Verbindung erneut versucht, starten Sie die Ausführung erneut. Wenn ein Plugin den Server bereitstellt, überspringen neue Ausführungen die Verbindung 15 Minuten lang nach einem Fehler. Warten Sie also zuerst so lange oder [versuchen Sie es früher erneut](https://code.claude.com/docs/de/errors.md#skipping-connection-recent-failure-cached) |
415| Agent SDK-Sitzung | Claude Code startet den Server erneut, wenn Claude das nächste Mal eines der Tools des Servers aufruft, und der Aufruf wird ausgeführt, sobald der Server verbunden ist | Die Sitzung wird ohne die Tools des Servers fortgesetzt. Ihr Code kann [den Server erneut verbinden](https://code.claude.com/docs/de/agent-sdk/mcp.md#error-handling) |415| Agent SDK-Sitzung | Claude Code startet den Server erneut, wenn Claude das nächste Mal eines der Tools des Servers aufruft, und der Aufruf wird ausgeführt, sobald der Server verbunden ist | Die Sitzung läuft ohne die Tools des Servers weiter. Ihr Code kann [den Server neu verbinden](https://code.claude.com/docs/de/agent-sdk/mcp.md#error-handling) |
416 416
417#### Fehlgeschlagene Erkennungsanfragen417#### Fehlgeschlagene Discovery-Anfragen
418 418
419Nachdem sich ein Server verbindet, sendet Claude Code ihm Anfragen zur Fähigkeitserkennung wie `tools/list`, `prompts/list` und `resources/list`. Claude Code versucht diese Anfragen bis zu dreimal mit kurzem Backoff nach einem vorübergehenden Netzwerk- oder Serverfehler erneut. Es versucht Authentifizierungsfehler, 4xx-Antworten oder Anfrage-Timeouts nicht erneut.419Nachdem ein Server verbunden ist, sendet Claude Code ihm Anfragen zur Ermittlung der Fähigkeiten, etwa `tools/list`, `prompts/list` und `resources/list`. Claude Code wiederholt diese Anfragen nach einem vorübergehenden Netzwerk- oder Serverfehler bis zu dreimal mit kurzem Backoff. Authentifizierungsfehler, 4xx-Antworten oder Zeitüberschreitungen von Anfragen werden nicht erneut versucht.
420 420
421#### Fehlgeschlagene Server selbst erneut versuchen421#### Fehlgeschlagene Server selbst erneut versuchen
422 422
423Um alle Server erneut zu versuchen, die fehlgeschlagen sind oder eine Authentifizierung benötigen, führen Sie in einer interaktiven Terminal-Sitzung am Claude Code-Prompt `/mcp reconnect all` aus. Dies erfordert Claude Code v2.1.284 oder neuer. Ältere Versionen geben `MCP server "all" not found` aus.423Um jeden Server erneut zu versuchen, der fehlgeschlagen ist oder eine Authentifizierung benötigt, führen Sie `/mcp reconnect all` an der Claude Code-Eingabeaufforderung in einer interaktiven Terminal-Sitzung aus. Dies erfordert Claude Code v2.1.284 oder höher. Frühere Versionen geben `MCP server "all" not found` aus.
424 424
425#### Wie Claude erfährt, dass ein Server fehlgeschlagen ist425#### Wie Claude erfährt, dass ein Server fehlgeschlagen ist
426 426
427Ob Claude Code Claude über einen konfigurierten Server informiert, der keine Verbindung hergestellt hat, hängt von der [Werkzeugsuche](#scale-with-mcp-tool-search) ab, die standardmäßig aktiviert ist:427Ob Claude Code Claude über einen konfigurierten Server informiert, der keine Verbindung herstellen konnte, hängt von der [Tool-Suche](#scale-with-mcp-tool-search) ab, die standardmäßig aktiviert ist:
428 428
429* Mit Werkzeugsuche teilt Claude Code Claude mit, welcher Server fehlgeschlagen ist und welchen Verbindungsfehler er hatte, daher meldet Claude den Verbindungsfehler in seiner Antwort. Claude Code nimmt dieselben Informationen in `ToolSearch`-Ergebnisse auf, die kein passendes Werkzeug finden.429* Mit Tool-Suche teilt Claude Code Claude mit, welcher Server fehlgeschlagen ist und welchen Verbindungsfehler er hat, sodass Claude den Verbindungsfehler in seiner Antwort meldet. Claude Code fügt dieselben Informationen in `ToolSearch`-Ergebnisse ein, die kein passendes Tool finden.
430* In jeder [Konfiguration ohne Werkzeugsuche](#configure-tool-search) meldet Claude Code fehlgeschlagene Serververbindungen nicht an Claude.430* In jeder [Konfiguration ohne Tool-Suche](#configure-tool-search) meldet Claude Code fehlgeschlagene Serververbindungen nicht an Claude.
431 431
432### Nachrichten mit Channels pushen432### Nachrichten mit Channels pushen
433 433
434Ein MCP-Server kann auch Nachrichten direkt in Ihre Sitzung pushen, damit Claude auf externe Ereignisse wie CI-Ergebnisse, Überwachungswarnungen oder Chat-Nachrichten reagieren kann. Um dies zu aktivieren, deklariert Ihr Server die `claude/channel`-Fähigkeit und Sie aktivieren sie mit dem Flag `--channels` beim Start. Siehe [Channels](https://code.claude.com/docs/de/channels.md), um einen offiziell unterstützten Channel zu verwenden, oder [Channels-Referenz](https://code.claude.com/docs/de/channels-reference.md), um Ihren eigenen zu erstellen.434Ein MCP-Server kann auch Nachrichten direkt in Ihre Sitzung pushen, sodass Claude auf externe Ereignisse wie CI-Ergebnisse, Monitoring-Warnungen oder Chat-Nachrichten reagieren kann. Um dies zu aktivieren, deklariert Ihr Server die Fähigkeit `claude/channel`, und Sie aktivieren ihn beim Start mit dem Flag `--channels`. Siehe [Channels](https://code.claude.com/docs/de/channels.md), um einen offiziell unterstützten Channel zu verwenden, oder die [Channels-Referenz](https://code.claude.com/docs/de/channels-reference.md), um einen eigenen zu erstellen.
435 435
436Auf der [v2-Runtime](#mcp-client-runtimes) kann ein Channel-Server, der MCP-Protokollrevision 2026-07-28 aushandelt, keine Channel-Nachrichten liefern, daher registriert Claude Code ihn nicht als Channel. Ein Channel-Server, der diese Revision nicht unterstützt, verbindet sich über den früheren Handshake und registriert sich wie bisher.436In der [v2-Laufzeitumgebung](#mcp-client-runtimes) kann ein Channel-Server, der die MCP-Protokollrevision 2026-07-28 aushandelt, keine Channel-Nachrichten zustellen, daher registriert Claude Code ihn nicht als Channel. Ein Channel-Server, der diese Revision nicht unterstützt, verbindet sich mit dem früheren Handshake und wird wie bisher registriert.
437 437
438Claude Code fragt Stdio-Server standardmäßig nach dieser Revision. Um einen Stdio-Channel-Server auf dem früheren Handshake zu halten, setzen Sie [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/de/env-vars) auf `legacy`, wodurch alle Server darauf bleiben.438Claude Code fragt stdio-Server standardmäßig nach dieser Revision. Um einen stdio-Channel-Server beim früheren Handshake zu halten, setzen Sie [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/de/env-vars) auf `legacy`, was jeden Server dabei hält.
439 439
440> [!TIP]440> [!TIP]
441>441>
443>443>
444> * Verwenden Sie das Flag `-s` oder `--scope`, um anzugeben, wo die Konfiguration gespeichert wird:444> * Verwenden Sie das Flag `-s` oder `--scope`, um anzugeben, wo die Konfiguration gespeichert wird:
445> * `local` (Standard): nur für Sie im aktuellen Projekt verfügbar445> * `local` (Standard): nur für Sie im aktuellen Projekt verfügbar
446> * `project`: geteilt mit allen im Projekt über die `.mcp.json`-Datei446> * `project`: über die Datei `.mcp.json` mit allen im Projekt geteilt
447> * `user`: für Sie über alle Projekte verfügbar447> * `user`: für Sie in allen Projekten verfügbar
448> * Setzen Sie Umgebungsvariablen mit den Flags `-e` oder `--env` (zum Beispiel `-e KEY=value`)448> * Setzen Sie Umgebungsvariablen mit den Flags `-e` oder `--env` (zum Beispiel `-e KEY=value`)
449> * Die Flags `--transport` und `--header` akzeptieren auch die Kurzformen `-t` und `-H`449> * Die Flags `--transport` und `--header` akzeptieren auch die Kurzformen `-t` und `-H`
450> * Konfigurieren Sie den MCP-Server-Start-Timeout mit der Umgebungsvariable `MCP_TIMEOUT` (zum Beispiel setzt `MCP_TIMEOUT=10000 claude` einen 10-Sekunden-Timeout)450> * Konfigurieren Sie den Start-Timeout für MCP-Server mit der Umgebungsvariable `MCP_TIMEOUT` (zum Beispiel setzt `MCP_TIMEOUT=10000 claude` einen Timeout von 10 Sekunden)
451> * Setzen Sie einen Pro-Server-Timeout für die Werkzeugausführung, indem Sie ein `timeout`-Feld in Millisekunden zum `.mcp.json`-Eintrag dieses Servers hinzufügen, zum Beispiel `"timeout": 600000` für zehn Minuten. Dies überschreibt die Umgebungsvariable `MCP_TOOL_TIMEOUT` nur für diesen Server451> * Legen Sie einen Timeout für die Tool-Ausführung pro Server fest, indem Sie dem `.mcp.json`-Eintrag dieses Servers ein Feld `timeout` in Millisekunden hinzufügen, zum Beispiel `"timeout": 600000` für zehn Minuten. Dies überschreibt die Umgebungsvariable `MCP_TOOL_TIMEOUT` nur für diesen Server
452> * Claude Code zeigt eine Warnung an, wenn die MCP-Werkzeugausgabe 10.000 Token überschreitet, und begrenzt die Ausgabe standardmäßig auf 25.000 Token. Um das Token-Limit zu ändern, setzen Sie die Umgebungsvariable `MAX_MCP_OUTPUT_TOKENS`, zum Beispiel `MAX_MCP_OUTPUT_TOKENS=50000`. Die Warnschwelle ist fest. Sofern der Server das eigene Limit eines Tools nicht anhebt, werden erfolgreiche Textergebnisse mit mehr als 50.000 Zeichen unabhängig von dieser Variable in einer Datei gespeichert. Siehe [MCP-Ausgabegrenzen und Warnungen](#mcp-output-limits-and-warnings)452> * Claude Code zeigt eine Warnung an, wenn die Ausgabe eines MCP-Tools 10.000 Token überschreitet, und begrenzt die Ausgabe standardmäßig auf 25.000 Token. Um das Token-Limit zu ändern, setzen Sie die Umgebungsvariable `MAX_MCP_OUTPUT_TOKENS`, zum Beispiel `MAX_MCP_OUTPUT_TOKENS=50000`. Der Warnschwellenwert ist fest. Sofern der Server das eigene Limit eines Tools nicht anhebt, werden erfolgreiche Textergebnisse mit mehr als 50.000 Zeichen unabhängig von dieser Variable in einer Datei gespeichert. Siehe [MCP-Ausgabelimits und -Warnungen](#mcp-output-limits-and-warnings)
453> * Verwenden Sie `/mcp`, um sich bei Remote-Servern zu authentifizieren, die OAuth 2.0-Authentifizierung erfordern453> * Verwenden Sie `/mcp`, um sich bei Remote-Servern zu authentifizieren, die eine OAuth-2.0-Authentifizierung erfordern
454 454
455### Zeitlimits für MCP-Tool-Aufrufe455### Zeitlimits für MCP-Tool-Aufrufe
456 456
457Um zu begrenzen, wie lange ein MCP-Tool-Aufruf laufen darf:457Um zu begrenzen, wie lange ein MCP-Tool-Aufruf laufen kann:
458 458
459* **Pro Server**: Fügen Sie dem Konfigurationseintrag dieses Servers ein Feld `timeout` in Millisekunden hinzu459* **Pro Server**: Fügen Sie dem Konfigurationseintrag dieses Servers ein Feld `timeout` in Millisekunden hinzu
460* **Serverübergreifend**: Setzen Sie [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/de/env-vars)460* **Serverübergreifend**: Setzen Sie [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/de/env-vars)
461 461
462Der Pro-Server-`timeout` ist eine harte Wanduhr-Grenze pro Werkzeugaufruf, und Fortschrittsbenachrichtigungen vom Server verlängern ihn nicht. Werte unter 1000 werden ignoriert und fallen auf `MCP_TOOL_TIMEOUT` zurück oder auf dessen Standard von etwa 28 Stunden, wenn diese Variable nicht gesetzt ist. Für einen HTTP-, SSE- oder [claude.ai-Connector](https://code.claude.com/docs/de/mcp.md#use-mcp-servers-from-claude-ai)-Server gibt es auch einen zweiten Pro-Anfrage-Timer, der jede Anfrage bis zum ersten Antwortbyte des Servers abdeckt. Claude Code setzt diesen Timer auf den größten von drei Werten: 60 Sekunden, den Werkzeug-Timeout, der für den Server gilt, und `MCP_TIMEOUT`. Der 28-Stunden-Standard eines nicht gesetzten `MCP_TOOL_TIMEOUT` geht nicht in diesen Vergleich ein, und ein Wert unter 60 Sekunden verkürzt den Timer nicht. Stdio- und WebSocket-Server haben keinen Pro-Anfrage-Timer.462Der serverspezifische `timeout` ist ein hartes Echtzeitlimit pro Tool-Aufruf, und Fortschrittsbenachrichtigungen des Servers verlängern ihn nicht. Werte unter 1000 werden ignoriert und fallen auf `MCP_TOOL_TIMEOUT` zurück, oder auf dessen Standardwert von etwa 28 Stunden, wenn diese Variable nicht gesetzt ist. Für einen HTTP-, SSE- oder [claude.ai-Konnektor](https://code.claude.com/docs/de/mcp.md#use-mcp-servers-from-claude-ai)-Server gibt es zusätzlich einen zweiten Timer pro Anfrage, der jede Anfrage bis zum ersten Antwortbyte des Servers abdeckt. Claude Code setzt diesen Timer auf den größten von drei Werten: 60 Sekunden, den für den Server geltenden Tool-Timeout und `MCP_TIMEOUT`. Der 28-Stunden-Standardwert eines nicht gesetzten `MCP_TOOL_TIMEOUT` fließt nicht in diesen Vergleich ein, und ein Wert unter 60 Sekunden verkürzt den Timer nicht. Stdio- und WebSocket-Server haben keinen Timer pro Anfrage.
463 463
464Ein Pro-Server-`timeout` von mindestens 1000 fungiert auch als Untergrenze für den unten beschriebenen Idle-Timeout: Claude Code bricht die Werkzeugaufrufe dieses Servers wegen Inaktivität nie früher als nach dem Pro-Server-`timeout` ab.464Ein serverspezifischer `timeout` von mindestens 1000 wirkt außerdem als Untergrenze für den unten beschriebenen Leerlauf-Timeout: Claude Code bricht die Tool-Aufrufe dieses Servers nie früher wegen Leerlaufs ab als nach dem serverspezifischen `timeout`.
465 465
466Ein Werkzeugaufruf an einen MCP-Server, der für das Idle-Fenster keine Antwort und keine Fortschrittsbenachrichtigung sendet, bricht mit einem Fehler ab, anstatt auf die Wanduhr-Grenze zu warten. Der Idle-Timeout gilt für jeden Servertyp außer IDE-Servern und SDK-In-Process-Servern. Das Idle-Fenster beträgt standardmäßig fünf Minuten für HTTP-, SSE-, WebSocket- und [claude.ai-Connector](#use-mcp-servers-from-claude-ai)-Server und 30 Minuten für Stdio-Server.466Ein Tool-Aufruf an einen MCP-Server, der während des Leerlauffensters weder eine Antwort noch eine Fortschrittsbenachrichtigung sendet, wird mit einem Fehler abgebrochen, statt auf das Echtzeitlimit zu warten. Der Leerlauf-Timeout gilt für jeden Servertyp außer IDE-Servern und SDK-In-Process-Servern. Das Leerlauffenster beträgt standardmäßig fünf Minuten für HTTP-, SSE-, WebSocket- und [claude.ai-Konnektor](#use-mcp-servers-from-claude-ai)-Server und 30 Minuten für stdio-Server.
467 467
468Setzen Sie die Umgebungsvariable [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/de/env-vars) in Millisekunden, um das Idle-Fenster zu ändern, oder setzen Sie sie auf `0`, um die Überprüfung zu deaktivieren.468Setzen Sie die Umgebungsvariable [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/de/env-vars) in Millisekunden, um das Leerlauffenster zu ändern, oder setzen Sie sie auf `0`, um die Prüfung zu deaktivieren.
469 469
470Diese Timeouts begrenzen, wie lange ein Aufruf laufen kann, nicht immer, wie lange er die Sitzung blockiert: Ein Aufruf in der Hauptkonversation, der länger als zwei Minuten läuft, wird zuerst zu einer Hintergrundaufgabe. Siehe [Automatisches Backgrounding von langen Werkzeugaufrufen](#automatic-backgrounding-of-long-tool-calls).470Diese Timeouts begrenzen, wie lange ein Aufruf laufen kann, nicht immer, wie lange er die Sitzung blockiert: Ein Aufruf in der Hauptkonversation, der länger als zwei Minuten läuft, wird zuerst in eine Hintergrundaufgabe verschoben. Siehe [Automatisches Verschieben langer Tool-Aufrufe in den Hintergrund](#automatic-backgrounding-of-long-tool-calls).
471 471
472### Automatisches Backgrounding von langen Werkzeugaufrufen472### Automatisches Verschieben langer Tool-Aufrufe in den Hintergrund
473 473
474Wenn die Detailansicht eines Hintergrundaufrufs in [`/tasks`](https://code.claude.com/docs/de/commands#all-commands) `runs on the server; survives exiting this session` anzeigt, siehe [MCP-Tasks, die auf dem Server laufen](#mcp-tasks-that-run-on-the-server).474Wenn die Detailansicht eines Hintergrundaufrufs in [`/tasks`](https://code.claude.com/docs/de/commands#all-commands) `runs on the server; survives exiting this session` anzeigt, siehe [MCP-Aufgaben, die auf dem Server laufen](#mcp-tasks-that-run-on-the-server).
475 475
476Ein MCP-Werkzeugaufruf in der Hauptkonversation, der nach zwei Minuten noch läuft, wird zu einer Hintergrundaufgabe, statt die Sitzung zu blockieren. Claude erhält die Aufgaben-ID sofort und arbeitet weiter, und das Ergebnis kommt als Aufgabenbenachrichtigung, wenn der Aufruf abgeschlossen ist.476Ein MCP-Tool-Aufruf in der Hauptkonversation, der nach zwei Minuten noch läuft, wird in eine Hintergrundaufgabe verschoben, statt die Sitzung zu blockieren. Claude erhält sofort die Aufgaben-ID und arbeitet weiter, und das Ergebnis trifft als Aufgabenbenachrichtigung ein, wenn der Aufruf abgeschlossen ist.
477 477
478Die Aufgabe erscheint in [`/tasks`](https://code.claude.com/docs/de/commands#all-commands), wo Sie sie auch stoppen können, und sie überlebt das Beenden der Sitzung nicht. Der Eintrag der Aufgabe zeigt den neuesten Fortschritt, den der Server gemeldet hat. Wenn Sie die Aufgabe stoppen, bricht Claude Code den Aufruf ab und teilt Claude mit, dass kein Ergebnis kommt. Das Stoppen garantiert nicht, dass der Server stoppt: Er hat möglicherweise bereits einen Teil der Arbeit erledigt oder schließt sie trotzdem ab.478Die Aufgabe erscheint in [`/tasks`](https://code.claude.com/docs/de/commands#all-commands), wo Sie sie auch stoppen können, und sie überdauert das Beenden der Sitzung nicht. Der Eintrag der Aufgabe zeigt den zuletzt vom Server gemeldeten Fortschritt. Wenn Sie die Aufgabe stoppen, bricht Claude Code den Aufruf ab und teilt Claude mit, dass kein Ergebnis kommt. Das Stoppen garantiert nicht, dass der Server aufhört: Er hat möglicherweise bereits einen Teil der Arbeit erledigt oder beendet sie noch.
479 479
480Die Pro-Aufruf-Grenzen gelten weiterhin, während der Aufruf im Hintergrund läuft: die Wanduhr-Grenze, die durch den Pro-Server-`timeout` oder [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/de/env-vars) gesetzt wird, und der Idle-Timeout, der durch [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/de/env-vars) gesetzt wird.480Die Limits pro Aufruf gelten weiterhin, während der Aufruf im Hintergrund läuft: das durch den serverspezifischen `timeout` oder [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/de/env-vars) festgelegte Echtzeitlimit und der durch [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/de/env-vars) festgelegte Leerlauf-Timeout.
481 481
482So ändern oder deaktivieren Sie das automatische Verschieben in den Hintergrund:482So ändern oder deaktivieren Sie das automatische Verschieben in den Hintergrund:
483 483
484* Setzen Sie die Umgebungsvariable [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/de/env-vars) in Millisekunden, um den Schwellenwert zu ändern, oder setzen Sie sie auf `0`, um das automatische Verschieben auszuschalten. Mit `0` [wartet Claude](#make-claude-wait-for-the-result-of-an-mcp-task) in einer interaktiven Sitzung außerdem auf MCP-Tasks484* Setzen Sie die Umgebungsvariable [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/de/env-vars) in Millisekunden, um den Schwellenwert zu ändern, oder setzen Sie sie auf `0`, um das automatische Verschieben in den Hintergrund auszuschalten. Mit `0` [wartet Claude in einer interaktiven Sitzung außerdem auf MCP-Aufgaben](#make-claude-wait-for-the-result-of-an-mcp-task)
485* Setzen Sie [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/de/env-vars) auf `1`, um das automatische Verschieben in den Hintergrund und [Hintergrundbefehle](https://code.claude.com/docs/de/tools-reference.md#background-commands) auszuschalten485* Setzen Sie [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/de/env-vars) auf `1`, um das automatische Verschieben in den Hintergrund und [Hintergrundbefehle](https://code.claude.com/docs/de/tools-reference.md#background-commands) auszuschalten
486 486
487Einige Aufrufe werden nie in den Hintergrund verschoben:487Einige Aufrufe werden nie in den Hintergrund verschoben:
488 488
489* Aufrufe von [Subagenten](https://code.claude.com/docs/de/sub-agents.md); Claude Code verschiebt nur Aufrufe der Hauptkonversation in den Hintergrund489* Aufrufe von [Subagenten](https://code.claude.com/docs/de/sub-agents.md); Claude Code verschiebt nur Aufrufe der Hauptkonversation in den Hintergrund
490* Aufrufe an IDE-Server490* Aufrufe an IDE-Server
491* Aufrufe im [nicht interaktiven Modus](https://code.claude.com/docs/de/headless.md), es sei denn, `CLAUDE_AUTO_BACKGROUND_TASKS` ist auf `1` gesetzt, da ein One-Shot-Lauf enden kann, bevor das Ergebnis ankommt491* Aufrufe im [nicht interaktiven Modus](https://code.claude.com/docs/de/headless.md), sofern `CLAUDE_AUTO_BACKGROUND_TASKS` nicht auf `1` gesetzt ist, da eine einmalige Ausführung enden kann, bevor das Ergebnis eintrifft
492 492
493Ein Aufruf, der auf einen offenen [Elicitation-Dialog](#respond-to-mcp-elicitation-requests) wartet, wird nicht in den Hintergrund verschoben, solange der Dialog offen ist; der Server wartet auf Ihre Eingabe und ist nicht langsam, daher schiebt Claude Code die Verschiebung auf, bis der Dialog geschlossen wird.493Ein Aufruf, der auf einen offenen [Elicitation-Dialog](#respond-to-mcp-elicitation-requests) wartet, wird nicht in den Hintergrund verschoben, solange der Dialog geöffnet ist; der Server wartet auf Ihre Eingabe und ist nicht langsam, daher verschiebt Claude Code den Wechsel, bis der Dialog geschlossen wird.
494 494
495### MCP-Tasks, die auf dem Server laufen495### MCP-Aufgaben, die auf dem Server laufen
496 496
497Ein MCP-Task ist ein langer Auftrag, etwa ein Berichtsexport oder ein Build, den ein MCP-Server selbst mit der [MCP-Tasks-Erweiterung](https://modelcontextprotocol.io/extensions/tasks/overview) ausführt. Der Tool-Aufruf von Claude kehrt zurück, sobald der Server den Auftrag annimmt, sodass Claude weiterarbeitet, sofern Sie [Claude nicht warten lassen](#make-claude-wait-for-the-result-of-an-mcp-task). Wenn der Auftrag endet, vermerkt das Transkript dies, und Claude erhält das Ergebnis. Fragen Sie Claude danach.497Eine MCP-Aufgabe ist ein langer Job, etwa ein Berichtsexport oder ein Build, den ein MCP-Server selbst mithilfe der [MCP-Tasks-Erweiterung](https://modelcontextprotocol.io/extensions/tasks/overview) ausführt. Claudes Tool-Aufruf kehrt zurück, sobald der Server den Job annimmt, sodass Claude weiterarbeitet, sofern Sie [Claude nicht warten lassen](#make-claude-wait-for-the-result-of-an-mcp-task). Wenn der Job endet, vermerkt das Transkript dies, und Claude erhält das Ergebnis. Fragen Sie Claude danach.
498 498
499In der Zwischenzeit zeigt die Fußzeile eine Anzahl wie `1 MCP task`, und Claude Code verfolgt den Task, indem es seinen Status beim Server abfragt. Ein Task auf einem Remote-Server läuft nach dem Beenden weiter. Um ihn erneut zu verfolgen, [setzen Sie dieselbe Sitzung fort](#exit-clear-or-resume-while-an-mcp-task-runs).499In der Zwischenzeit zeigt die Fußzeile eine Anzahl wie `1 MCP task`, und Claude Code verfolgt die Aufgabe, indem es ihren Status beim Server abfragt. Eine Aufgabe auf einem Remote-Server läuft nach dem Beenden weiter. Um sie erneut zu verfolgen, [setzen Sie dieselbe Sitzung fort](#exit-clear-or-resume-while-an-mcp-task-runs).
500 500
501> [!NOTE]501> [!NOTE]
502>502>
503> MCP-Tasks sind in der Claude Code CLI als öffentliche Beta verfügbar und erfordern Claude Code v2.1.304 oder höher. [Was ein Aufruf benötigt, um zu einem MCP-Task zu werden](#requirements-for-mcp-tasks) listet die Sitzungen und Server auf, die sie erhalten.503> MCP-Aufgaben sind in der Claude Code CLI als öffentliche Beta verfügbar und erfordern Claude Code v2.1.304 oder höher. [Was ein Aufruf benötigt, um zu einer MCP-Aufgabe zu werden](#requirements-for-mcp-tasks) listet die Sitzungen und Server auf, die sie erhalten.
504 504
505#### Einen MCP-Task stoppen oder sein Ergebnis abrufen505#### Eine MCP-Aufgabe stoppen oder ihr Ergebnis abrufen
506 506
507Um einen laufenden Task zu stoppen, wählen Sie ihn in [`/tasks`](https://code.claude.com/docs/de/commands#all-commands) aus und drücken Sie `x`, oder bitten Sie Claude darum. Claude Code hört auf, den Task zu verfolgen, und bittet den Server, ihn abzubrechen, wobei der Server ihn dennoch abschließen kann. Verbinden Sie einen getrennten Server zuerst über `/mcp` neu, sonst wird keine Abbruchanfrage gesendet, und Claude Code vergisst den Task und kann ihn nicht erneut verfolgen. Das Drücken von `Esc` stoppt keine Hintergrundaufgabe.507Um eine laufende Aufgabe zu stoppen, wählen Sie sie in [`/tasks`](https://code.claude.com/docs/de/commands#all-commands) aus und drücken Sie `x`, oder bitten Sie Claude darum. Claude Code hört auf, die Aufgabe zu verfolgen, und bittet den Server, sie abzubrechen, wobei der Server sie möglicherweise dennoch abschließt. Verbinden Sie einen getrennten Server zuerst über `/mcp` neu, sonst wird keine Abbruchanfrage gesendet, und Claude Code vergisst die Aufgabe und kann sie nicht erneut verfolgen. Das Drücken von `Esc` stoppt keine Hintergrundaufgabe.
508 508
509Wenn der Task endet, erscheint eine Zeile wie diese im Transkript:509Wenn die Aufgabe endet, erscheint eine Zeile wie diese im Transkript:
510 510
511```text theme={null}511```text theme={null}
512MCP task <server task id> (<server>/<tool>) completed.512MCP task <server task id> (<server>/<tool>) completed.
513```513```
514 514
515Das Ergebnis geht an Claude, nicht in das Transkript. Fragen Sie Claude also danach. Wenn Claude untätig ist, wenn das Ergebnis eintrifft, beginnt Claude unaufgefordert damit.515Das Ergebnis geht an Claude, nicht in das Transkript. Fragen Sie Claude also danach. Wenn Claude beim Eintreffen des Ergebnisses untätig ist, beginnt Claude unaufgefordert damit.
516 516
517#### Eine Frage eines MCP-Tasks beantworten517#### Eine Frage einer MCP-Aufgabe beantworten
518 518
519Ein laufender Task kann einen [Elicitation-Dialog](#respond-to-mcp-elicitation-requests) öffnen, um Sie um eine Eingabe zu bitten. Solange `/tasks` geöffnet ist, bleibt der Dialog verborgen. Schließen Sie daher `/tasks`, um zu antworten. Ablehnen oder das Drücken von `Esc` ist eine Antwort an den Server, der dann entscheidet, ob der Task weiterläuft.519Eine laufende Aufgabe kann einen [Elicitation-Dialog](#respond-to-mcp-elicitation-requests) öffnen, um Sie um Eingabe zu bitten. Solange `/tasks` geöffnet ist, bleibt der Dialog verborgen. Schließen Sie daher `/tasks`, um zu antworten. Ablehnen oder das Drücken von `Esc` ist eine Antwort an den Server, der dann entscheidet, ob die Aufgabe weiterläuft.
520 520
521In einer [nicht interaktiven](https://code.claude.com/docs/de/headless.md) Sitzung bittet Claude Code den Server, einen Task abzubrechen, der eine Eingabe anfordert, ohne Ihre [`Elicitation`-Hooks](https://code.claude.com/docs/de/hooks#elicitation) auszuführen oder den `onElicitation`-Callback des Agent SDK aufzurufen.521In einer [nicht interaktiven](https://code.claude.com/docs/de/headless.md) Sitzung bittet Claude Code den Server, eine Aufgabe abzubrechen, die eine Eingabe anfordert, ohne Ihre [`Elicitation`-Hooks](https://code.claude.com/docs/de/hooks#elicitation) auszuführen oder den `onElicitation`-Callback des Agent SDK aufzurufen.
522 522
523#### Beenden, Leeren oder Fortsetzen, während ein MCP-Task läuft523#### Beenden, Leeren oder Fortsetzen, während eine MCP-Aufgabe läuft
524 524
525Ein Task auf einem Remote-Server läuft nach dem Beenden weiter. Der Prozess eines stdio-Servers stoppt, wenn Claude Code beendet wird, obwohl seine Tasks in `/tasks` `runs on the server; survives exiting this session` anzeigen. Sofern die Dokumentation dieses Servers nicht angibt, dass die Arbeit den Prozess überdauert, lassen Sie diese Tasks abschließen oder stoppen Sie sie zuerst in `/tasks`.525Eine Aufgabe auf einem Remote-Server läuft nach dem Beenden weiter. Der Prozess eines stdio-Servers stoppt, wenn Claude Code beendet wird, obwohl seine Aufgaben in `/tasks` `runs on the server; survives exiting this session` anzeigen. Sofern die Dokumentation dieses Servers nicht angibt, dass die Arbeit den Prozess überdauert, lassen Sie diese Aufgaben zuerst abschließen oder stoppen Sie sie in `/tasks`.
526 526
527| Situation | Was mit dem Task passiert | Was Sie tun können |527| Situation | Was mit der Aufgabe passiert | Was Sie tun können |
528| - | - | - |528| - | - | - |
529| Sie führen `/clear` oder `/branch` aus oder wechseln mit `/resume` zu einer anderen Sitzung | Solange Claude Code geöffnet bleibt, trifft das Ergebnis in Ihrer aktuellen Konversation ein | Setzen Sie nach einem Beenden mit `claude --resume` die Sitzung fort, in der der Task gestartet wurde |529| Sie führen `/clear` oder `/branch` aus oder setzen mit `/resume` eine andere Sitzung fort | Solange Claude Code geöffnet bleibt, trifft das Ergebnis in Ihrer aktuellen Konversation ein | Setzen Sie nach einem Beenden die Sitzung, in der die Aufgabe gestartet wurde, mit `claude --resume` fort |
530| Sie beenden Claude Code | Keine Beenden-Option bricht den Task eines Remote-Servers ab, selbst wenn der Beenden-Dialog ihn unter `The following will stop when you exit:` aufführt | Stoppen Sie ihn zuerst in `/tasks`, oder setzen Sie später dieselbe Sitzung fort |530| Sie beenden Claude Code | Keine Beenden-Option bricht die Aufgabe eines Remote-Servers ab, selbst wenn der Beenden-Dialog sie unter `The following will stop when you exit:` auflistet | Stoppen Sie sie zuerst in `/tasks`, oder setzen Sie dieselbe Sitzung später fort |
531| Sie kehren interaktiv zur Sitzung des Tasks zurück: `claude --resume`, `claude --continue` oder `/resume` | Sobald der Server verbunden ist, verfolgt Claude Code den Task erneut, und Claude erhält das Ergebnis, wenn er zwischenzeitlich abgeschlossen wurde und der Server ihn noch kennt | Lassen Sie Namen und Verbindungseinstellungen des Servers unverändert |531| Sie kehren interaktiv zur Sitzung der Aufgabe zurück: `claude --resume`, `claude --continue` oder `/resume` | Sobald der Server verbunden ist, verfolgt Claude Code die Aufgabe erneut, und Claude erhält das Ergebnis, wenn sie in der Zwischenzeit abgeschlossen wurde und der Server sie noch kennt | Lassen Sie den Namen und die Verbindungseinstellungen des Servers unverändert |
532| Sie setzen die Sitzung des Tasks mit `--resume` oder `--continue` in einer einmaligen `claude -p "<prompt>"`-Ausführung fort | Diese Ausführung verfolgt den Task nicht | Setzen Sie interaktiv oder mit `--input-format stream-json` fort |532| Sie setzen die Sitzung der Aufgabe mit `--resume` oder `--continue` in einer einmaligen `claude -p "<prompt>"`-Ausführung fort | Diese Ausführung verfolgt die Aufgabe nicht | Setzen Sie interaktiv oder mit `--input-format stream-json` fort |
533| Sie starten eine neue Sitzung oder verwenden `--fork-session` | Die neue Sitzung verfolgt den Task nicht | Setzen Sie die Sitzung fort, die ihn gestartet hat |533| Sie starten eine neue Sitzung oder verwenden `--fork-session` | Die neue Sitzung verfolgt die Aufgabe nicht | Setzen Sie die Sitzung fort, die sie gestartet hat |
534 534
535#### Was ein Aufruf benötigt, um zu einem MCP-Task zu werden535#### Was ein Aufruf benötigt, um zu einer MCP-Aufgabe zu werden
536 536
537Ein Tool-Aufruf wird nur dann zu einem MCP-Task, wenn alle diese Bedingungen erfüllt sind:537Ein Tool-Aufruf wird nur dann zu einer MCP-Aufgabe, wenn alle diese Bedingungen erfüllt sind:
538 538
539* Der Server unterstützt Tasks539* Der Server unterstützt Aufgaben
540* Der Server ist ein HTTP-, stdio- oder claude.ai-Konnektor-Server, der über die [Protokollrevision 2026-07-28](#mcp-client-runtimes) verbunden ist. Das Setzen von [`MCP_SDK_GENERATION=v1` oder `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/de/env-vars) schließt dies aus540* Der Server ist ein HTTP-, stdio- oder claude.ai-Konnektor-Server, der über die [Protokollrevision 2026-07-28](#mcp-client-runtimes) verbunden ist. Das Setzen von [`MCP_SDK_GENERATION=v1` oder `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/de/env-vars) schließt dies aus
541* Die Sitzung [ruft Feature-Flags ab](https://code.claude.com/docs/de/env-vars.md#features-that-need-feature-flag-fetching), also nicht bei einem Drittanbieter wie Amazon Bedrock und nicht bei ausgeschalteter Telemetrie oder ausgeschaltetem Abruf von Flags541* Die Sitzung [ruft Feature-Flags ab](https://code.claude.com/docs/de/env-vars.md#features-that-need-feature-flag-fetching), also nicht bei einem Drittanbieter wie Amazon Bedrock und nicht mit ausgeschalteter Telemetrie oder ausgeschaltetem Abrufen von Flags
542* Anthropic hat MCP-Tasks für Ihre Art von Sitzung eingeschaltet. Ab v2.1.304 umfasst das Terminal-CLI-Sitzungen, [Agent SDK](https://code.claude.com/docs/de/agent-sdk/overview.md)-Sitzungen und [GitHub Actions](https://code.claude.com/docs/de/github-actions.md)-Ausführungen. Andere Oberflächen wie die [VS Code-Erweiterung](https://code.claude.com/docs/de/vs-code.md) und die [Desktop-App](https://code.claude.com/docs/de/desktop.md) haben keine MCP-Tasks542* Anthropic hat MCP-Aufgaben für Ihre Art von Sitzung eingeschaltet. Ab v2.1.304 umfasst das Terminal-CLI-Sitzungen, [Agent SDK](https://code.claude.com/docs/de/agent-sdk/overview.md)-Sitzungen und [GitHub Actions](https://code.claude.com/docs/de/github-actions.md)-Ausführungen. Andere Oberflächen, etwa die [VS Code-Erweiterung](https://code.claude.com/docs/de/vs-code.md) und die [Desktop-App](https://code.claude.com/docs/de/desktop.md), haben keine MCP-Aufgaben
543* Der Aufruf stammt aus der Hauptkonversation, nicht von einem [Subagenten](https://code.claude.com/docs/de/sub-agents.md)543* Der Aufruf stammt aus der Hauptkonversation, nicht von einem [Subagenten](https://code.claude.com/docs/de/sub-agents.md)
544* Entweder ist die Sitzung interaktiv, oder eine [Agent SDK](https://code.claude.com/docs/de/agent-sdk/overview.md)-Sitzung bzw. eine `claude -p`-Ausführung, die `--input-format stream-json` liest, hat:544* Entweder ist die Sitzung interaktiv, oder eine [Agent SDK](https://code.claude.com/docs/de/agent-sdk/overview.md)-Sitzung bzw. eine `claude -p`-Ausführung, die `--input-format stream-json` liest, hat:
545 * [`CLAUDE_AUTO_BACKGROUND_TASKS`](https://code.claude.com/docs/de/env-vars) auf `1`545 * [`CLAUDE_AUTO_BACKGROUND_TASKS`](https://code.claude.com/docs/de/env-vars) auf `1`
546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` nicht auf `1`546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` nicht auf `1`
547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` nicht auf `0`547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` nicht auf `0`
548 548
549Jeder andere Aufruf ist ein gewöhnlicher Tool-Aufruf, und [Automatisches Verschieben langer Tool-Aufrufe in den Hintergrund](#automatic-backgrounding-of-long-tool-calls) beschreibt, welche davon in den Hintergrund verschoben werden.549Jeder andere Aufruf ist ein einfacher Tool-Aufruf, und [Automatisches Verschieben langer Tool-Aufrufe in den Hintergrund](#automatic-backgrounding-of-long-tool-calls) beschreibt, welche davon in den Hintergrund verschoben werden.
550 550
551Halten Sie die Eingabe einer Agent SDK- oder stream-json-Sitzung offen, da die Ausführung nach dem Schließen der Eingabe [nicht auf MCP-Tasks wartet](https://code.claude.com/docs/de/headless.md#mcp-work-when-a-non-interactive-run-ends). Eine einmalige `claude -p "<prompt>"`-Ausführung erhält keine MCP-Tasks.551Halten Sie die Eingabe einer Agent SDK- oder stream-json-Sitzung offen, da die Ausführung nach dem Schließen der Eingabe [nicht auf MCP-Aufgaben wartet](https://code.claude.com/docs/de/headless.md#mcp-work-when-a-non-interactive-run-ends). Eine einmalige `claude -p "<prompt>"`-Ausführung erhält keine MCP-Aufgaben.
552 552
553#### Statusmeldungen zu einem MCP-Task553#### Statusmeldungen zu einer MCP-Aufgabe
554 554
555Diese Meldungen im `/tasks`-Eintrag eines Tasks oder in seiner abschließenden Transkriptzeile bedeuten, dass Claude Code den Server oder den Task nicht erreichen kann. Solange eine davon in `/tasks` angezeigt wird, kann der Auftrag noch laufen: Claude Code lässt ihn in Ruhe und prüft weiter. Die `300s`- und Konfigurationsmeldungen bleiben am Eintrag stehen, auch nachdem der Kontakt wiederhergestellt ist.555Diese Meldungen im `/tasks`-Eintrag einer Aufgabe oder in ihrer abschließenden Transkriptzeile bedeuten, dass Claude Code den Server oder die Aufgabe nicht erreichen kann. Solange eine davon in `/tasks` angezeigt wird, läuft der Job möglicherweise noch: Claude Code lässt ihn in Ruhe und prüft weiter. Die `300s`- und Konfigurationsmeldungen bleiben auch nach wiederhergestelltem Kontakt am Eintrag stehen.
556 556
557| Meldung | Was passiert | Was Sie tun können |557| Meldung | Was passiert | Was Sie tun können |
558| - | - | - |558| - | - | - |
559| `reconnecting…` | Der Server hat seit einem Fortsetzen nicht geantwortet, oder Statusabfragen erhalten keine Antwort | Wenn die Meldung bestehen bleibt, verbinden Sie über `/mcp` neu |559| `reconnecting…` | Der Server hat seit einem Fortsetzen nicht geantwortet, oder Statusprüfungen erhalten keine Antwort | Wenn sie bestehen bleibt, verbinden Sie über `/mcp` neu |
560| `needs a sign-in to <server>` | Der Server hat eine Statusabfrage abgelehnt | Melden Sie sich über `/mcp` an |560| `needs a sign-in to <server>` | Der Server hat eine Statusprüfung abgelehnt | Melden Sie sich über `/mcp` an |
561| `status requests come back with errors; retrying…` | Der Server oder ein vorgeschalteter Proxy beantwortet Statusabfragen mit Fehlern | Warten Sie, während Claude Code es erneut versucht |561| `status requests come back with errors; retrying…` | Der Server oder ein vorgeschalteter Proxy beantwortet Statusprüfungen mit Fehlern | Warten Sie, während Claude Code es erneut versucht |
562| `server '<name>' did not reconnect within 300s` | Fünf Minuten lang keine beantwortete Abfrage, zum Beispiel bei unterbrochener Verbindung oder deaktiviertem Server | Verbinden Sie über `/mcp` neu |562| `server '<name>' did not reconnect within 300s` | Fünf Minuten lang keine beantwortete Prüfung, zum Beispiel bei unterbrochener Verbindung oder deaktiviertem Server | Verbinden Sie über `/mcp` neu |
563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | Nach fünf Minuten verlangt der Server weiterhin eine Anmeldung | Melden Sie sich über `/mcp` an |563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | Nach fünf Minuten verlangt der Server weiterhin eine Anmeldung | Melden Sie sich über `/mcp` an |
564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | Fünf Minuten lang Fehlerantworten | Prüfen Sie den Zustand oder die Logs des Servers selbst |564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | Fünf Minuten lang Fehlerantworten | Prüfen Sie den Zustand oder die Logs des Servers selbst |
565| `server '<name>' is not configured in this session; the task may still be running on it` | Die Sitzung hat keinen Server mit diesem Namen, zum Beispiel weil er entfernt, umbenannt oder in `--mcp-config` ausgelassen wurde, oder ein claude.ai-Konnektor wird noch geladen | Stellen Sie den Server unter demselben Namen wieder her und setzen Sie die Sitzung dann erneut fort. Bei einem ladenden Konnektor nichts: Claude Code verfolgt den Task, sobald er erscheint |565| `server '<name>' is not configured in this session; the task may still be running on it` | Die Sitzung hat keinen Server mit diesem Namen, zum Beispiel weil er entfernt, umbenannt oder in `--mcp-config` weggelassen wurde, oder ein claude.ai-Konnektor lädt noch | Stellen Sie den Server unter demselben Namen wieder her und setzen Sie die Sitzung dann erneut fort. Bei einem ladenden Konnektor ist nichts zu tun: Claude Code verfolgt die Aufgabe, sobald er erscheint |
566| Eine Meldung, die mit `server '<name>' was reconfigured to a different transport since this task was created` beginnt | Ein Server mit diesem Namen existiert, dessen Verbindungseinstellungen sich seit dem Start des Tasks geändert haben, etwa URL, command, args, env, headers oder timeout | Stellen Sie die früheren Einstellungen wieder her und setzen Sie die Sitzung dann erneut fort |566| Eine Meldung, die mit `server '<name>' was reconfigured to a different transport since this task was created` beginnt | Es existiert ein Server mit diesem Namen, dessen Verbindungseinstellungen sich seit dem Start der Aufgabe geändert haben, etwa URL, Befehl, args, env, Header oder Timeout | Stellen Sie die früheren Einstellungen wieder her und setzen Sie die Sitzung dann erneut fort |
567| `the server rejected this task's id; asking again…` | Der Server gibt an, die Task-ID nicht zu kennen. Claude Code fragt bis zu fünf Minuten lang weiter nach | Warten Sie: Die Meldung verschwindet, wenn der Server die ID wieder erkennt, oder es folgt die Zeile `outcome unknown.` |567| `the server rejected this task's id; asking again…` | Der Server gibt an, die Aufgaben-ID nicht zu kennen. Claude Code fragt bis zu fünf Minuten lang weiter nach | Warten Sie: Die Meldung verschwindet, wenn der Server die ID wieder erkennt, andernfalls folgt die Zeile `outcome unknown.` |
568| Eine Transkriptzeile, die auf `outcome unknown.` endet, in einer Form `expired on the server: outcome unknown.` | Der Server hat die ID abgelehnt oder mit einem anderen dauerhaften Fehler verweigert, und Claude Code hat aufgehört, den Task zu verfolgen | Ein zweiter Aufruf kann die Arbeit wiederholen. Bevor Sie das Tool erneut aufrufen, finden Sie beim Server heraus, was erledigt wurde, zum Beispiel indem Sie Claude bitten, die anderen Tools des Servers zu verwenden |568| Eine Transkriptzeile, die mit `outcome unknown.` endet, in einer Form `expired on the server: outcome unknown.` | Der Server hat die ID abgelehnt oder mit einem anderen dauerhaften Fehler verweigert, und Claude Code hat aufgehört, die Aufgabe zu verfolgen | Ein zweiter Aufruf kann die Arbeit wiederholen. Bevor Sie das Tool erneut aufrufen, ermitteln Sie beim Server, was erledigt wurde, zum Beispiel indem Sie Claude bitten, die anderen Tools des Servers zu verwenden |
569 569
570#### Zeitlimits für MCP-Tasks570#### Zeitlimits für MCP-Aufgaben
571 571
572Standardmäßig hat ein Task im Hintergrund kein Zeitlimit von Claude Code. Die [Zeitlimits für Tool-Aufrufe](#time-limits-on-mcp-tool-calls), einschließlich des Echtzeitlimits und des Leerlauf-Timeouts, gelten, bis der Server den Aufruf mit dem Task beantwortet. Wenn Sie [Claude warten lassen](#make-claude-wait-for-the-result-of-an-mcp-task), gelten sie für den gesamten Task. Beantwortete Statusabfragen zählen als Aktivität für den Leerlauf-Timeout.572Standardmäßig hat eine Aufgabe im Hintergrund kein Zeitlimit von Claude Code. Die [Zeitlimits für Tool-Aufrufe](#time-limits-on-mcp-tool-calls), einschließlich des Echtzeitlimits und des Leerlauf-Timeouts, gelten, bis der Server den Aufruf mit der Aufgabe beantwortet. Wenn Sie [Claude warten lassen](#make-claude-wait-for-the-result-of-an-mcp-task), gelten sie für die gesamte Aufgabe. Beantwortete Statusprüfungen zählen als Aktivität für den Leerlauf-Timeout.
573 573
574#### Claude auf das Ergebnis eines MCP-Tasks warten lassen574#### Claude auf das Ergebnis einer MCP-Aufgabe warten lassen
575 575
576Damit Claude in einer interaktiven Sitzung auf das Ergebnis eines Tasks wartet, setzen Sie eine von zwei Umgebungsvariablen, zum Beispiel im `env`-Block von [`settings.json`](https://code.claude.com/docs/de/settings):576Um Claude in einer interaktiven Sitzung auf das Ergebnis einer Aufgabe warten zu lassen, setzen Sie eine von zwei Umgebungsvariablen, zum Beispiel im `env`-Block von [`settings.json`](https://code.claude.com/docs/de/settings):
577 577
578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/de/env-vars) auf `0` gesetzt**: Claude wartet bei jedem MCP-Tool-Aufruf, bis der Aufruf endet578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/de/env-vars) auf `0` gesetzt**: Claude wartet bei jedem MCP-Tool-Aufruf, bis der Aufruf endet
579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/de/env-vars) auf `1` gesetzt**: Claude wartet auf das Ergebnis eines Tasks. Solange das [automatische Verschieben in den Hintergrund](#automatic-backgrounding-of-long-tool-calls) eingeschaltet ist, verschiebt es den Aufruf standardmäßig nach zwei Minuten, sodass kurze Tasks an Ort und Stelle abgeschlossen werden und lange Sie nicht blockieren. Der verschobene Aufruf ist ein gewöhnlicher Hintergrundaufruf und kein MCP-Task. Er überdauert das Beenden der Sitzung nicht579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/de/env-vars) auf `1` gesetzt**: Claude wartet auf das Ergebnis einer Aufgabe. Solange das [automatische Verschieben in den Hintergrund](#automatic-backgrounding-of-long-tool-calls) aktiviert ist, wird der Aufruf standardmäßig nach zwei Minuten verschoben, sodass kurze Aufgaben an Ort und Stelle abgeschlossen werden und lange Sie nicht blockieren. Der verschobene Aufruf ist ein einfacher Hintergrundaufruf und keine MCP-Aufgabe. Er überdauert das Beenden der Sitzung nicht
580 580
581Während Claude wartet, beendet das Drücken von `Esc` oder das Erreichen des [Echtzeitlimits oder Leerlauf-Timeouts](#time-limits-on-mcp-tasks) den Aufruf, und Claude Code bittet den Server, den Task abzubrechen.581Während Claude wartet, beendet das Drücken von `Esc` oder das Erreichen des [Echtzeitlimits oder Leerlauf-Timeouts](#time-limits-on-mcp-tasks) den Aufruf, und Claude Code bittet den Server, die Aufgabe abzubrechen.
582 582
583Wenn Sie `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` auf `1` setzen oder im [Bare-Modus](https://code.claude.com/docs/de/headless.md#start-faster-with-bare-mode) starten, lässt das allein Claude nicht auf MCP-Tasks warten. Dieses Beispiel setzt `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` auf `0`, sodass Claude bei jedem MCP-Tool-Aufruf wartet:583Wenn Sie `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` auf `1` setzen oder im [Bare-Modus](https://code.claude.com/docs/de/headless.md#start-faster-with-bare-mode) starten, lässt das allein Claude nicht auf MCP-Aufgaben warten. Dieses Beispiel setzt `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` auf `0`, sodass Claude bei jedem MCP-Tool-Aufruf wartet:
584 584
585```json settings.json theme={null}585```json settings.json theme={null}
586{586{
590}590}
591```591```
592 592
593### MCP-Tasks für Serverautoren593### MCP-Aufgaben für Serverautoren
594 594
595Wenn Sie einen MCP-Server entwickeln, können Sie ein lang laufendes `tools/call` mit einem Task beantworten. Die [MCP-Tasks-Erweiterung](https://modelcontextprotocol.io/extensions/tasks/overview) definiert die Nachrichten, die Sie senden. Bei einer Verbindung über die [Protokollrevision 2026-07-28](#mcp-client-runtimes) trägt jede Anfrage die Client-Fähigkeiten von Claude Code unter `params._meta["io.modelcontextprotocol/clientCapabilities"]`, mit `"io.modelcontextprotocol/tasks": {}` unter `extensions`. Eine `tools/call`-Anfrage, die [nicht zu einem Task werden kann](#requirements-for-mcp-tasks), lässt diese Erweiterung weg.595Wenn Sie einen MCP-Server entwickeln, können Sie einen lang laufenden `tools/call` mit einer Aufgabe beantworten. Die [MCP-Tasks-Erweiterung](https://modelcontextprotocol.io/extensions/tasks/overview) definiert die Nachrichten, die Sie senden. Bei einer Verbindung über die [Protokollrevision 2026-07-28](#mcp-client-runtimes) enthält jede Anfrage die Client-Fähigkeiten von Claude Code unter `params._meta["io.modelcontextprotocol/clientCapabilities"]`, mit `"io.modelcontextprotocol/tasks": {}` unter `extensions`. Eine `tools/call`-Anfrage, die [keine Aufgabe werden kann](#requirements-for-mcp-tasks), lässt diese Erweiterung weg.
596 596
597#### Den Aufruf mit einem Task beantworten597#### Den Aufruf mit einer Aufgabe beantworten
598 598
599Antworten Sie nur dann mit einer Aufgabe, wenn die Anfrage die Erweiterung enthält, andernfalls schlägt der Aufruf mit dem Tool-Fehler `Unsupported result type 'task' for tools/call` fehl. Der Aufruf schlägt auf die gleiche Weise fehl, wenn Ihre Antwort keine `taskId` oder keinen gültigen `status` hat. Das Aufgabenobjekt ist das JSON-RPC-`result` Ihrer `tools/call`-Antwort, benötigt kein `content`-Array und enthält hier die optionalen Felder `statusMessage` und `pollIntervalMs`:599Antworten Sie nur dann mit einer Aufgabe, wenn die Anfrage die Erweiterung enthält, andernfalls schlägt der Aufruf mit dem Tool-Fehler `Unsupported result type 'task' for tools/call` fehl. Der Aufruf schlägt ebenso fehl, wenn Ihre Antwort keine `taskId` oder keinen gültigen `status` hat. Das Aufgabenobjekt ist das JSON-RPC-`result` Ihrer `tools/call`-Antwort, benötigt kein `content`-Array und enthält hier die optionalen Felder `statusMessage` und `pollIntervalMs`:
600 600
601```json theme={null}601```json theme={null}
602{602{
611}611}
612```612```
613 613
614| Feld | Wie Claude Code damit umgeht |614| Feld | Wie Claude Code es behandelt |
615| - | - |615| - | - |
616| `resultType` | Setzen Sie es auf `"task"`, um die Antwort als Task zu kennzeichnen. Ohne das Feld liest Claude Code die Antwort als gewöhnliches Ergebnis |616| `resultType` | Setzen Sie es auf `"task"`, um die Antwort als Aufgabe zu kennzeichnen. Ohne es liest Claude Code die Antwort als einfaches Ergebnis |
617| `taskId` | Erforderlich. Höchstens 128 druckbare ASCII-Zeichen ohne Leerzeichen, sonst erhält Claude einen Tool-Fehler, der mit `MCP server "<name>" returned a malformed task handle for tool "<tool>"` beginnt. Halten Sie die ID über Verbindungen hinweg beantwortbar, da Claude Code nach einem Fortsetzen über eine neue Verbindung danach fragt |617| `taskId` | Erforderlich. Höchstens 128 druckbare ASCII-Zeichen ohne Leerzeichen, andernfalls erhält Claude einen Tool-Fehler, der mit `MCP server "<name>" returned a malformed task handle for tool "<tool>"` beginnt. Halten Sie die ID verbindungsübergreifend beantwortbar, da Claude Code nach einem Fortsetzen auf einer neuen Verbindung danach fragt |
618| `status` | Erforderlich. Einer der Werte `working`, `input_required`, `completed`, `failed` oder `cancelled`. Ein anderer Wert führt zum Fehler `Unsupported result type` |618| `status` | Erforderlich. Einer der Werte `working`, `input_required`, `completed`, `failed` oder `cancelled`. Ein anderer Wert führt zum Fehler `Unsupported result type` |
619| `createdAt`, `lastUpdatedAt`, `ttlMs` | Von der Tasks-Erweiterung verlangt, und `ttlMs` darf `null` sein. Claude Code verwirft eine Aufgabe nicht, weil ihr `ttlMs` abgelaufen ist |619| `createdAt`, `lastUpdatedAt`, `ttlMs` | Von der Tasks-Erweiterung verlangt, und `ttlMs` darf `null` sein. Claude Code verwirft eine Aufgabe nicht, weil ihr `ttlMs` abgelaufen ist |
620| `pollIntervalMs` | Optional. Millisekunden zwischen `tasks/get`-Anfragen, begrenzt auf einen Bereich von 250 bis 30000. Claude Code verwendet 2000, wenn das Feld fehlt oder `null` ist, und liest den Wert aus jeder `tasks/get`-Antwort erneut |620| `pollIntervalMs` | Optional. Millisekunden zwischen `tasks/get`-Anfragen, begrenzt auf den Bereich zwischen 250 und 30000. Claude Code verwendet 2000, wenn das Feld fehlt oder `null` ist, und liest den Wert aus jeder `tasks/get`-Antwort erneut |
621| `statusMessage` | Optional. `/tasks` zeigt den Wert aus Ihrer neuesten `tasks/get`-Antwort an, nicht aus dieser ersten, und eine Antwort ohne das Feld leert ihn. Eine [Statusmeldung von Claude Code](#status-messages-on-an-mcp-task) kann an seine Stelle treten |621| `statusMessage` | Optional. `/tasks` zeigt den Wert aus Ihrer neuesten `tasks/get`-Antwort, nicht aus dieser ersten, und eine Antwort, die das Feld weglässt, löscht ihn. Eine [Statusmeldung von Claude Code](#status-messages-on-an-mcp-task) kann an seine Stelle treten |
622 622
623Claude Code akzeptiert eine Aufgabenantwort, die `createdAt`, `lastUpdatedAt` oder `ttlMs` weglässt oder `pollIntervalMs` auf `null` setzt. Vor v2.1.317 schlug der Aufruf stattdessen mit dem Fehler `Unsupported result type` fehl. Um auch mit diesen Versionen zu funktionieren, senden Sie die drei Felder, die die Tasks-Erweiterung verlangt, und senden Sie `pollIntervalMs` als Zahl oder gar nicht.623Claude Code akzeptiert eine Aufgabenantwort, die `createdAt`, `lastUpdatedAt` oder `ttlMs` weglässt oder `pollIntervalMs` auf `null` setzt. Vor v2.1.317 schlug der Aufruf stattdessen mit dem Fehler `Unsupported result type` fehl. Um auch mit diesen Versionen zu funktionieren, senden Sie die drei Felder, die die Tasks-Erweiterung verlangt, und senden Sie `pollIntervalMs` als Zahl oder gar nicht.
624 624
625Bei einem HTTP- oder claude.ai-Konnektor-Server muss die Task-Antwort innerhalb des [Timers pro Anfrage](#time-limits-on-mcp-tool-calls) beginnen. Nehmen Sie daher den Auftrag an und antworten Sie zuerst, und erledigen Sie dann die Arbeit.625Bei einem HTTP- oder claude.ai-Konnektor-Server muss die Aufgabenantwort innerhalb des [Timers pro Anfrage](#time-limits-on-mcp-tool-calls) beginnen. Nehmen Sie den Job also an und antworten Sie zuerst, und erledigen Sie dann die Arbeit.
626 626
627#### Status, Ergebnisse und Fragen melden627#### Status, Ergebnisse und Fragen melden
628 628
629Direkt nach der Task-Antwort sendet Claude Code `tasks/get` mit `{ "taskId": ... }` und wiederholt dies dann einmal pro Abfrageintervall. Die Tasks-Erweiterung verlangt, dass Ihre Antwort `"resultType": "complete"` zusammen mit `taskId`, `status`, `createdAt`, `lastUpdatedAt` und `ttlMs` enthält. `ttlMs` darf `null` sein, und `statusMessage` und `pollIntervalMs` sind optional. Dieses Beispiel meldet den Build als abgeschlossen:629Direkt nach der Aufgabenantwort sendet Claude Code `tasks/get` mit `{ "taskId": ... }` und wiederholt dies einmal pro Abfrageintervall. Die Tasks-Erweiterung verlangt, dass Ihre Antwort `"resultType": "complete"` zusammen mit `taskId`, `status`, `createdAt`, `lastUpdatedAt` und `ttlMs` enthält. `ttlMs` darf `null` sein, und `statusMessage` und `pollIntervalMs` sind optional. Dieses Beispiel meldet den Build als abgeschlossen:
630 630
631```json theme={null}631```json theme={null}
632{632{
642}642}
643```643```
644 644
645| Status, Methode oder Antwort | Wie Claude Code damit umgeht |645| Status, Methode oder Antwort | Wie Claude Code es behandelt |
646| - | - |646| - | - |
647| `working` | Fragt weiter ab |647| `working` | Fragt weiter ab |
648| `completed` | Gibt Claude das normale `tools/call`-Ergebnis im `result`-Objekt auf oberster Ebene. `isError: true` darin wird als Fehlschlag gemeldet |648| `completed` | Übergibt Claude das normale `tools/call`-Ergebnis im `result`-Objekt der obersten Ebene. `isError: true` darin wird als Fehlschlag gemeldet |
649| `failed` | Teilt Claude die `message` des `error`-Objekts `{ code, message, data }` auf oberster Ebene mit, das die Tasks-Erweiterung bei einem fehlgeschlagenen Task verlangt. Ohne diese `message` erhält Claude stattdessen `statusMessage` oder andernfalls `Task failed` |649| `failed` | Teilt Claude die `message` des `error`-Objekts `{ code, message, data }` der obersten Ebene mit, das die Tasks-Erweiterung bei einer fehlgeschlagenen Aufgabe verlangt. Ohne diese `message` erhält Claude stattdessen `statusMessage`, andernfalls `Task failed` |
650| `cancelled` | Teilt Claude `statusMessage` mit oder andernfalls `Task was cancelled by the server` |650| `cancelled` | Teilt Claude `statusMessage` mit, andernfalls `Task was cancelled by the server` |
651| `input_required` | Liest `inputRequests`, ein Objekt, das einen von Ihnen gewählten Schlüssel auf `{ method, params }` abbildet. Claude Code beantwortet jeden Schlüssel einmal über `tasks/update` mit `{ taskId, inputResponses }`, wobei `inputResponses` denselben Schlüssel auf das Ergebnis dieser Anfrage abbildet. Schlüssel über 16 pro Task hinaus werden ignoriert |651| `input_required` | Liest `inputRequests`, ein Objekt, das einen von Ihnen gewählten Schlüssel auf `{ method, params }` abbildet. Claude Code beantwortet jeden Schlüssel einmal über `tasks/update` mit `{ taskId, inputResponses }`, wobei `inputResponses` denselben Schlüssel auf das Ergebnis dieser Anfrage abbildet. Schlüssel über 16 pro Aufgabe hinaus werden ignoriert |
652| Methoden in `inputRequests` | `elicitation/create` wird nur in interaktiven Terminal-Sitzungen bedient, `roots/list` überall. Wenn Claude Code eine Anfrage nicht bedienen kann, bittet es den Server, den Task abzubrechen |652| Methoden in `inputRequests` | `elicitation/create` wird nur in interaktiven Terminal-Sitzungen bedient, `roots/list` überall. Wenn Claude Code eine Anfrage nicht bedienen kann, bittet es den Server, die Aufgabe abzubrechen |
653| Ein anderer `status`-Wert | Claude Code bittet den Server, den Task abzubrechen, und meldet ihn Claude als fehlgeschlagen |653| Ein anderer `status`-Wert | Claude Code bittet den Server, die Aufgabe abzubrechen, und meldet sie Claude als fehlgeschlagen |
654| JSON-RPC-Fehler `-32602` | Wird als unbekannte Task-ID gelesen. Bei einem Task im Hintergrund fragt Claude Code bis zu fünf Minuten lang weiter nach und meldet Claude dann das Ergebnis als unbekannt |654| JSON-RPC-Fehler `-32602` | Wird als unbekannte Aufgaben-ID gelesen. Bei einer Aufgabe im Hintergrund fragt Claude Code bis zu fünf Minuten lang weiter nach und meldet Claude das Ergebnis dann als unbekannt |
655| `tasks/cancel` | Wird gesendet, zum Beispiel wenn Claude oder die Person den Task stoppt, während der Server verbunden ist. Wird beim Beenden nicht gesendet |655| `tasks/cancel` | Wird zum Beispiel gesendet, wenn Claude oder die Person die Aufgabe stoppt, während der Server verbunden ist. Wird beim Beenden nicht gesendet |
656| `tasks/result`, `tasks/list`, `notifications/tasks` | Werden nicht verwendet. Legen Sie das Ergebnis daher in Ihre `tasks/get`-Antworten |656| `tasks/result`, `tasks/list`, `notifications/tasks` | Werden nicht verwendet. Geben Sie das Ergebnis daher in Ihren `tasks/get`-Antworten an |
657 657
658### Von Plugins bereitgestellte MCP-Server658### Von Plugins bereitgestellte MCP-Server
659 659
660[Plugins](https://code.claude.com/docs/de/plugins/overview.md) können MCP-Server bündeln, die Tools und Integrationen bereitstellen, wenn Sie das Plugin aktivieren.660[Plugins](https://code.claude.com/docs/de/plugins/overview.md) können MCP-Server bündeln, die Tools und Integrationen bereitstellen, wenn Sie das Plugin aktivieren.
661 661
662**Wie von Plugins bereitgestellte MCP-Server funktionieren**:662**So funktionieren Plugin-MCP-Server**:
663 663
664* Plugins definieren MCP-Server in `.mcp.json` im Plugin-Root oder inline in `plugin.json`664* Plugins definieren MCP-Server in `.mcp.json` im Stammverzeichnis des Plugins oder inline in `plugin.json`
665* Wenn Sie ein Plugin aktivieren, startet Claude Code seine MCP-Server automatisch665* Wenn Sie ein Plugin aktivieren, startet Claude Code dessen MCP-Server automatisch
666* Claude Code bietet Plugin-MCP-Werkzeuge neben manuell konfigurierten MCP-Werkzeugen an666* Claude Code bietet Plugin-MCP-Tools neben manuell konfigurierten MCP-Tools an
667* Sie fügen Plugin-Server hinzu und entfernen sie, indem Sie das Plugin installieren oder deinstallieren, nicht mit `/mcp`-Befehlen. Sie können einen installierten Plugin-Server in `/mcp` weiterhin [ausschalten](#disable-a-server-without-removing-it), was Claude Code daran hindert, sich damit zu verbinden, ohne das Plugin zu entfernen667* Sie fügen Plugin-Server hinzu und entfernen sie, indem Sie das Plugin installieren oder deinstallieren, nicht mit `/mcp`-Befehlen. Sie können einen installierten Plugin-Server in `/mcp` dennoch [ausschalten](#disable-a-server-without-removing-it), wodurch Claude Code keine Verbindung mehr zu ihm herstellt, ohne dass das Plugin entfernt wird
668 668
669**Beispiel-Plugin-MCP-Konfiguration**:669**Beispiel für eine Plugin-MCP-Konfiguration**:
670 670
671In `.mcp.json` im Plugin-Root:671In `.mcp.json` im Stammverzeichnis des Plugins:
672 672
673```json theme={null}673```json theme={null}
674{674{
698}698}
699```699```
700 700
701**Von Plugins bereitgestellte MCP-Funktionen**:701**Plugin-MCP-Funktionen**:
702 702
703* **Automatischer Lebenszyklus**: Server verbinden und trennen sich an diesen Punkten:703* **Automatischer Lebenszyklus**: Server verbinden und trennen sich zu folgenden Zeitpunkten:
704 * Beim Sitzungsstart verbindet Claude Code die Server für aktivierte Plugins automatisch. In `/mcp` kann ein Remote-(HTTP- oder SSE-)Plugin-Server, den Sie zuvor verwendet haben, stattdessen den [`cached`-Status](#server-status-detail) anzeigen; Claude Code verbindet ihn, wenn Claude eines seiner Werkzeuge zum ersten Mal aufruft. Wenn die Verbindung eines Stdio-Plugin-Servers vor weniger als 15 Minuten fehlgeschlagen ist, [überspringt Claude Code die Verbindung](https://code.claude.com/docs/de/errors.md#skipping-connection-recent-failure-cached)704 * Beim Start der Sitzung verbindet Claude Code die Server aktivierter Plugins automatisch. In `/mcp` kann ein Remote-Plugin-Server (HTTP oder SSE), den Sie bereits verwendet haben, stattdessen den [Status `cached`](#server-status-detail) anzeigen; Claude Code verbindet ihn, wenn Claude zum ersten Mal eines seiner Tools aufruft. Wenn die Verbindung eines stdio-Plugin-Servers vor weniger als 15 Minuten fehlgeschlagen ist, [überspringt Claude Code die Verbindung](https://code.claude.com/docs/de/errors.md#skipping-connection-recent-failure-cached)
705 * Wenn Sie ein Plugin während einer Sitzung aktivieren oder deaktivieren, verbindet oder trennt Claude Code seine MCP-Server, wenn die Änderung angewendet wird. [Plugin-Änderungen ohne Neustart anwenden](https://code.claude.com/docs/de/plugins/cli-reference.md#reload-plugins) beschreibt, wann das ist. In einer Sitzung ohne interaktives Terminal verbindet oder trennt `/reload-plugins` keine Plugin-MCP-Server; diese Änderungen treten in Ihrer nächsten Sitzung in Kraft705 * Wenn Sie während einer Sitzung ein Plugin aktivieren oder deaktivieren, verbindet oder trennt Claude Code dessen MCP-Server, sobald die Änderung wirksam wird. Wann das der Fall ist, beschreibt [Plugin-Änderungen ohne Neustart anwenden](https://code.claude.com/docs/de/plugins/cli-reference.md#reload-plugins). In einer Sitzung ohne interaktives Terminal verbindet oder trennt `/reload-plugins` keine Plugin-MCP-Server; diese Änderungen werden in Ihrer nächsten Sitzung wirksam
706 * Wenn Sie neu laden, behält Claude Code die Live-Verbindungen von Plugin-Servern, deren Konfiguration unverändert ist, und macht dasselbe, wenn Sie [die MCP-Serverliste der Sitzung](https://code.claude.com/docs/de/agent-sdk/typescript.md#mcpsetserversresult) vom Agent SDK ersetzen, ohne sie zu nennen706 * Beim Neuladen behält Claude Code die aktiven Verbindungen von Plugin-Servern bei, deren Konfiguration unverändert ist, und verfährt ebenso, wenn Sie die [MCP-Serverliste der Sitzung ersetzen](https://code.claude.com/docs/de/agent-sdk/typescript.md#mcpsetserversresult), ohne diese Server über das Agent SDK zu benennen
707 * Wenn Sie die Sitzung auf v2.1.246 oder später mit `/cd` [in ein anderes Verzeichnis verschieben](https://code.claude.com/docs/de/permissions.md#move-the-session-to-another-directory), verbindet Claude Code die Server von Plugins, die die Einstellungen des neuen Verzeichnisses aktivieren, und trennt die Server von Plugins, die nicht mehr aktiviert sind, daher müssen Sie `/reload-plugins` nach der Verschiebung nicht ausführen707 * Wenn Sie ab v2.1.246 [die Sitzung mit `/cd` verschieben](https://code.claude.com/docs/de/permissions#move-the-session-to-another-directory), verbindet Claude Code die Server der Plugins, die durch die Einstellungen des neuen Verzeichnisses aktiviert werden, und trennt die Server der Plugins, die nicht mehr aktiviert sind, sodass Sie nach dem Verschieben nicht `/reload-plugins` ausführen müssen
708 * In [Cloud-Sitzungen](https://code.claude.com/docs/de/claude-code-on-the-web.md) startet ein MCP-Aufruf an einen Plugin-Server, der noch nicht verbunden ist, etwa direkt nachdem eine inaktive Sitzung aufwacht, den Server bei Bedarf und wartet auf die Verbindung708 * In [Cloud-Sitzungen](https://code.claude.com/docs/de/claude-code-on-the-web.md) startet ein MCP-Aufruf an einen noch nicht verbundenen Plugin-Server, etwa direkt nach dem Aufwachen einer inaktiven Sitzung, den Server bei Bedarf und wartet, bis er verbunden ist
709* **Pfad-Platzhalter**: `${CLAUDE_PLUGIN_ROOT}` wird zum Installationsverzeichnis des Plugins aufgelöst, `${CLAUDE_PLUGIN_DATA}` zu seinem Verzeichnis für [persistenten Zustand](https://code.claude.com/docs/de/plugins/components.md#path-variables-and-persistent-data) und `${CLAUDE_PROJECT_DIR}` zum stabilen Projektstammverzeichnis. Die Substitution gilt für:709* **Pfad-Platzhalter**: `${CLAUDE_PLUGIN_ROOT}` wird zum Installationsverzeichnis des Plugins aufgelöst, `${CLAUDE_PLUGIN_DATA}` zu dessen Verzeichnis für [persistenten Zustand](https://code.claude.com/docs/de/plugins/components.md#path-variables-and-persistent-data) und `${CLAUDE_PROJECT_DIR}` zum stabilen Projektstammverzeichnis. Die Ersetzung gilt für:
710 * `stdio`-Server: `command`, `args`, `env`710 * `stdio`-Server: `command`, `args`, `env`
711 * `http`-, `sse`- und `ws`-Server: `url`, `headers` und `headersHelper`711 * `http`-, `sse`- und `ws`-Server: `url`, `headers` und `headersHelper`
712* **Zugriff auf Benutzerumgebung**: Zugriff auf dieselben Umgebungsvariablen wie manuell konfigurierte Server712* **Zugriff auf die Benutzerumgebung**: Zugriff auf dieselben Umgebungsvariablen wie bei manuell konfigurierten Servern
713* **Mehrere Transporttypen**: Unterstützung für Stdio-, SSE-, HTTP- und WebSocket-Transporte, obwohl die Transportunterstützung je nach Server variieren kann713* **Mehrere Transportarten**: Unterstützung für stdio-, SSE-, HTTP- und WebSocket-Transporte, wobei die Transportunterstützung je nach Server variieren kann
714 714
715Plugin-Server erscheinen in `/mcp` mit Indikatoren, die zeigen, dass sie von Plugins stammen.715Plugin-Server erscheinen in `/mcp` mit Kennzeichnungen, die zeigen, dass sie aus Plugins stammen.
716 716
717`claude mcp get` verbirgt die Werte, die für den Stdio- oder WebSocket-Server eines Plugins konfiguriert sind, da sie Anmeldedaten enthalten können:717`claude mcp get` verbirgt die für den stdio- oder WebSocket-Server eines Plugins konfigurierten Werte, da diese Anmeldedaten enthalten können:
718 718
719* **Stdio-Server**: Es gibt `Command: stdio`, eine leere `Args:`-Zeile und jede Umgebungsvariable als `NAME=[REDACTED]` aus719* **stdio-Server**: Ausgegeben werden `Command: stdio`, eine leere `Args:`-Zeile und jede Umgebungsvariable als `NAME=[REDACTED]`
720* **WebSocket-Server**: Es gibt `URL: ws` und jeden Header als `<name>: [REDACTED]` aus, und `claude mcp list` zeigt `ws` anstelle der URL720* **WebSocket-Server**: Ausgegeben werden `URL: ws` und jeder Header als `<name>: [REDACTED]`, und `claude mcp list` zeigt `ws` anstelle der URL
721 721
722Um zu sehen, was das Plugin konfiguriert hat, [suchen Sie das Plugin auf der Festplatte](https://code.claude.com/docs/de/plugins/loading.md#find-plugins-on-disk) und lesen Sie seine `.mcp.json` oder `plugin.json`.722Um zu sehen, was das Plugin konfiguriert hat, [suchen Sie das Plugin auf dem Datenträger](https://code.claude.com/docs/de/plugins/loading.md#find-plugins-on-disk) und lesen Sie dessen `.mcp.json` oder `plugin.json`.
723 723
724**Namen von Plugin-MCP-Werkzeugen**:724**Namen von Plugin-MCP-Tools**:
725 725
726Werkzeuge von einem von einem Plugin gebündelten MCP-Server enthalten sowohl den Plugin-Namen als auch den Server-Schlüssel in ihrem aufrufbaren Namen. Die vollständige Form ist `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, wobei jedes Zeichen außerhalb von `A-Z`, `a-z`, `0-9`, `_` und `-` durch `_` ersetzt wird. Für den `database-tools`-Server, der in einem Plugin namens `my-plugin` gebündelt ist, ist ein `query`-Werkzeug aufrufbar als:726Tools aus einem in einem Plugin gebündelten MCP-Server enthalten in ihrem aufrufbaren Namen sowohl den Plugin-Namen als auch den Serverschlüssel. Die vollständige Form lautet `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, wobei jedes Zeichen außerhalb von `A-Z`, `a-z`, `0-9`, `_` und `-` durch `_` ersetzt wird. Für den Server `database-tools`, der in einem Plugin namens `my-plugin` gebündelt ist, ist ein Tool `query` aufrufbar als:
727 727
728```728```
729mcp__plugin_my-plugin_database-tools__query729mcp__plugin_my-plugin_database-tools__query
730```730```
731 731
732Verwenden Sie diesen vollständigen Namen, wenn Sie das Werkzeug in [Berechtigungsregeln](https://code.claude.com/docs/de/permissions.md), der `allowed-tools`-Liste eines Skills, dem [`tools`-Feld eines Subagenten](https://code.claude.com/docs/de/sub-agents#available-tools) oder einem [Hook-Matcher](https://code.claude.com/docs/de/hooks.md#match-mcp-tools) referenzieren. Ein Hook-Matcher, der gegen den bloßen Server-Schlüssel geschrieben ist, wie `mcp__database-tools__.*`, wird niemals für einen von einem Plugin gebündelten Server ausgelöst.732Verwenden Sie diesen vollständigen Namen, wenn Sie das Tool in [Berechtigungsregeln](https://code.claude.com/docs/de/permissions.md), in der `allowed-tools`-Liste eines Skills, im [Feld `tools` eines Subagenten](https://code.claude.com/docs/de/sub-agents#available-tools) oder in einem [Hook-Matcher](https://code.claude.com/docs/de/hooks.md#match-mcp-tools) referenzieren. Ein Hook-Matcher, der gegen den bloßen Serverschlüssel geschrieben ist, etwa `mcp__database-tools__.*`, wird bei einem in einem Plugin gebündelten Server nie ausgelöst.
733 733
734Der Server selbst registriert sich unter dem bereichsbezogenen Namen `plugin:<plugin-name>:<server-name>`, wie `plugin:my-plugin:database-tools`. Verwenden Sie diesen Namen, wo ein konfigurierter Servername erwartet wird, wie im [`server`-Feld eines `mcp_tool`-Hooks](https://code.claude.com/docs/de/hooks#mcp-tool-hook-fields).734Der Server selbst wird unter dem bereichsbezogenen Namen `plugin:<plugin-name>:<server-name>` registriert, etwa `plugin:my-plugin:database-tools`. Verwenden Sie diesen Namen dort, wo ein konfigurierter Servername erwartet wird, etwa im [Feld `server` eines `mcp_tool`-Hooks](https://code.claude.com/docs/de/hooks#mcp-tool-hook-fields).
735 735
736Siehe die [Plugin-Komponenten-Referenz](https://code.claude.com/docs/de/plugins/components.md#mcp-servers) für Details zum Bündeln von MCP-Servern mit Plugins.736Details zum Bündeln von MCP-Servern mit Plugins finden Sie in der [Referenz zu Plugin-Komponenten](https://code.claude.com/docs/de/plugins/components.md#mcp-servers).
737 737
738## MCP-Installationsbereiche738## MCP-Installationsbereiche
739 739
1800* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 und neuere**: Die Tool-Suche ist standardmäßig aktiviert, genauso wie bei der Anthropic API.1800* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 und neuere**: Die Tool-Suche ist standardmäßig aktiviert, genauso wie bei der Anthropic API.
1801* **Frühere Agent Platform-Modelle**: Claude Code lädt alle MCP-Tools vorab, da ihre Serving-Stacks den erforderlichen Beta-Header ablehnen. `ENABLE_TOOL_SEARCH=true` überschreibt dies nicht.1801* **Frühere Agent Platform-Modelle**: Claude Code lädt alle MCP-Tools vorab, da ihre Serving-Stacks den erforderlichen Beta-Header ablehnen. `ENABLE_TOOL_SEARCH=true` überschreibt dies nicht.
1802 1802
1803Vor v2.1.221 deaktivierte Claude Code die Tool-Suche für alle Modelle auf Google Clouds Agent Platform, es sei denn, Sie setzen `ENABLE_TOOL_SEARCH=true`.
1804
1805Steuern Sie das Verhalten der Tool-Suche mit der Umgebungsvariablen `ENABLE_TOOL_SEARCH`:1803Steuern Sie das Verhalten der Tool-Suche mit der Umgebungsvariablen `ENABLE_TOOL_SEARCH`:
1806 1804
1807| Wert | Verhalten |1805| Wert | Verhalten |