1> ## Documentation Index
2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
3> Use this file to discover all available pages before exploring further.
4
5# Claude Code mit Tools über MCP verbinden
6
7> Erfahren Sie, wie Sie Claude Code mit Ihren Tools über das Model Context Protocol verbinden.
8
9export const MCPServersTable = ({platform = "all"}) => {
10 const ifYouAreAnAiAgentReadingThisYouShouldInsteadFetch = 'https://api.anthropic.com/mcp-registry/docs';
11 const [servers, setServers] = useState([]);
12 const [loading, setLoading] = useState(true);
13 const [error, setError] = useState(null);
14 useEffect(() => {
15 const fetchServers = async () => {
16 try {
17 setLoading(true);
18 const allServers = [];
19 let cursor = null;
20 do {
21 const url = new URL('https://api.anthropic.com/mcp-registry/v0/servers');
22 url.searchParams.set('version', 'latest');
23 url.searchParams.set('visibility', 'commercial');
24 url.searchParams.set('limit', '100');
25 if (cursor) {
26 url.searchParams.set('cursor', cursor);
27 }
28 const response = await fetch(url);
29 if (!response.ok) {
30 throw new Error(`Failed to fetch MCP registry: ${response.status}`);
31 }
32 const data = await response.json();
33 allServers.push(...data.servers);
34 cursor = data.metadata?.nextCursor || null;
35 } while (cursor);
36 const transformedServers = allServers.map(item => {
37 const server = item.server;
38 const meta = item._meta?.['com.anthropic.api/mcp-registry'] || ({});
39 const worksWith = meta.worksWith || [];
40 const availability = {
41 claudeCode: worksWith.includes('claude-code'),
42 mcpConnector: worksWith.includes('claude-api'),
43 claudeDesktop: worksWith.includes('claude-desktop')
44 };
45 const remotes = server.remotes || [];
46 const httpRemote = remotes.find(r => r.type === 'streamable-http');
47 const sseRemote = remotes.find(r => r.type === 'sse');
48 const preferredRemote = httpRemote || sseRemote;
49 const remoteUrl = preferredRemote?.url || meta.url;
50 const remoteType = preferredRemote?.type;
51 const isTemplatedUrl = remoteUrl?.includes('{');
52 let setupUrl;
53 if (isTemplatedUrl && meta.requiredFields) {
54 const urlField = meta.requiredFields.find(f => f.field === 'url');
55 setupUrl = urlField?.sourceUrl || meta.documentation;
56 }
57 const urls = {};
58 if (!isTemplatedUrl) {
59 if (remoteType === 'streamable-http') {
60 urls.http = remoteUrl;
61 } else if (remoteType === 'sse') {
62 urls.sse = remoteUrl;
63 }
64 }
65 let envVars = [];
66 if (server.packages && server.packages.length > 0) {
67 const npmPackage = server.packages.find(p => p.registryType === 'npm');
68 if (npmPackage) {
69 urls.stdio = `npx -y ${npmPackage.identifier}`;
70 if (npmPackage.environmentVariables) {
71 envVars = npmPackage.environmentVariables;
72 }
73 }
74 }
75 return {
76 name: meta.displayName || server.title || server.name,
77 description: meta.oneLiner || server.description,
78 documentation: meta.documentation,
79 urls: urls,
80 envVars: envVars,
81 availability: availability,
82 customCommands: meta.claudeCodeCopyText ? {
83 claudeCode: meta.claudeCodeCopyText
84 } : undefined,
85 setupUrl: setupUrl
86 };
87 });
88 setServers(transformedServers);
89 setError(null);
90 } catch (err) {
91 setError(err.message);
92 console.error('Error fetching MCP registry:', err);
93 } finally {
94 setLoading(false);
95 }
96 };
97 fetchServers();
98 }, []);
99 const generateClaudeCodeCommand = server => {
100 if (server.customCommands && server.customCommands.claudeCode) {
101 return server.customCommands.claudeCode.replace('--transport streamable-http', '--transport http');
102 }
103 const serverSlug = server.name.toLowerCase().replace(/[^a-z0-9]/g, '-');
104 if (server.urls.http) {
105 return `claude mcp add ${serverSlug} --transport http ${server.urls.http}`;
106 }
107 if (server.urls.sse) {
108 return `claude mcp add ${serverSlug} --transport sse ${server.urls.sse}`;
109 }
110 if (server.urls.stdio) {
111 const envFlags = server.envVars && server.envVars.length > 0 ? server.envVars.map(v => `--env ${v.name}=YOUR_${v.name}`).join(' ') : '';
112 const baseCommand = `claude mcp add ${serverSlug} --transport stdio`;
113 return envFlags ? `${baseCommand} ${envFlags} -- ${server.urls.stdio}` : `${baseCommand} -- ${server.urls.stdio}`;
114 }
115 return null;
116 };
117 if (loading) {
118 return <div>Loading MCP servers...</div>;
119 }
120 if (error) {
121 return <div>Error loading MCP servers: {error}</div>;
122 }
123 const filteredServers = servers.filter(server => {
124 if (platform === "claudeCode") {
125 return server.availability.claudeCode;
126 } else if (platform === "mcpConnector") {
127 return server.availability.mcpConnector;
128 } else if (platform === "claudeDesktop") {
129 return server.availability.claudeDesktop;
130 } else if (platform === "all") {
131 return true;
132 } else {
133 throw new Error(`Unknown platform: ${platform}`);
134 }
135 });
136 return <>
137 <style jsx>{`
138 .cards-container {
139 display: grid;
140 gap: 1rem;
141 margin-bottom: 2rem;
142 }
143 .server-card {
144 border: 1px solid var(--border-color, #e5e7eb);
145 border-radius: 6px;
146 padding: 1rem;
147 }
148 .command-row {
149 display: flex;
150 align-items: center;
151 gap: 0.25rem;
152 }
153 .command-row code {
154 font-size: 0.75rem;
155 overflow-x: auto;
156 }
157 `}</style>
158
159 <div className="cards-container">
160 {filteredServers.map(server => {
161 const claudeCodeCommand = generateClaudeCodeCommand(server);
162 const mcpUrl = server.urls.http || server.urls.sse;
163 const commandToShow = platform === "claudeCode" ? claudeCodeCommand : mcpUrl;
164 return <div key={server.name} className="server-card">
165 <div>
166 {server.documentation ? <a href={server.documentation}>
167 <strong>{server.name}</strong>
168 </a> : <strong>{server.name}</strong>}
169 </div>
170
171 <p style={{
172 margin: '0.5rem 0',
173 fontSize: '0.9rem'
174 }}>
175 {server.description}
176 </p>
177
178 {server.setupUrl && <p style={{
179 margin: '0.25rem 0',
180 fontSize: '0.8rem',
181 fontStyle: 'italic',
182 opacity: 0.7
183 }}>
184 Requires user-specific URL.{' '}
185 <a href={server.setupUrl} style={{
186 textDecoration: 'underline'
187 }}>
188 Get your URL here
189 </a>.
190 </p>}
191
192 {commandToShow && !server.setupUrl && <>
193 <p style={{
194 display: 'block',
195 fontSize: '0.75rem',
196 fontWeight: 500,
197 minWidth: 'fit-content',
198 marginTop: '0.5rem',
199 marginBottom: 0
200 }}>
201 {platform === "claudeCode" ? "Command" : "URL"}
202 </p>
203 <div className="command-row">
204 <code>
205 {commandToShow}
206 </code>
207 </div>
208 </>}
209 </div>;
210 })}
211 </div>
212 </>;
213};
214
215Claude Code kann sich über das [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction), einen offenen Standard für KI-Tool-Integrationen, mit Hunderten von externen Tools und Datenquellen verbinden. MCP-Server geben Claude Code Zugriff auf Ihre Tools, Datenbanken und APIs.
216
217Verbinden Sie einen Server, wenn Sie feststellen, dass Sie Daten aus einem anderen Tool wie einem Issue-Tracker oder einem Überwachungs-Dashboard in den Chat kopieren. Nach der Verbindung kann Claude direkt auf dieses System zugreifen und handeln, anstatt mit dem zu arbeiten, was Sie einfügen.
218
219## Was Sie mit MCP tun können
220
221Mit verbundenen MCP-Servern können Sie Claude Code auffordern:
222
223* **Funktionen aus Issue-Trackern implementieren**: „Füge die in JIRA-Issue ENG-4521 beschriebene Funktion hinzu und erstelle einen PR auf GitHub."
224* **Überwachungsdaten analysieren**: „Überprüfe Sentry und Statsig, um die Nutzung der in ENG-4521 beschriebenen Funktion zu überprüfen."
225* **Datenbanken abfragen**: „Finde E-Mail-Adressen von 10 zufälligen Benutzern, die die Funktion ENG-4521 verwendet haben, basierend auf unserer PostgreSQL-Datenbank."
226* **Designs integrieren**: „Aktualisiere unsere Standard-E-Mail-Vorlage basierend auf den neuen Figma-Designs, die in Slack gepostet wurden"
227* **Workflows automatisieren**: „Erstelle Gmail-Entwürfe, die diese 10 Benutzer zu einer Feedback-Sitzung zur neuen Funktion einladen."
228* **Auf externe Ereignisse reagieren**: Ein MCP-Server kann auch als [Kanal](/de/channels) fungieren, der Nachrichten in Ihre Sitzung pusht, sodass Claude auf Telegram-Nachrichten, Discord-Chats oder Webhook-Ereignisse reagiert, während Sie weg sind.
229
230## Beliebte MCP-Server
231
232Hier sind einige häufig verwendete MCP-Server, die Sie mit Claude Code verbinden können:
233
234<Warning>
235 Verwenden Sie MCP-Server von Drittanbietern auf eigenes Risiko – Anthropic hat
236 die Korrektheit oder Sicherheit aller dieser Server nicht überprüft.
237 Stellen Sie sicher, dass Sie den MCP-Servern vertrauen, die Sie installieren.
238 Seien Sie besonders vorsichtig bei der Verwendung von MCP-Servern, die nicht vertrauenswürdige
239 Inhalte abrufen könnten, da diese Sie dem Risiko von Prompt-Injection aussetzen können.
240</Warning>
241
242<MCPServersTable platform="claudeCode" />
243
244<Note>
245 **Benötigen Sie eine spezifische Integration?** [Finden Sie Hunderte weitere MCP-Server auf GitHub](https://github.com/modelcontextprotocol/servers), oder erstellen Sie Ihren eigenen mit dem [MCP SDK](https://modelcontextprotocol.io/quickstart/server).
246</Note>
247
248## MCP-Server installieren
249
250MCP-Server können je nach Ihren Anforderungen auf drei verschiedene Arten konfiguriert werden:
251
252### Option 1: Einen Remote-HTTP-Server hinzufügen
253
254HTTP-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.
255
256```bash theme={null}
257# Grundlegende Syntax
258claude mcp add --transport http <name> <url>
259
260# Echtes Beispiel: Mit Notion verbinden
261claude mcp add --transport http notion https://mcp.notion.com/mcp
262
263# Beispiel mit Bearer-Token
264claude mcp add --transport http secure-api https://api.example.com/mcp \
265 --header "Authorization: Bearer your-token"
266```
267
268### Option 2: Einen Remote-SSE-Server hinzufügen
269
270<Warning>
271 Das SSE-Transportprotokoll (Server-Sent Events) ist veraltet. Verwenden Sie stattdessen HTTP-Server, wo verfügbar.
272</Warning>
273
274```bash theme={null}
275# Grundlegende Syntax
276claude mcp add --transport sse <name> <url>
277
278# Echtes Beispiel: Mit Asana verbinden
279claude mcp add --transport sse asana https://mcp.asana.com/sse
280
281# Beispiel mit Authentifizierungs-Header
282claude mcp add --transport sse private-api https://api.company.com/sse \
283 --header "X-API-Key: your-key-here"
284```
285
286### Option 3: Einen lokalen Stdio-Server hinzufügen
287
288Stdio-Server werden als lokale Prozesse auf Ihrem Computer ausgeführt. Sie sind ideal für Tools, die direkten Systemzugriff oder benutzerdefinierte Skripte benötigen.
289
290```bash theme={null}
291# Grundlegende Syntax
292claude mcp add [options] <name> -- <command> [args...]
293
294# Echtes Beispiel: Airtable-Server hinzufügen
295claude mcp add --transport stdio --env AIRTABLE_API_KEY=YOUR_KEY airtable \
296 -- npx -y airtable-mcp-server
297```
298
299<Note>
300 **Wichtig: Reihenfolge der Optionen**
301
302 Alle Optionen (`--transport`, `--env`, `--scope`, `--header`) müssen **vor** dem Servernamen kommen. Der `--` (Doppelstrich) trennt dann den Servernamen von dem Befehl und den Argumenten, die an den MCP-Server übergeben werden.
303
304 Zum Beispiel:
305
306 * `claude mcp add --transport stdio myserver -- npx server` → führt `npx server` aus
307 * `claude mcp add --transport stdio --env KEY=value myserver -- python server.py --port 8080` → führt `python server.py --port 8080` mit `KEY=value` in der Umgebung aus
308
309 Dies verhindert Konflikte zwischen Claudes Flags und den Flags des Servers.
310</Note>
311
312### Verwalten Ihrer Server
313
314Nach der Konfiguration können Sie Ihre MCP-Server mit diesen Befehlen verwalten:
315
316```bash theme={null}
317# Alle konfigurierten Server auflisten
318claude mcp list
319
320# Details für einen bestimmten Server abrufen
321claude mcp get github
322
323# Einen Server entfernen
324claude mcp remove github
325
326# (innerhalb von Claude Code) Serverstatus überprüfen
327/mcp
328```
329
330### Dynamische Tool-Updates
331
332Claude Code unterstützt MCP-`list_changed`-Benachrichtigungen, die es MCP-Servern ermöglichen, ihre verfügbaren Tools, Prompts und Ressourcen dynamisch zu aktualisieren, ohne dass Sie die Verbindung trennen und erneut verbinden müssen. Wenn ein MCP-Server eine `list_changed`-Benachrichtigung sendet, aktualisiert Claude Code automatisch die verfügbaren Funktionen von diesem Server.
333
334### Automatische Wiederverbindung
335
336Wenn ein HTTP- oder SSE-Server während einer Sitzung die Verbindung trennt, verbindet sich Claude Code automatisch mit exponentiellem Backoff wieder: bis zu fünf Versuche, beginnend mit einer Verzögerung von einer Sekunde und sich jedes Mal verdoppelnd. Der Server wird als ausstehend in `/mcp` angezeigt, während die Wiederverbindung läuft. Nach fünf fehlgeschlagenen Versuchen wird der Server als fehlgeschlagen markiert und Sie können ihn manuell von `/mcp` aus erneut versuchen. Stdio-Server sind lokale Prozesse und werden nicht automatisch wiederverbunden.
337
338Das gleiche Backoff gilt, wenn ein HTTP- oder SSE-Server beim Start seine anfängliche Verbindung nicht herstellt. Ab v2.1.121 versucht Claude Code die anfängliche Verbindung bis zu dreimal bei vorübergehenden Fehlern wie einer 5xx-Antwort, einer Verbindungsverweigerung oder einem Timeout erneut, markiert den Server dann als fehlgeschlagen, wenn er immer noch keine Verbindung herstellen kann. Authentifizierungs- und Not-Found-Fehler werden nicht erneut versucht, da sie eine Konfigurationsänderung erfordern, um behoben zu werden.
339
340### Push-Nachrichten mit Kanälen
341
342Ein MCP-Server kann auch Nachrichten direkt in Ihre Sitzung pushen, sodass Claude auf externe Ereignisse wie CI-Ergebnisse, Überwachungswarnungen oder Chat-Nachrichten reagieren kann. Um dies zu aktivieren, deklariert Ihr Server die Funktion `claude/channel` und Sie aktivieren sie mit dem Flag `--channels` beim Start. Siehe [Kanäle](/de/channels), um einen offiziell unterstützten Kanal zu verwenden, oder [Kanäle-Referenz](/de/channels-reference), um Ihren eigenen zu erstellen.
343
344<Tip>
345 Tipps:
346
347 * Verwenden Sie das Flag `--scope`, um anzugeben, wo die Konfiguration gespeichert wird:
348 * `local` (Standard): Nur für Sie im aktuellen Projekt verfügbar (hieß in älteren Versionen `project`)
349 * `project`: Geteilt mit allen im Projekt über die Datei `.mcp.json`
350 * `user`: Für Sie über alle Projekte hinweg verfügbar (hieß in älteren Versionen `global`)
351 * Legen Sie Umgebungsvariablen mit `--env`-Flags fest (zum Beispiel `--env KEY=value`)
352 * Konfigurieren Sie das Startup-Timeout des MCP-Servers mit der Umgebungsvariablen MCP\_TIMEOUT (zum Beispiel `MCP_TIMEOUT=10000 claude` setzt ein 10-Sekunden-Timeout)
353 * Claude Code zeigt eine Warnung an, wenn die MCP-Tool-Ausgabe 10.000 Token überschreitet. Um dieses Limit zu erhöhen, setzen Sie die Umgebungsvariable `MAX_MCP_OUTPUT_TOKENS` (zum Beispiel `MAX_MCP_OUTPUT_TOKENS=50000`)
354 * Verwenden Sie `/mcp`, um sich bei Remote-Servern zu authentifizieren, die OAuth 2.0-Authentifizierung erfordern
355</Tip>
356
357### Von Plugins bereitgestellte MCP-Server
358
359[Plugins](/de/plugins) können MCP-Server bündeln und automatisch Tools und Integrationen bereitstellen, wenn das Plugin aktiviert ist. Plugin-MCP-Server funktionieren identisch mit benutzerkonfigurierten Servern.
360
361**Wie Plugin-MCP-Server funktionieren**:
362
363* Plugins definieren MCP-Server in `.mcp.json` im Plugin-Root oder inline in `plugin.json`
364* Wenn ein Plugin aktiviert ist, starten seine MCP-Server automatisch
365* Plugin-MCP-Tools erscheinen neben manuell konfigurierten MCP-Tools
366* Plugin-Server werden durch die Plugin-Installation verwaltet (nicht durch `/mcp`-Befehle)
367
368**Beispiel-Plugin-MCP-Konfiguration**:
369
370In `.mcp.json` im Plugin-Root:
371
372```json theme={null}
373{
374 "mcpServers": {
375 "database-tools": {
376 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
377 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
378 "env": {
379 "DB_URL": "${DB_URL}"
380 }
381 }
382 }
383}
384```
385
386Oder inline in `plugin.json`:
387
388```json theme={null}
389{
390 "name": "my-plugin",
391 "mcpServers": {
392 "plugin-api": {
393 "command": "${CLAUDE_PLUGIN_ROOT}/servers/api-server",
394 "args": ["--port", "8080"]
395 }
396 }
397}
398```
399
400**Plugin-MCP-Funktionen**:
401
402* **Automatischer Lebenszyklus**: Bei Sitzungsstart verbinden sich Server für aktivierte Plugins automatisch. Wenn Sie ein Plugin während einer Sitzung aktivieren oder deaktivieren, führen Sie `/reload-plugins` aus, um seine MCP-Server zu verbinden oder zu trennen
403* **Umgebungsvariablen**: Verwenden Sie `${CLAUDE_PLUGIN_ROOT}` für gebündelte Plugin-Dateien und `${CLAUDE_PLUGIN_DATA}` für [persistente Daten](/de/plugins-reference#persistent-data-directory), die Plugin-Updates überstehen
404* **Zugriff auf Benutzerumgebung**: Zugriff auf die gleichen Umgebungsvariablen wie manuell konfigurierte Server
405* **Mehrere Transporttypen**: Unterstützung für Stdio-, SSE- und HTTP-Transporte (die Transportunterstützung kann je nach Server variieren)
406
407**Anzeigen von Plugin-MCP-Servern**:
408
409```bash theme={null}
410# Innerhalb von Claude Code alle MCP-Server einschließlich Plugin-Server anzeigen
411/mcp
412```
413
414Plugin-Server erscheinen in der Liste mit Indikatoren, die zeigen, dass sie von Plugins stammen.
415
416**Vorteile von Plugin-MCP-Servern**:
417
418* **Gebündelte Verteilung**: Tools und Server zusammen verpackt
419* **Automatische Einrichtung**: Keine manuelle MCP-Konfiguration erforderlich
420* **Team-Konsistenz**: Alle erhalten die gleichen Tools, wenn das Plugin installiert ist
421
422Siehe die [Plugin-Komponenten-Referenz](/de/plugins-reference#mcp-servers) für Details zum Bündeln von MCP-Servern mit Plugins.
423
424## MCP-Installationsbereiche
425
426MCP-Server können auf drei verschiedenen Bereichsebenen konfiguriert werden. Der Bereich, den Sie wählen, steuert, in welchen Projekten der Server geladen wird und ob die Konfiguration mit Ihrem Team geteilt wird.
427
428| Bereich | Wird geladen in | Mit Team geteilt | Gespeichert in |
429| ------------------------- | --------------------- | -------------------------- | --------------------------- |
430| [Lokal](#local-scope) | Nur aktuelles Projekt | Nein | `~/.claude.json` |
431| [Projekt](#project-scope) | Nur aktuelles Projekt | Ja, über Versionskontrolle | `.mcp.json` im Projekt-Root |
432| [Benutzer](#user-scope) | Alle Ihre Projekte | Nein | `~/.claude.json` |
433
434### Lokaler Bereich
435
436Der lokale Bereich ist der Standard. Ein lokal begrenzter Server wird nur in dem Projekt geladen, in dem Sie ihn hinzugefügt haben, und bleibt privat für Sie. Claude Code speichert ihn in `~/.claude.json` unter dem Pfad dieses Projekts, daher wird derselbe Server nicht in Ihren anderen Projekten angezeigt. Verwenden Sie den lokalen Bereich für persönliche Entwicklungsserver, experimentelle Konfigurationen oder Server mit Anmeldedaten, die Sie nicht in der Versionskontrolle haben möchten.
437
438<Note>
439 Der Begriff „lokaler Bereich" für MCP-Server unterscheidet sich von allgemeinen lokalen Einstellungen. Lokal begrenzte MCP-Server werden in `~/.claude.json` (Ihr Home-Verzeichnis) gespeichert, während allgemeine lokale Einstellungen `.claude/settings.local.json` (im Projektverzeichnis) verwenden. Siehe [Einstellungen](/de/settings#settings-files) für Details zu Einstellungsdatei-Speicherorten.
440</Note>
441
442```bash theme={null}
443# Einen lokal begrenzten Server hinzufügen (Standard)
444claude mcp add --transport http stripe https://mcp.stripe.com
445
446# Lokalen Bereich explizit angeben
447claude mcp add --transport http stripe --scope local https://mcp.stripe.com
448```
449
450Der Befehl schreibt den Server in den Eintrag für Ihr aktuelles Projekt in `~/.claude.json`. Das folgende Beispiel zeigt das Ergebnis, wenn Sie ihn von `/path/to/your/project` aus ausführen:
451
452```json theme={null}
453{
454 "projects": {
455 "/path/to/your/project": {
456 "mcpServers": {
457 "stripe": {
458 "type": "http",
459 "url": "https://mcp.stripe.com"
460 }
461 }
462 }
463 }
464}
465```
466
467### Projektbereich
468
469Projektbegrenzte Server ermöglichen Teamzusammenarbeit durch das Speichern von Konfigurationen in einer `.mcp.json`-Datei im Root-Verzeichnis Ihres Projekts. Diese Datei ist dazu bestimmt, in die Versionskontrolle eingecheckt zu werden, um sicherzustellen, dass alle Teammitglieder Zugriff auf die gleichen MCP-Tools und -Dienste haben. Wenn Sie einen projektbegrenzten Server hinzufügen, erstellt oder aktualisiert Claude Code automatisch diese Datei mit der entsprechenden Konfigurationsstruktur.
470
471```bash theme={null}
472# Einen projektbegrenzten Server hinzufügen
473claude mcp add --transport http paypal --scope project https://mcp.paypal.com/mcp
474```
475
476Die resultierende `.mcp.json`-Datei folgt einem standardisierten Format:
477
478```json theme={null}
479{
480 "mcpServers": {
481 "shared-server": {
482 "command": "/path/to/server",
483 "args": [],
484 "env": {}
485 }
486 }
487}
488```
489
490Aus Sicherheitsgründen fordert Claude Code eine Genehmigung an, bevor projektbegrenzte Server aus `.mcp.json`-Dateien verwendet werden. Wenn Sie diese Genehmigungswahlmöglichkeiten zurücksetzen müssen, verwenden Sie den Befehl `claude mcp reset-project-choices`.
491
492### Benutzerbereich
493
494Benutzerbegrenzte Server werden in `~/.claude.json` gespeichert und bieten projektübergreifende Zugänglichkeit, wodurch sie über alle Projekte auf Ihrem Computer verfügbar sind und gleichzeitig privat für Ihr Benutzerkonto bleiben. Dieser Bereich funktioniert gut für persönliche Utility-Server, Entwicklungstools oder Dienste, die Sie häufig über verschiedene Projekte hinweg verwenden.
495
496```bash theme={null}
497# Einen Benutzer-Server hinzufügen
498claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic
499```
500
501### Bereichshierarchie und Vorrang
502
503Wenn derselbe Server auf mehreren Bereichen definiert ist, verbindet sich Claude Code einmal damit und verwendet die Definition aus der höchsten Vorrangsquelle:
504
5051. Lokaler Bereich
5062. Projektbereich
5073. Benutzerbereich
5084. [Von Plugins bereitgestellte Server](/de/plugins)
5095. [Claude.ai-Connectoren](#use-mcp-servers-from-claude-ai)
510
511Die drei Bereiche stimmen Duplikate nach Name ab. Plugins und Connectoren stimmen nach Endpunkt ab, daher wird einer, der auf die gleiche URL oder den gleichen Befehl wie ein Server oben verweist, als Duplikat behandelt.
512
513### Umgebungsvariablen-Erweiterung in `.mcp.json`
514
515Claude Code unterstützt die Umgebungsvariablen-Erweiterung in `.mcp.json`-Dateien, die es Teams ermöglicht, Konfigurationen zu teilen und gleichzeitig Flexibilität für maschinenspezifische Pfade und vertrauliche Werte wie API-Schlüssel zu bewahren.
516
517**Unterstützte Syntax:**
518
519* `${VAR}` - Erweitert sich zum Wert der Umgebungsvariablen `VAR`
520* `${VAR:-default}` - Erweitert sich zu `VAR`, wenn gesetzt, andernfalls wird `default` verwendet
521
522**Erweiterungsorte:**
523Umgebungsvariablen können erweitert werden in:
524
525* `command` - Der Server-Ausführungspfad
526* `args` - Befehlszeilenargumente
527* `env` - Umgebungsvariablen, die an den Server übergeben werden
528* `url` - Für HTTP-Server-Typen
529* `headers` - Für HTTP-Server-Authentifizierung
530
531**Beispiel mit Variablenerweiterung:**
532
533```json theme={null}
534{
535 "mcpServers": {
536 "api-server": {
537 "type": "http",
538 "url": "${API_BASE_URL:-https://api.example.com}/mcp",
539 "headers": {
540 "Authorization": "Bearer ${API_KEY}"
541 }
542 }
543 }
544}
545```
546
547Wenn eine erforderliche Umgebungsvariable nicht gesetzt ist und keinen Standardwert hat, kann Claude Code die Konfiguration nicht analysieren.
548
549## Praktische Beispiele
550
551{/* ### Beispiel: Browser-Tests mit Playwright automatisieren
552
553```bash
554claude mcp add --transport stdio playwright -- npx -y @playwright/mcp@latest
555```
556
557Dann schreiben und führen Sie Browser-Tests aus:
558
559```text
560Test if the login flow works with test@example.com
561```
562```text
563Take a screenshot of the checkout page on mobile
564```
565```text
566Verify that the search feature returns results
567``` */}
568
569### Beispiel: Fehler mit Sentry überwachen
570
571```bash theme={null}
572claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
573```
574
575Authentifizieren Sie sich mit Ihrem Sentry-Konto:
576
577```text theme={null}
578/mcp
579```
580
581Debuggen Sie dann Produktionsprobleme:
582
583```text theme={null}
584What are the most common errors in the last 24 hours?
585```
586
587```text theme={null}
588Show me the stack trace for error ID abc123
589```
590
591```text theme={null}
592Which deployment introduced these new errors?
593```
594
595### Beispiel: Mit GitHub für Code-Reviews verbinden
596
597GitHubs Remote-MCP-Server authentifiziert sich mit einem GitHub-Personal-Access-Token, der als Header übergeben wird. Um einen zu erhalten, öffnen Sie Ihre [GitHub-Token-Einstellungen](https://github.com/settings/personal-access-tokens), generieren Sie ein neues feingranulares Token mit Zugriff auf die Repositories, mit denen Claude arbeiten soll, und fügen Sie dann den Server hinzu:
598
599```bash theme={null}
600claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
601 --header "Authorization: Bearer YOUR_GITHUB_PAT"
602```
603
604Arbeiten Sie dann mit GitHub:
605
606```text theme={null}
607Review PR #456 and suggest improvements
608```
609
610```text theme={null}
611Create a new issue for the bug we just found
612```
613
614```text theme={null}
615Show me all open PRs assigned to me
616```
617
618### Beispiel: Ihre PostgreSQL-Datenbank abfragen
619
620```bash theme={null}
621claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
622 --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"
623```
624
625Fragen Sie dann Ihre Datenbank natürlich ab:
626
627```text theme={null}
628What's our total revenue this month?
629```
630
631```text theme={null}
632Show me the schema for the orders table
633```
634
635```text theme={null}
636Find customers who haven't made a purchase in 90 days
637```
638
639## Mit Remote-MCP-Servern authentifizieren
640
641Viele Cloud-basierte MCP-Server erfordern Authentifizierung. Claude Code unterstützt OAuth 2.0 für sichere Verbindungen.
642
643<Steps>
644 <Step title="Fügen Sie den Server hinzu, der Authentifizierung erfordert">
645 Zum Beispiel:
646
647 ```bash theme={null}
648 claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
649 ```
650 </Step>
651
652 <Step title="Verwenden Sie den /mcp-Befehl innerhalb von Claude Code">
653 In Claude Code verwenden Sie den Befehl:
654
655 ```text theme={null}
656 /mcp
657 ```
658
659 Folgen Sie dann den Schritten in Ihrem Browser, um sich anzumelden.
660 </Step>
661</Steps>
662
663<Tip>
664 Tipps:
665
666 * Authentifizierungstoken werden sicher gespeichert und automatisch aktualisiert
667 * Verwenden Sie „Clear authentication" im `/mcp`-Menü, um den Zugriff zu widerrufen
668 * Wenn Ihr Browser nicht automatisch geöffnet wird, kopieren Sie die bereitgestellte URL und öffnen Sie sie manuell
669 * Wenn die Browser-Umleitung nach der Authentifizierung mit einem Verbindungsfehler fehlschlägt, fügen Sie die vollständige Callback-URL aus der Adressleiste Ihres Browsers in die URL-Eingabeaufforderung ein, die in Claude Code angezeigt wird
670 * OAuth-Authentifizierung funktioniert mit HTTP-Servern
671</Tip>
672
673### Verwenden Sie einen festen OAuth-Callback-Port
674
675Einige MCP-Server erfordern einen spezifischen Redirect-URI, der im Voraus registriert ist. Standardmäßig wählt Claude Code einen zufällig verfügbaren Port für den OAuth-Callback. Verwenden Sie `--callback-port`, um den Port zu fixieren, damit er einem vorregistrierten Redirect-URI der Form `http://localhost:PORT/callback` entspricht.
676
677Sie können `--callback-port` allein (mit dynamischer Client-Registrierung) oder zusammen mit `--client-id` (mit vorkonfigurierten Anmeldedaten) verwenden.
678
679```bash theme={null}
680# Fester Callback-Port mit dynamischer Client-Registrierung
681claude mcp add --transport http \
682 --callback-port 8080 \
683 my-server https://mcp.example.com/mcp
684```
685
686### Verwenden Sie vorkonfigurierte OAuth-Anmeldedaten
687
688Einige MCP-Server unterstützen keine automatische OAuth-Einrichtung über Dynamic Client Registration. Wenn Sie einen Fehler wie „Incompatible auth server: does not support dynamic client registration" sehen, erfordert der Server vorkonfigurierte Anmeldedaten. Claude Code unterstützt auch Server, die ein Client ID Metadata Document (CIMD) anstelle von Dynamic Client Registration verwenden, und erkennt diese automatisch. Wenn die automatische Erkennung fehlschlägt, registrieren Sie zunächst eine OAuth-App über das Entwicklerportal des Servers und geben Sie dann die Anmeldedaten beim Hinzufügen des Servers an.
689
690<Steps>
691 <Step title="Registrieren Sie eine OAuth-App beim Server">
692 Erstellen Sie eine App über das Entwicklerportal des Servers und notieren Sie sich Ihre Client-ID und Ihren Client-Secret.
693
694 Viele Server erfordern auch einen Redirect-URI. Wenn ja, wählen Sie einen Port und registrieren Sie einen Redirect-URI im Format `http://localhost:PORT/callback`. Verwenden Sie denselben Port mit `--callback-port` im nächsten Schritt.
695 </Step>
696
697 <Step title="Fügen Sie den Server mit Ihren Anmeldedaten hinzu">
698 Wählen Sie eine der folgenden Methoden. Der für `--callback-port` verwendete Port kann ein beliebiger verfügbarer Port sein. Er muss nur dem Redirect-URI entsprechen, den Sie im vorherigen Schritt registriert haben.
699
700 <Tabs>
701 <Tab title="claude mcp add">
702 Verwenden Sie `--client-id`, um die Client-ID Ihrer App zu übergeben. Das Flag `--client-secret` fordert das Secret mit maskierter Eingabe an:
703
704 ```bash theme={null}
705 claude mcp add --transport http \
706 --client-id your-client-id --client-secret --callback-port 8080 \
707 my-server https://mcp.example.com/mcp
708 ```
709 </Tab>
710
711 <Tab title="claude mcp add-json">
712 Fügen Sie das Objekt `oauth` in die JSON-Konfiguration ein und übergeben Sie `--client-secret` als separates Flag:
713
714 ```bash theme={null}
715 claude mcp add-json my-server \
716 '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"clientId":"your-client-id","callbackPort":8080}}' \
717 --client-secret
718 ```
719 </Tab>
720
721 <Tab title="claude mcp add-json (nur Callback-Port)">
722 Verwenden Sie `--callback-port` ohne Client-ID, um den Port zu fixieren und gleichzeitig die dynamische Client-Registrierung zu verwenden:
723
724 ```bash theme={null}
725 claude mcp add-json my-server \
726 '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"callbackPort":8080}}'
727 ```
728 </Tab>
729
730 <Tab title="CI / Umgebungsvariable">
731 Legen Sie das Secret über eine Umgebungsvariable fest, um die interaktive Eingabeaufforderung zu überspringen:
732
733 ```bash theme={null}
734 MCP_CLIENT_SECRET=your-secret claude mcp add --transport http \
735 --client-id your-client-id --client-secret --callback-port 8080 \
736 my-server https://mcp.example.com/mcp
737 ```
738 </Tab>
739 </Tabs>
740 </Step>
741
742 <Step title="Authentifizieren Sie sich in Claude Code">
743 Führen Sie `/mcp` in Claude Code aus und folgen Sie dem Browser-Login-Ablauf.
744 </Step>
745</Steps>
746
747<Tip>
748 Tipps:
749
750 * Das Client-Secret wird sicher in Ihrem System-Keychain (macOS) oder einer Anmeldedatei gespeichert, nicht in Ihrer Konfiguration
751 * Wenn der Server einen öffentlichen OAuth-Client ohne Secret verwendet, verwenden Sie nur `--client-id` ohne `--client-secret`
752 * `--callback-port` kann mit oder ohne `--client-id` verwendet werden
753 * Diese Flags gelten nur für HTTP- und SSE-Transporte. Sie haben keine Auswirkung auf Stdio-Server
754 * Verwenden Sie `claude mcp get <name>`, um zu überprüfen, dass OAuth-Anmeldedaten für einen Server konfiguriert sind
755</Tip>
756
757### Überschreiben Sie die OAuth-Metadaten-Erkennung
758
759Verweisen Sie Claude Code auf eine spezifische OAuth-Autorisierungsserver-Metadaten-URL, um die Standard-Erkennungskette zu umgehen. Legen Sie `authServerMetadataUrl` fest, wenn die Standard-Endpunkte des MCP-Servers Fehler zurückgeben, oder wenn Sie die Erkennung durch einen internen Proxy leiten möchten. Standardmäßig überprüft Claude Code zunächst RFC 9728 Protected Resource Metadata unter `/.well-known/oauth-protected-resource` und fällt dann auf RFC 8414 Authorization Server Metadata unter `/.well-known/oauth-authorization-server` zurück.
760
761Legen Sie `authServerMetadataUrl` im Objekt `oauth` der Konfiguration Ihres Servers in `.mcp.json` fest:
762
763```json theme={null}
764{
765 "mcpServers": {
766 "my-server": {
767 "type": "http",
768 "url": "https://mcp.example.com/mcp",
769 "oauth": {
770 "authServerMetadataUrl": "https://auth.example.com/.well-known/openid-configuration"
771 }
772 }
773 }
774}
775```
776
777Die URL muss `https://` verwenden. `authServerMetadataUrl` erfordert Claude Code v2.1.64 oder später. Die `scopes_supported` der Metadaten-URL überschreiben die Bereiche, die der Upstream-Server bewirbt.
778
779### Beschränken Sie OAuth-Bereiche
780
781Legen Sie `oauth.scopes` fest, um die Bereiche zu fixieren, die Claude Code während des Autorisierungsflusses anfordert. Dies ist die unterstützte Methode, um einen MCP-Server auf eine von Ihrem Sicherheitsteam genehmigte Teilmenge zu beschränken, wenn der Upstream-Autorisierungsserver mehr Bereiche bewirbt, als Sie gewähren möchten. Der Wert ist eine einzelne durch Leerzeichen getrennte Zeichenkette, die dem `scope`-Parameter-Format in RFC 6749 §3.3 entspricht.
782
783```json theme={null}
784{
785 "mcpServers": {
786 "slack": {
787 "type": "http",
788 "url": "https://mcp.slack.com/mcp",
789 "oauth": {
790 "scopes": "channels:read chat:write search:read"
791 }
792 }
793 }
794}
795```
796
797`oauth.scopes` hat Vorrang vor sowohl `authServerMetadataUrl` als auch den Bereichen, die der Server unter `/.well-known` entdeckt. Lassen Sie es ungesetzt, damit der MCP-Server den angeforderten Bereichssatz bestimmt.
798
799Wenn der Autorisierungsserver `offline_access` in `scopes_supported` bewirbt, fügt Claude Code es zu den fixierten Bereichen hinzu, damit das Zugriffs-Token ohne neue Browser-Anmeldung aktualisiert werden kann.
800
801Wenn der Server später einen 403 `insufficient_scope` für einen Tool-Aufruf zurückgibt, authentifiziert sich Claude Code mit den gleichen fixierten Bereichen erneut. Erweitern Sie `oauth.scopes`, wenn ein Tool, das Sie benötigen, einen Bereich außerhalb der Fixierung erfordert.
802
803### Verwenden Sie dynamische Header für benutzerdefinierte Authentifizierung
804
805Wenn Ihr MCP-Server ein anderes Authentifizierungsschema verwendet als OAuth (wie Kerberos, kurzlebige Token oder ein internes SSO), verwenden Sie `headersHelper`, um Request-Header zur Verbindungszeit zu generieren. Claude Code führt den Befehl aus und fügt seine Ausgabe in die Verbindungs-Header ein.
806
807```json theme={null}
808{
809 "mcpServers": {
810 "internal-api": {
811 "type": "http",
812 "url": "https://mcp.internal.example.com",
813 "headersHelper": "/opt/bin/get-mcp-auth-headers.sh"
814 }
815 }
816}
817```
818
819Der Befehl kann auch inline sein:
820
821```json theme={null}
822{
823 "mcpServers": {
824 "internal-api": {
825 "type": "http",
826 "url": "https://mcp.internal.example.com",
827 "headersHelper": "echo '{\"Authorization\": \"Bearer '\"$(get-token)\"'\"}'"
828 }
829 }
830}
831```
832
833**Anforderungen:**
834
835* Der Befehl muss ein JSON-Objekt mit String-Schlüssel-Wert-Paaren auf stdout schreiben
836* Der Befehl wird in einer Shell mit einem 10-Sekunden-Timeout ausgeführt
837* Dynamische Header überschreiben alle statischen `headers` mit dem gleichen Namen
838
839Der Helper wird bei jeder Verbindung neu ausgeführt (beim Sitzungsstart und bei Wiederverbindung). Es gibt kein Caching, daher ist Ihr Skript für jede Token-Wiederverwendung verantwortlich.
840
841Claude Code setzt diese Umgebungsvariablen beim Ausführen des Helpers:
842
843| Variable | Wert |
844| :---------------------------- | :----------------------- |
845| `CLAUDE_CODE_MCP_SERVER_NAME` | der Name des MCP-Servers |
846| `CLAUDE_CODE_MCP_SERVER_URL` | die URL des MCP-Servers |
847
848Verwenden Sie diese, um ein einzelnes Helper-Skript zu schreiben, das mehrere MCP-Server bedient.
849
850<Note>
851 `headersHelper` führt beliebige Shell-Befehle aus. Wenn es auf Projekt- oder lokalem Bereich definiert ist, wird es nur nach Ihrer Zustimmung zum Workspace-Trust-Dialog ausgeführt.
852</Note>
853
854## MCP-Server aus JSON-Konfiguration hinzufügen
855
856Wenn Sie eine JSON-Konfiguration für einen MCP-Server haben, können Sie sie direkt hinzufügen:
857
858<Steps>
859 <Step title="Fügen Sie einen MCP-Server aus JSON hinzu">
860 ```bash theme={null}
861 # Grundlegende Syntax
862 claude mcp add-json <name> '<json>'
863
864 # Beispiel: Hinzufügen eines HTTP-Servers mit JSON-Konfiguration
865 claude mcp add-json weather-api '{"type":"http","url":"https://api.weather.com/mcp","headers":{"Authorization":"Bearer token"}}'
866
867 # Beispiel: Hinzufügen eines Stdio-Servers mit JSON-Konfiguration
868 claude mcp add-json local-weather '{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'
869
870 # Beispiel: Hinzufügen eines HTTP-Servers mit vorkonfigurierten OAuth-Anmeldedaten
871 claude mcp add-json my-server '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"clientId":"your-client-id","callbackPort":8080}}' --client-secret
872 ```
873 </Step>
874
875 <Step title="Überprüfen Sie, dass der Server hinzugefügt wurde">
876 ```bash theme={null}
877 claude mcp get weather-api
878 ```
879 </Step>
880</Steps>
881
882<Tip>
883 Tipps:
884
885 * Stellen Sie sicher, dass das JSON in Ihrer Shell ordnungsgemäß escaped ist
886 * Das JSON muss dem MCP-Server-Konfigurationsschema entsprechen
887 * Sie können `--scope user` verwenden, um den Server zu Ihrer Benutzerkonfiguration statt zur projektspezifischen hinzuzufügen
888</Tip>
889
890## MCP-Server aus Claude Desktop importieren
891
892Wenn Sie bereits MCP-Server in Claude Desktop konfiguriert haben, können Sie diese importieren:
893
894<Steps>
895 <Step title="Importieren Sie Server aus Claude Desktop">
896 ```bash theme={null}
897 # Grundlegende Syntax
898 claude mcp add-from-claude-desktop
899 ```
900 </Step>
901
902 <Step title="Wählen Sie aus, welche Server importiert werden sollen">
903 Nach dem Ausführen des Befehls wird ein interaktives Dialogfeld angezeigt, in dem Sie auswählen können, welche Server Sie importieren möchten.
904 </Step>
905
906 <Step title="Überprüfen Sie, dass die Server importiert wurden">
907 ```bash theme={null}
908 claude mcp list
909 ```
910 </Step>
911</Steps>
912
913<Tip>
914 Tipps:
915
916 * Diese Funktion funktioniert nur auf macOS und Windows Subsystem for Linux (WSL)
917 * Sie liest die Claude Desktop-Konfigurationsdatei von ihrem Standardort auf diesen Plattformen
918 * Verwenden Sie das Flag `--scope user`, um Server zu Ihrer Benutzerkonfiguration hinzuzufügen
919 * Importierte Server haben die gleichen Namen wie in Claude Desktop
920 * Wenn Server mit den gleichen Namen bereits vorhanden sind, erhalten sie ein numerisches Suffix (zum Beispiel `server_1`)
921</Tip>
922
923## MCP-Server von Claude.ai verwenden
924
925Wenn Sie sich in Claude Code mit einem [Claude.ai](https://claude.ai)-Konto angemeldet haben, sind MCP-Server, die Sie in Claude.ai hinzugefügt haben, automatisch in Claude Code verfügbar:
926
927<Steps>
928 <Step title="Konfigurieren Sie MCP-Server in Claude.ai">
929 Fügen Sie Server unter [claude.ai/customize/connectors](https://claude.ai/customize/connectors) hinzu. Bei Team- und Enterprise-Plänen können nur Administratoren Server hinzufügen.
930 </Step>
931
932 <Step title="Authentifizieren Sie den MCP-Server">
933 Führen Sie alle erforderlichen Authentifizierungsschritte in Claude.ai durch.
934 </Step>
935
936 <Step title="Zeigen Sie Server in Claude Code an und verwalten Sie sie">
937 In Claude Code verwenden Sie den Befehl:
938
939 ```text theme={null}
940 /mcp
941 ```
942
943 Claude.ai-Server erscheinen in der Liste mit Indikatoren, die zeigen, dass sie von Claude.ai stammen.
944 </Step>
945</Steps>
946
947Um Claude.ai-MCP-Server in Claude Code zu deaktivieren, setzen Sie die Umgebungsvariable `ENABLE_CLAUDEAI_MCP_SERVERS` auf `false`:
948
949```bash theme={null}
950ENABLE_CLAUDEAI_MCP_SERVERS=false claude
951```
952
953## Claude Code als MCP-Server verwenden
954
955Sie können Claude Code selbst als MCP-Server verwenden, mit dem sich andere Anwendungen verbinden können:
956
957```bash theme={null}
958# Starten Sie Claude als Stdio-MCP-Server
959claude mcp serve
960```
961
962Sie können dies in Claude Desktop verwenden, indem Sie diese Konfiguration zu claude\_desktop\_config.json hinzufügen:
963
964```json theme={null}
965{
966 "mcpServers": {
967 "claude-code": {
968 "type": "stdio",
969 "command": "claude",
970 "args": ["mcp", "serve"],
971 "env": {}
972 }
973 }
974}
975```
976
977<Warning>
978 **Konfigurieren Sie den Pfad der ausführbaren Datei**: Das Feld `command` muss auf die Claude Code-Ausführungsdatei verweisen. Wenn der Befehl `claude` nicht in Ihrem System-PATH vorhanden ist, müssen Sie den vollständigen Pfad zur ausführbaren Datei angeben.
979
980 Um den vollständigen Pfad zu finden:
981
982 ```bash theme={null}
983 which claude
984 ```
985
986 Verwenden Sie dann den vollständigen Pfad in Ihrer Konfiguration:
987
988 ```json theme={null}
989 {
990 "mcpServers": {
991 "claude-code": {
992 "type": "stdio",
993 "command": "/full/path/to/claude",
994 "args": ["mcp", "serve"],
995 "env": {}
996 }
997 }
998 }
999 ```
1000
1001 Ohne den korrekten Pfad der ausführbaren Datei treten Fehler wie `spawn claude ENOENT` auf.
1002</Warning>
1003
1004<Tip>
1005 Tipps:
1006
1007 * Der Server bietet Zugriff auf Claudes Tools wie View, Edit, LS usw.
1008 * In Claude Desktop versuchen Sie, Claude aufzufordern, Dateien in einem Verzeichnis zu lesen, Änderungen vorzunehmen und mehr.
1009 * Beachten Sie, dass dieser MCP-Server nur Claudes Tools für Ihren MCP-Client verfügbar macht, daher ist Ihr eigener Client dafür verantwortlich, Benutzerbestätigung für einzelne Tool-Aufrufe zu implementieren.
1010</Tip>
1011
1012## MCP-Ausgabelimits und Warnungen
1013
1014Wenn MCP-Tools große Ausgaben erzeugen, hilft Claude Code bei der Verwaltung der Token-Nutzung, um zu verhindern, dass Ihr Gesprächskontext überwältigt wird:
1015
1016* **Ausgabe-Warnungsschwelle**: Claude Code zeigt eine Warnung an, wenn eine MCP-Tool-Ausgabe 10.000 Token überschreitet
1017* **Konfigurierbares Limit**: Sie können die maximale zulässige MCP-Ausgabe-Token mit der Umgebungsvariablen `MAX_MCP_OUTPUT_TOKENS` anpassen
1018* **Standardlimit**: Das Standardmaximum beträgt 25.000 Token
1019* **Bereich**: Die Umgebungsvariable gilt für Tools, die kein eigenes Limit deklarieren. Tools, die [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) setzen, verwenden diesen Wert stattdessen für Textinhalte, unabhängig davon, auf was `MAX_MCP_OUTPUT_TOKENS` gesetzt ist. Tools, die Bilddaten zurückgeben, unterliegen immer noch `MAX_MCP_OUTPUT_TOKENS`
1020
1021Um das Limit für Tools zu erhöhen, die große Ausgaben erzeugen:
1022
1023```bash theme={null}
1024export MAX_MCP_OUTPUT_TOKENS=50000
1025claude
1026```
1027
1028Dies ist besonders nützlich bei der Arbeit mit MCP-Servern, die:
1029
1030* Große Datensätze oder Datenbanken abfragen
1031* Detaillierte Berichte oder Dokumentation generieren
1032* Umfangreiche Protokolldateien oder Debugging-Informationen verarbeiten
1033
1034### Erhöhen Sie das Limit für ein bestimmtes Tool
1035
1036Wenn Sie einen MCP-Server erstellen, können Sie einzelnen Tools ermöglichen, Ergebnisse größer als die Standard-Persist-to-Disk-Schwelle zurückzugeben, indem Sie `_meta["anthropic/maxResultSizeChars"]` in der Tool-Antwort des `tools/list` einstellen. Claude Code erhöht die Schwelle dieses Tools auf den annotierten Wert, bis zu einer harten Obergrenze von 500.000 Zeichen.
1037
1038Dies ist nützlich für Tools, die inhärent große, aber notwendige Ausgaben zurückgeben, wie Datenbankschemas oder vollständige Dateibäume. Ohne die Anmerkung werden Ergebnisse, die die Standard-Schwelle überschreiten, auf die Festplatte persistiert und durch eine Dateireferenz im Gespräch ersetzt.
1039
1040```json theme={null}
1041{
1042 "name": "get_schema",
1043 "description": "Returns the full database schema",
1044 "_meta": {
1045 "anthropic/maxResultSizeChars": 200000
1046 }
1047}
1048```
1049
1050Die Anmerkung gilt unabhängig von `MAX_MCP_OUTPUT_TOKENS` für Textinhalte, daher müssen Benutzer die Umgebungsvariable nicht für Tools erhöhen, die sie deklarieren. Tools, die Bilddaten zurückgeben, unterliegen immer noch dem Token-Limit.
1051
1052<Warning>
1053 Wenn Sie häufig Ausgabewarnungen bei bestimmten MCP-Servern erhalten, die Sie nicht kontrollieren, erwägen Sie, das Limit `MAX_MCP_OUTPUT_TOKENS` zu erhöhen. Sie können auch den Server-Autor bitten, die Anmerkung `anthropic/maxResultSizeChars` hinzuzufügen oder ihre Antworten zu paginieren. Die Anmerkung hat keine Auswirkung auf Tools, die Bildinhalte zurückgeben; für diese ist das Erhöhen von `MAX_MCP_OUTPUT_TOKENS` die einzige Option.
1054</Warning>
1055
1056## Reagieren Sie auf MCP-Elicitierungsanfragen
1057
1058MCP-Server können während einer Aufgabe strukturierte Eingaben von Ihnen anfordern, indem sie Elicitierung verwenden. Wenn ein Server Informationen benötigt, die er nicht selbst abrufen kann, zeigt Claude Code einen interaktiven Dialog an und leitet Ihre Antwort an den Server weiter. Auf Ihrer Seite ist keine Konfiguration erforderlich: Elicitierungs-Dialoge erscheinen automatisch, wenn ein Server sie anfordert.
1059
1060Server können Eingaben auf zwei Arten anfordern:
1061
1062* **Formularmodus**: Claude Code zeigt einen Dialog mit Formularfeldern an, die vom Server definiert werden (zum Beispiel eine Eingabeaufforderung für Benutzername und Passwort). Füllen Sie die Felder aus und senden Sie sie ab.
1063* **URL-Modus**: Claude Code öffnet eine Browser-URL für Authentifizierung oder Genehmigung. Führen Sie den Ablauf im Browser durch und bestätigen Sie dann in der CLI.
1064
1065Um automatisch auf Elicitierungsanfragen ohne Dialog zu reagieren, verwenden Sie den [`Elicitation`-Hook](/de/hooks#Elicitation).
1066
1067Wenn Sie einen MCP-Server erstellen, der Elicitierung verwendet, siehe die [MCP-Elicitierungs-Spezifikation](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) für Protokolldetails und Schema-Beispiele.
1068
1069## MCP-Ressourcen verwenden
1070
1071MCP-Server können Ressourcen verfügbar machen, auf die Sie mit @-Erwähnungen verweisen können, ähnlich wie Sie auf Dateien verweisen.
1072
1073### Referenzieren Sie MCP-Ressourcen
1074
1075<Steps>
1076 <Step title="Verfügbare Ressourcen auflisten">
1077 Geben Sie `@` in Ihre Eingabeaufforderung ein, um verfügbare Ressourcen von allen verbundenen MCP-Servern anzuzeigen. Ressourcen erscheinen neben Dateien im Autocomplete-Menü.
1078 </Step>
1079
1080 <Step title="Referenzieren Sie eine bestimmte Ressource">
1081 Verwenden Sie das Format `@server:protocol://resource/path`, um auf eine Ressource zu verweisen:
1082
1083 ```text theme={null}
1084 Can you analyze @github:issue://123 and suggest a fix?
1085 ```
1086
1087 ```text theme={null}
1088 Please review the API documentation at @docs:file://api/authentication
1089 ```
1090 </Step>
1091
1092 <Step title="Mehrere Ressourcenreferenzen">
1093 Sie können mehrere Ressourcen in einer einzelnen Eingabeaufforderung referenzieren:
1094
1095 ```text theme={null}
1096 Compare @postgres:schema://users with @docs:file://database/user-model
1097 ```
1098 </Step>
1099</Steps>
1100
1101<Tip>
1102 Tipps:
1103
1104 * Ressourcen werden automatisch abgerufen und als Anhänge eingefügt, wenn sie referenziert werden
1105 * Ressourcenpfade sind fuzzy-durchsuchbar im @-Erwähnungs-Autocomplete
1106 * Claude Code stellt automatisch Tools zur Verfügung, um MCP-Ressourcen aufzulisten und zu lesen, wenn Server diese unterstützen
1107 * Ressourcen können jeden Inhaltstyp enthalten, den der MCP-Server bereitstellt (Text, JSON, strukturierte Daten usw.)
1108</Tip>
1109
1110## Mit MCP-Tool-Suche skalieren
1111
1112Die Tool-Suche hält die MCP-Kontextnutzung niedrig, indem Tool-Definitionen aufgeschoben werden, bis Claude sie benötigt. Nur Tool-Namen werden beim Sitzungsstart geladen, daher hat das Hinzufügen weiterer MCP-Server minimale Auswirkungen auf Ihr Kontextfenster.
1113
1114### Wie es funktioniert
1115
1116Die Tool-Suche ist standardmäßig aktiviert. MCP-Tools werden aufgeschoben, anstatt sie vorab in den Kontext zu laden, und Claude verwendet ein Such-Tool, um relevante Tools zu entdecken, wenn eine Aufgabe sie benötigt. Nur die Tools, die Claude tatsächlich verwendet, gelangen in den Kontext. Aus Ihrer Perspektive funktionieren MCP-Tools genau wie zuvor.
1117
1118Wenn Sie schwellenwertbasiertes Laden bevorzugen, setzen Sie `ENABLE_TOOL_SEARCH=auto`, um Schemas vorab zu laden, wenn sie in 10 % des Kontextfensters passen, und verschieben Sie nur den Überschuss. Siehe [Tool-Suche konfigurieren](#configure-tool-search) für alle Optionen.
1119
1120### Für MCP-Server-Autoren
1121
1122Wenn Sie einen MCP-Server erstellen, wird das Feld für Server-Anweisungen mit aktivierter Tool-Suche nützlicher. Server-Anweisungen helfen Claude zu verstehen, wann nach Ihren Tools gesucht werden soll, ähnlich wie [Skills](/de/skills) funktionieren.
1123
1124Fügen Sie klare, aussagekräftige Server-Anweisungen hinzu, die erklären:
1125
1126* Welche Kategorie von Aufgaben Ihre Tools verarbeiten
1127* Wann Claude nach Ihren Tools suchen sollte
1128* Wichtige Funktionen, die Ihr Server bietet
1129
1130Claude Code schneidet Tool-Beschreibungen und Server-Anweisungen bei 2 KB ab. Halten Sie sie prägnant, um Kürzungen zu vermeiden, und platzieren Sie kritische Details am Anfang.
1131
1132### Tool-Suche konfigurieren
1133
1134Die Tool-Suche ist standardmäßig aktiviert: MCP-Tools werden aufgeschoben und bei Bedarf entdeckt. Sie ist standardmäßig auf Vertex AI deaktiviert, das den Tool-Search-Beta-Header nicht akzeptiert, und wenn `ANTHROPIC_BASE_URL` auf einen Host von Drittanbietern verweist, da die meisten Proxys `tool_reference`-Blöcke nicht weiterleiten. Legen Sie `ENABLE_TOOL_SEARCH` explizit fest, um sich anzumelden. Diese Funktion erfordert Modelle, die `tool_reference`-Blöcke unterstützen: Sonnet 4 und später oder Opus 4 und später. Haiku-Modelle unterstützen die Tool-Suche nicht.
1135
1136Steuern Sie das Verhalten der Tool-Suche mit der Umgebungsvariablen `ENABLE_TOOL_SEARCH`:
1137
1138| Wert | Verhalten |
1139| :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1140| (nicht gesetzt) | Alle MCP-Tools werden aufgeschoben und bei Bedarf geladen. Fällt auf das Laden vorab zurück auf Vertex AI oder wenn `ANTHROPIC_BASE_URL` ein Host von Drittanbietern ist |
1141| `true` | Alle MCP-Tools werden aufgeschoben, auch auf Vertex AI und für `ANTHROPIC_BASE_URL` von Drittanbietern |
1142| `auto` | Schwellenmodus: Tools werden vorab geladen, wenn sie in 10 % des Kontextfensters passen, andernfalls aufgeschoben |
1143| `auto:<N>` | Schwellenmodus mit benutzerdefiniertem Prozentsatz, wobei `<N>` 0-100 ist (z. B. `auto:5` für 5 %) |
1144| `false` | Alle MCP-Tools werden vorab geladen, keine Verschiebung |
1145
1146```bash theme={null}
1147# Verwenden Sie eine benutzerdefinierte 5%-Schwelle
1148ENABLE_TOOL_SEARCH=auto:5 claude
1149
1150# Deaktivieren Sie die Tool-Suche vollständig
1151ENABLE_TOOL_SEARCH=false claude
1152```
1153
1154Oder legen Sie den Wert im Feld `env` Ihrer [settings.json](/de/settings#available-settings) fest.
1155
1156Sie können das `ToolSearch`-Tool auch spezifisch deaktivieren:
1157
1158```json theme={null}
1159{
1160 "permissions": {
1161 "deny": ["ToolSearch"]
1162 }
1163}
1164```
1165
1166### Einen Server von der Verschiebung ausnehmen
1167
1168Wenn die Tools eines Servers für Claude immer sichtbar sein sollten, ohne einen Suchschritt durchzuführen, setzen Sie `alwaysLoad` in der Konfiguration dieses Servers auf `true`. Jedes Tool von diesem Server wird dann beim Sitzungsstart in den Kontext geladen, unabhängig von der Einstellung `ENABLE_TOOL_SEARCH`. Verwenden Sie dies für eine kleine Anzahl von Tools, die Claude bei jedem Durchgang benötigt, da jedes vorab geladene Tool Kontext verbraucht, der sonst für Ihr Gespräch verfügbar wäre.
1169
1170Der folgende `.mcp.json`-Eintrag nimmt einen HTTP-Server von der Verschiebung aus, während andere Server aufgeschoben bleiben:
1171
1172```json theme={null}
1173{
1174 "mcpServers": {
1175 "core-tools": {
1176 "type": "http",
1177 "url": "https://mcp.example.com/mcp",
1178 "alwaysLoad": true
1179 }
1180 }
1181}
1182```
1183
1184Das Feld `alwaysLoad` ist auf allen Server-Typen verfügbar und erfordert Claude Code v2.1.121 oder später. Ein MCP-Server kann auch einzelne Tools als immer geladen markieren, indem `"anthropic/alwaysLoad": true` im `_meta`-Objekt des Tools enthalten ist, was denselben Effekt nur für dieses Tool hat.
1185
1186## MCP-Prompts als Befehle verwenden
1187
1188MCP-Server können Prompts verfügbar machen, die in Claude Code als Befehle verfügbar werden.
1189
1190### Führen Sie MCP-Prompts aus
1191
1192<Steps>
1193 <Step title="Entdecken Sie verfügbare Prompts">
1194 Geben Sie `/` ein, um alle verfügbaren Befehle anzuzeigen, einschließlich derer von MCP-Servern. MCP-Prompts erscheinen mit dem Format `/mcp__servername__promptname`.
1195 </Step>
1196
1197 <Step title="Führen Sie einen Prompt ohne Argumente aus">
1198 ```text theme={null}
1199 /mcp__github__list_prs
1200 ```
1201 </Step>
1202
1203 <Step title="Führen Sie einen Prompt mit Argumenten aus">
1204 Viele Prompts akzeptieren Argumente. Übergeben Sie sie durch Leerzeichen getrennt nach dem Befehl:
1205
1206 ```text theme={null}
1207 /mcp__github__pr_review 456
1208 ```
1209
1210 ```text theme={null}
1211 /mcp__jira__create_issue "Bug in login flow" high
1212 ```
1213 </Step>
1214</Steps>
1215
1216<Tip>
1217 Tipps:
1218
1219 * MCP-Prompts werden dynamisch von verbundenen Servern entdeckt
1220 * Argumente werden basierend auf den definierten Parametern des Prompts analysiert
1221 * Prompt-Ergebnisse werden direkt in das Gespräch eingefügt
1222 * Server- und Prompt-Namen werden normalisiert (Leerzeichen werden zu Unterstrichen)
1223</Tip>
1224
1225## Verwaltete MCP-Konfiguration
1226
1227Für Organisationen, die eine zentralisierte Kontrolle über MCP-Server benötigen, unterstützt Claude Code zwei Konfigurationsoptionen:
1228
12291. **Exklusive Kontrolle mit `managed-mcp.json`**: Stellen Sie einen festen Satz von MCP-Servern bereit, die Benutzer nicht ändern oder erweitern können
12302. **Richtlinienbasierte Kontrolle mit Allowlists/Denylists**: Ermöglichen Sie Benutzern, ihre eigenen Server hinzuzufügen, aber beschränken Sie, welche zulässig sind
1231
1232Diese Optionen ermöglichen IT-Administratoren:
1233
1234* **Kontrollieren Sie, auf welche MCP-Server Mitarbeiter zugreifen können**: Stellen Sie einen standardisierten Satz genehmigter MCP-Server in der gesamten Organisation bereit
1235* **Verhindern Sie nicht autorisierte MCP-Server**: Beschränken Sie Benutzer daran, nicht genehmigte MCP-Server hinzuzufügen
1236* **Deaktivieren Sie MCP vollständig**: Entfernen Sie die MCP-Funktionalität vollständig, falls erforderlich
1237
1238### Option 1: Exklusive Kontrolle mit managed-mcp.json
1239
1240Wenn Sie eine `managed-mcp.json`-Datei bereitstellen, übernimmt sie die **exklusive Kontrolle** über alle MCP-Server. Benutzer können keine MCP-Server außer denen, die in dieser Datei definiert sind, hinzufügen, ändern oder verwenden. Dies ist der einfachste Ansatz für Organisationen, die vollständige Kontrolle wünschen.
1241
1242Systemadministratoren stellen die Konfigurationsdatei in einem systemweiten Verzeichnis bereit:
1243
1244* macOS: `/Library/Application Support/ClaudeCode/managed-mcp.json`
1245* Linux und WSL: `/etc/claude-code/managed-mcp.json`
1246* Windows: `C:\Program Files\ClaudeCode\managed-mcp.json`
1247
1248<Note>
1249 Dies sind systemweite Pfade (nicht Benutzer-Home-Verzeichnisse wie `~/Library/...`), die Administratorrechte erfordern. Sie sind dazu bestimmt, von IT-Administratoren bereitgestellt zu werden.
1250</Note>
1251
1252Die `managed-mcp.json`-Datei verwendet das gleiche Format wie eine Standard-`.mcp.json`-Datei:
1253
1254```json theme={null}
1255{
1256 "mcpServers": {
1257 "github": {
1258 "type": "http",
1259 "url": "https://api.githubcopilot.com/mcp/"
1260 },
1261 "sentry": {
1262 "type": "http",
1263 "url": "https://mcp.sentry.dev/mcp"
1264 },
1265 "company-internal": {
1266 "type": "stdio",
1267 "command": "/usr/local/bin/company-mcp-server",
1268 "args": ["--config", "/etc/company/mcp-config.json"],
1269 "env": {
1270 "COMPANY_API_URL": "https://internal.company.com"
1271 }
1272 }
1273 }
1274}
1275```
1276
1277### Option 2: Richtlinienbasierte Kontrolle mit Allowlists und Denylists
1278
1279Anstatt exklusive Kontrolle zu übernehmen, können Administratoren Benutzern erlauben, ihre eigenen MCP-Server zu konfigurieren, während sie Einschränkungen durchsetzen, welche Server zulässig sind. Dieser Ansatz verwendet `allowedMcpServers` und `deniedMcpServers` in der [verwalteten Einstellungsdatei](/de/settings#settings-files).
1280
1281<Note>
1282 **Wahl zwischen Optionen**: Verwenden Sie Option 1 (`managed-mcp.json`), wenn Sie einen festen Satz von Servern ohne Benutzeranpassung bereitstellen möchten. Verwenden Sie Option 2 (Allowlists/Denylists), wenn Sie Benutzern erlauben möchten, ihre eigenen Server innerhalb von Richtlinienbeschränkungen hinzuzufügen.
1283</Note>
1284
1285#### Einschränkungsoptionen
1286
1287Jeder Eintrag in der Allowlist oder Denylist kann Server auf drei Arten einschränken:
1288
12891. **Nach Servername** (`serverName`): Entspricht dem konfigurierten Namen des Servers
12902. **Nach Befehl** (`serverCommand`): Entspricht dem genauen Befehl und den Argumenten, die zum Starten von Stdio-Servern verwendet werden
12913. **Nach URL-Muster** (`serverUrl`): Entspricht Remote-Server-URLs mit Wildcard-Unterstützung
1292
1293**Wichtig**: Jeder Eintrag muss genau einen von `serverName`, `serverCommand` oder `serverUrl` haben.
1294
1295#### Beispielkonfiguration
1296
1297```json theme={null}
1298{
1299 "allowedMcpServers": [
1300 // Nach Servername zulassen
1301 { "serverName": "github" },
1302 { "serverName": "sentry" },
1303
1304 // Nach exaktem Befehl zulassen (für Stdio-Server)
1305 { "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem"] },
1306 { "serverCommand": ["python", "/usr/local/bin/approved-server.py"] },
1307
1308 // Nach URL-Muster zulassen (für Remote-Server)
1309 { "serverUrl": "https://mcp.company.com/*" },
1310 { "serverUrl": "https://*.internal.corp/*" }
1311 ],
1312 "deniedMcpServers": [
1313 // Nach Servername blockieren
1314 { "serverName": "dangerous-server" },
1315
1316 // Nach exaktem Befehl blockieren (für Stdio-Server)
1317 { "serverCommand": ["npx", "-y", "unapproved-package"] },
1318
1319 // Nach URL-Muster blockieren (für Remote-Server)
1320 { "serverUrl": "https://*.untrusted.com/*" }
1321 ]
1322}
1323```
1324
1325#### Wie befehlsbasierte Einschränkungen funktionieren
1326
1327**Exakte Übereinstimmung**:
1328
1329* Befehlsarrays müssen **genau** übereinstimmen – sowohl der Befehl als auch alle Argumente in der richtigen Reihenfolge
1330* Beispiel: `["npx", "-y", "server"]` entspricht NICHT `["npx", "server"]` oder `["npx", "-y", "server", "--flag"]`
1331
1332**Stdio-Server-Verhalten**:
1333
1334* Wenn die Allowlist **irgendwelche** `serverCommand`-Einträge enthält, müssen Stdio-Server einem dieser Befehle entsprechen
1335* Stdio-Server können nicht allein nach Name bestehen, wenn Befehlsbeschränkungen vorhanden sind
1336* Dies stellt sicher, dass Administratoren erzwingen können, welche Befehle ausgeführt werden dürfen
1337
1338**Verhalten von Remote-Servern**:
1339
1340* Remote-Server (HTTP, SSE, WebSocket) verwenden URL-basierte Übereinstimmung, wenn `serverUrl`-Einträge in der Allowlist vorhanden sind
1341* Wenn keine URL-Einträge vorhanden sind, greifen Remote-Server auf namensbasierte Übereinstimmung zurück
1342* Befehlsbeschränkungen gelten nicht für Remote-Server
1343
1344#### Wie URL-basierte Einschränkungen funktionieren
1345
1346URL-Muster unterstützen Wildcards mit `*`, um eine beliebige Zeichenfolge zu entsprechen. Dies ist nützlich, um ganze Domänen oder Subdomänen zuzulassen.
1347
1348**Wildcard-Beispiele**:
1349
1350* `https://mcp.company.com/*` – Alle Pfade auf einer bestimmten Domäne zulassen
1351* `https://*.example.com/*` – Jede Subdomain von example.com zulassen
1352* `http://localhost:*/*` – Jeden Port auf localhost zulassen
1353
1354**Verhalten von Remote-Servern**:
1355
1356* Wenn die Allowlist **irgendwelche** `serverUrl`-Einträge enthält, müssen Remote-Server einem dieser URL-Muster entsprechen
1357* Remote-Server können nicht allein nach Name bestehen, wenn URL-Beschränkungen vorhanden sind
1358* Dies stellt sicher, dass Administratoren erzwingen können, welche Remote-Endpunkte zulässig sind
1359
1360<Accordion title="Beispiel: Nur-URL-Allowlist">
1361 ```json theme={null}
1362 {
1363 "allowedMcpServers": [
1364 { "serverUrl": "https://mcp.company.com/*" },
1365 { "serverUrl": "https://*.internal.corp/*" }
1366 ]
1367 }
1368 ```
1369
1370 **Ergebnis**:
1371
1372 * HTTP-Server unter `https://mcp.company.com/api`: ✅ Zulässig (entspricht URL-Muster)
1373 * HTTP-Server unter `https://api.internal.corp/mcp`: ✅ Zulässig (entspricht Wildcard-Subdomain)
1374 * HTTP-Server unter `https://external.com/mcp`: ❌ Blockiert (entspricht keinem URL-Muster)
1375 * Stdio-Server mit beliebigem Befehl: ❌ Blockiert (keine Namen- oder Befehlseinträge zum Abgleichen)
1376</Accordion>
1377
1378<Accordion title="Beispiel: Nur-Befehl-Allowlist">
1379 ```json theme={null}
1380 {
1381 "allowedMcpServers": [
1382 { "serverCommand": ["npx", "-y", "approved-package"] }
1383 ]
1384 }
1385 ```
1386
1387 **Ergebnis**:
1388
1389 * Stdio-Server mit `["npx", "-y", "approved-package"]`: ✅ Zulässig (entspricht Befehl)
1390 * Stdio-Server mit `["node", "server.js"]`: ❌ Blockiert (entspricht nicht dem Befehl)
1391 * HTTP-Server mit Namen „my-api": ❌ Blockiert (keine Nameneinträge zum Abgleichen)
1392</Accordion>
1393
1394<Accordion title="Beispiel: Gemischte Namen- und Befehl-Allowlist">
1395 ```json theme={null}
1396 {
1397 "allowedMcpServers": [
1398 { "serverName": "github" },
1399 { "serverCommand": ["npx", "-y", "approved-package"] }
1400 ]
1401 }
1402 ```
1403
1404 **Ergebnis**:
1405
1406 * Stdio-Server mit Namen „local-tool" und `["npx", "-y", "approved-package"]`: ✅ Zulässig (entspricht Befehl)
1407 * Stdio-Server mit Namen „local-tool" und `["node", "server.js"]`: ❌ Blockiert (Befehlseinträge vorhanden, aber entspricht nicht)
1408 * Stdio-Server mit Namen „github" und `["node", "server.js"]`: ❌ Blockiert (Stdio-Server müssen Befehlen entsprechen, wenn Befehlseinträge vorhanden sind)
1409 * HTTP-Server mit Namen „github": ✅ Zulässig (entspricht Name)
1410 * HTTP-Server mit Namen „other-api": ❌ Blockiert (Name entspricht nicht)
1411</Accordion>
1412
1413<Accordion title="Beispiel: Nur-Namen-Allowlist">
1414 ```json theme={null}
1415 {
1416 "allowedMcpServers": [
1417 { "serverName": "github" },
1418 { "serverName": "internal-tool" }
1419 ]
1420 }
1421 ```
1422
1423 **Ergebnis**:
1424
1425 * Stdio-Server mit Namen „github" und beliebigem Befehl: ✅ Zulässig (keine Befehlsbeschränkungen)
1426 * Stdio-Server mit Namen „internal-tool" und beliebigem Befehl: ✅ Zulässig (keine Befehlsbeschränkungen)
1427 * HTTP-Server mit Namen „github": ✅ Zulässig (entspricht Name)
1428 * Beliebiger Server mit Namen „other": ❌ Blockiert (Name entspricht nicht)
1429</Accordion>
1430
1431#### Allowlist-Verhalten (`allowedMcpServers`)
1432
1433* `undefined` (Standard): Keine Einschränkungen – Benutzer können jeden MCP-Server konfigurieren
1434* Leeres Array `[]`: Vollständige Sperrung – Benutzer können keinen MCP-Server konfigurieren
1435* Liste von Einträgen: Benutzer können nur Server konfigurieren, die nach Name, Befehl oder URL-Muster übereinstimmen
1436
1437#### Denylist-Verhalten (`deniedMcpServers`)
1438
1439* `undefined` (Standard): Keine Server werden blockiert
1440* Leeres Array `[]`: Keine Server werden blockiert
1441* Liste von Einträgen: Angegebene Server werden über alle Bereiche hinweg explizit blockiert
1442
1443#### Wichtige Hinweise
1444
1445* **Option 1 und Option 2 können kombiniert werden**: Wenn `managed-mcp.json` vorhanden ist, hat es exklusive Kontrolle und Benutzer können keine Server hinzufügen. Allowlists/Denylists gelten immer noch für die verwalteten Server selbst.
1446* **Denylist hat absolute Vorrang**: Wenn ein Server einem Denylist-Eintrag entspricht (nach Name, Befehl oder URL), wird er blockiert, auch wenn er auf der Allowlist ist
1447* Namensbasierte, befehlsbasierte und URL-basierte Einschränkungen funktionieren zusammen: Ein Server wird zugelassen, wenn er einem Namenseintrag, einem Befehlseintrag oder einem URL-Muster entspricht (es sei denn, er wird durch Denylist blockiert)
1448
1449<Note>
1450 **Bei Verwendung von `managed-mcp.json`**: Benutzer können MCP-Server nicht über `claude mcp add` oder Konfigurationsdateien hinzufügen. Die Einstellungen `allowedMcpServers` und `deniedMcpServers` gelten immer noch, um zu filtern, welche verwalteten Server tatsächlich geladen werden.
1451</Note>