Was Sie mit MCP tun können
Mit verbundenen MCP-Servern können Sie Claude Code auffordern:- Funktionen aus Issue-Trackern implementieren: „Füge die in JIRA-Issue ENG-4521 beschriebene Funktion hinzu und erstelle einen PR auf GitHub.”
- Überwachungsdaten analysieren: „Überprüfe Sentry und Statsig, um die Nutzung der in ENG-4521 beschriebenen Funktion zu überprüfen.”
- Datenbanken abfragen: „Finde E-Mail-Adressen von 10 zufälligen Benutzern, die die Funktion ENG-4521 verwendet haben, basierend auf unserer PostgreSQL-Datenbank.”
- Designs integrieren: „Aktualisiere unsere Standard-E-Mail-Vorlage basierend auf den neuen Figma-Designs, die in Slack gepostet wurden”
- Workflows automatisieren: „Erstelle Gmail-Entwürfe, die diese 10 Benutzer zu einer Feedback-Sitzung zur neuen Funktion einladen.”
- Auf externe Ereignisse reagieren: Ein MCP-Server kann auch als Kanal fungieren, der Nachrichten in Ihre Sitzung pusht, sodass Claude auf Telegram-Nachrichten, Discord-Chats oder Webhook-Ereignisse reagiert, während Sie weg sind.
Beliebte MCP-Server
Hier sind einige häufig verwendete MCP-Server, die Sie mit Claude Code verbinden können:Benötigen Sie eine spezifische Integration? Finden Sie Hunderte weitere MCP-Server auf GitHub, oder erstellen Sie Ihren eigenen mit dem MCP SDK.
MCP-Server installieren
MCP-Server können je nach Ihren Anforderungen auf drei verschiedene Arten konfiguriert werden:Option 1: Einen Remote-HTTP-Server hinzufügen
HTTP-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.Option 2: Einen Remote-SSE-Server hinzufügen
Option 3: Einen lokalen Stdio-Server hinzufügen
Stdio-Server werden als lokale Prozesse auf Ihrem Computer ausgeführt. Sie sind ideal für Tools, die direkten Systemzugriff oder benutzerdefinierte Skripte benötigen.Wichtig: Reihenfolge der OptionenAlle 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.Zum Beispiel:claude mcp add --transport stdio myserver -- npx server→ führtnpx serverausclaude mcp add --transport stdio --env KEY=value myserver -- python server.py --port 8080→ führtpython server.py --port 8080mitKEY=valuein der Umgebung aus
Verwalten Ihrer Server
Nach der Konfiguration können Sie Ihre MCP-Server mit diesen Befehlen verwalten:Dynamische Tool-Updates
Claude 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.
Push-Nachrichten mit Kanälen
Ein 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 Funktionclaude/channel und Sie aktivieren sie mit dem Flag --channels beim Start. Siehe Kanäle, um einen offiziell unterstützten Kanal zu verwenden, oder Kanäle-Referenz, um Ihren eigenen zu erstellen.
Von Plugins bereitgestellte MCP-Server
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. Wie Plugin-MCP-Server funktionieren:- Plugins definieren MCP-Server in
.mcp.jsonim Plugin-Root oder inline inplugin.json - Wenn ein Plugin aktiviert ist, starten seine MCP-Server automatisch
- Plugin-MCP-Tools erscheinen neben manuell konfigurierten MCP-Tools
- Plugin-Server werden durch die Plugin-Installation verwaltet (nicht durch
/mcp-Befehle)
.mcp.json im Plugin-Root:
plugin.json:
- 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-pluginsaus, um seine MCP-Server zu verbinden oder zu trennen - Umgebungsvariablen: Verwenden Sie
${CLAUDE_PLUGIN_ROOT}für gebündelte Plugin-Dateien und${CLAUDE_PLUGIN_DATA}für persistente Daten, die Plugin-Updates überstehen - Zugriff auf Benutzerumgebung: Zugriff auf die gleichen Umgebungsvariablen wie manuell konfigurierte Server
- Mehrere Transporttypen: Unterstützung für Stdio-, SSE- und HTTP-Transporte (die Transportunterstützung kann je nach Server variieren)
- Gebündelte Verteilung: Tools und Server zusammen verpackt
- Automatische Einrichtung: Keine manuelle MCP-Konfiguration erforderlich
- Team-Konsistenz: Alle erhalten die gleichen Tools, wenn das Plugin installiert ist
MCP-Installationsbereiche
MCP-Server können auf drei verschiedenen Bereichsebenen konfiguriert werden, die jeweils unterschiedliche Zwecke für die Verwaltung der Serverzugänglichkeit und des Austauschs erfüllen. Das Verständnis dieser Bereiche hilft Ihnen, die beste Methode zur Konfiguration von Servern für Ihre spezifischen Anforderungen zu bestimmen.Lokaler Bereich
Lokal begrenzte Server stellen die Standard-Konfigurationsebene dar und werden in~/.claude.json unter dem Pfad Ihres Projekts gespeichert. Diese Server bleiben privat für Sie und sind nur zugänglich, wenn Sie im aktuellen Projektverzeichnis arbeiten. Dieser Bereich ist ideal für persönliche Entwicklungsserver, experimentelle Konfigurationen oder Server, die vertrauliche Anmeldedaten enthalten, die nicht geteilt werden sollten.
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 für Details zu Einstellungsdatei-Speicherorten.Projektbereich
Projektbegrenzte 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.
.mcp.json-Datei folgt einem standardisierten Format:
.mcp.json-Dateien verwendet werden. Wenn Sie diese Genehmigungswahlmöglichkeiten zurücksetzen müssen, verwenden Sie den Befehl claude mcp reset-project-choices.
Benutzerbereich
Benutzerbegrenzte 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.
Den richtigen Bereich wählen
Wählen Sie Ihren Bereich basierend auf:- Lokaler Bereich: Persönliche Server, experimentelle Konfigurationen oder vertrauliche Anmeldedaten, die spezifisch für ein Projekt sind
- Projektbereich: Von Teams gemeinsam genutzte Server, projektspezifische Tools oder Dienste, die für die Zusammenarbeit erforderlich sind
- Benutzerbereich: Persönliche Utilities, die über mehrere Projekte hinweg benötigt werden, Entwicklungstools oder häufig verwendete Dienste
Wo werden MCP-Server gespeichert?
- Benutzer- und lokaler Bereich:
~/.claude.json(im FeldmcpServersoder unter Projektpfaden) - Projektbereich:
.mcp.jsonim Projekt-Root (eingecheckt in die Versionskontrolle) - Verwaltet:
managed-mcp.jsonin Systemverzeichnissen (siehe Verwaltete MCP-Konfiguration)
Bereichshierarchie und Vorrang
MCP-Server-Konfigurationen folgen einer klaren Vorranghierarchie. Wenn Server mit dem gleichen Namen auf mehreren Bereichen vorhanden sind, löst das System Konflikte durch Priorisierung lokal begrenzter Server zuerst, gefolgt von projektbegrenzten Servern und schließlich benutzerbegrenzten Servern. Dieses Design stellt sicher, dass persönliche Konfigurationen gemeinsame Konfigurationen bei Bedarf überschreiben können.Umgebungsvariablen-Erweiterung in .mcp.json
Claude 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.
Unterstützte Syntax:
${VAR}- Erweitert sich zum Wert der UmgebungsvariablenVAR${VAR:-default}- Erweitert sich zuVAR, wenn gesetzt, andernfalls wirddefaultverwendet
command- Der Server-Ausführungspfadargs- Befehlszeilenargumenteenv- Umgebungsvariablen, die an den Server übergeben werdenurl- Für HTTP-Server-Typenheaders- Für HTTP-Server-Authentifizierung
Praktische Beispiele
Beispiel: Fehler mit Sentry überwachen
Beispiel: Mit GitHub für Code-Reviews verbinden
Beispiel: Ihre PostgreSQL-Datenbank abfragen
Mit Remote-MCP-Servern authentifizieren
Viele Cloud-basierte MCP-Server erfordern Authentifizierung. Claude Code unterstützt OAuth 2.0 für sichere Verbindungen.Verwenden Sie einen festen OAuth-Callback-Port
Einige 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.
Sie können --callback-port allein (mit dynamischer Client-Registrierung) oder zusammen mit --client-id (mit vorkonfigurierten Anmeldedaten) verwenden.
Verwenden Sie vorkonfigurierte OAuth-Anmeldedaten
Einige 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.Registrieren Sie eine OAuth-App beim Server
Erstellen Sie eine App über das Entwicklerportal des Servers und notieren Sie sich Ihre Client-ID und Ihren Client-Secret.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.Fügen Sie den Server mit Ihren Anmeldedaten hinzu
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.- claude mcp add
- claude mcp add-json
- claude mcp add-json (nur Callback-Port)
- CI / Umgebungsvariable
Verwenden Sie
--client-id, um die Client-ID Ihrer App zu übergeben. Das Flag --client-secret fordert das Secret mit maskierter Eingabe an:Überschreiben Sie die OAuth-Metadaten-Erkennung
Wenn Ihr MCP-Server Fehler auf dem Standard-OAuth-Metadaten-Endpunkt (/.well-known/oauth-authorization-server) zurückgibt, aber einen funktionierenden OIDC-Endpunkt verfügbar macht, können Sie Claude Code anweisen, OAuth-Metadaten direkt von einer URL zu abrufen, die Sie angeben, und die Standard-Erkennungskette zu umgehen.
Legen Sie authServerMetadataUrl im Objekt oauth der Konfiguration Ihres Servers in .mcp.json fest:
https:// verwenden. Diese Option erfordert Claude Code v2.1.64 oder später.
Verwenden Sie dynamische Header für benutzerdefinierte Authentifizierung
Wenn Ihr MCP-Server ein anderes Authentifizierungsschema verwendet als OAuth (wie Kerberos, kurzlebige Token oder ein internes SSO), verwenden SieheadersHelper, um Request-Header zur Verbindungszeit zu generieren. Claude Code führt den Befehl aus und fügt seine Ausgabe in die Verbindungs-Header ein.
- Der Befehl muss ein JSON-Objekt mit String-Schlüssel-Wert-Paaren auf stdout schreiben
- Der Befehl wird in einer Shell mit einem 10-Sekunden-Timeout ausgeführt
- Dynamische Header überschreiben alle statischen
headersmit dem gleichen Namen
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.MCP-Server aus JSON-Konfiguration hinzufügen
Wenn Sie eine JSON-Konfiguration für einen MCP-Server haben, können Sie sie direkt hinzufügen:MCP-Server aus Claude Desktop importieren
Wenn Sie bereits MCP-Server in Claude Desktop konfiguriert haben, können Sie diese importieren:Wählen Sie aus, welche Server importiert werden sollen
Nach dem Ausführen des Befehls wird ein interaktives Dialogfeld angezeigt, in dem Sie auswählen können, welche Server Sie importieren möchten.
MCP-Server von Claude.ai verwenden
Wenn Sie sich in Claude Code mit einem Claude.ai-Konto angemeldet haben, sind MCP-Server, die Sie in Claude.ai hinzugefügt haben, automatisch in Claude Code verfügbar:Konfigurieren Sie MCP-Server in Claude.ai
Fügen Sie Server unter claude.ai/settings/connectors hinzu. Bei Team- und Enterprise-Plänen können nur Administratoren Server hinzufügen.
Authentifizieren Sie den MCP-Server
Führen Sie alle erforderlichen Authentifizierungsschritte in Claude.ai durch.
ENABLE_CLAUDEAI_MCP_SERVERS auf false:
Claude Code als MCP-Server verwenden
Sie können Claude Code selbst als MCP-Server verwenden, mit dem sich andere Anwendungen verbinden können:MCP-Ausgabelimits und Warnungen
Wenn 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:- Ausgabe-Warnungsschwelle: Claude Code zeigt eine Warnung an, wenn eine MCP-Tool-Ausgabe 10.000 Token überschreitet
- Konfigurierbares Limit: Sie können die maximale zulässige MCP-Ausgabe-Token mit der Umgebungsvariablen
MAX_MCP_OUTPUT_TOKENSanpassen - Standardlimit: Das Standardmaximum beträgt 25.000 Token
- Große Datensätze oder Datenbanken abfragen
- Detaillierte Berichte oder Dokumentation generieren
- Umfangreiche Protokolldateien oder Debugging-Informationen verarbeiten
Auf MCP-Elicitierungsanfragen reagieren
MCP-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. Server können Eingaben auf zwei Arten anfordern:- 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.
- 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.
Elicitation-Hook.
Wenn Sie einen MCP-Server erstellen, der Elicitierung verwendet, siehe die MCP-Elicitierungs-Spezifikation für Protokolldetails und Schema-Beispiele.
MCP-Ressourcen verwenden
MCP-Server können Ressourcen verfügbar machen, auf die Sie mit @-Erwähnungen verweisen können, ähnlich wie Sie auf Dateien verweisen.Referenzieren Sie MCP-Ressourcen
Verfügbare Ressourcen auflisten
Geben Sie
@ in Ihre Eingabeaufforderung ein, um verfügbare Ressourcen von allen verbundenen MCP-Servern anzuzeigen. Ressourcen erscheinen neben Dateien im Autocomplete-Menü.Referenzieren Sie eine bestimmte Ressource
Verwenden Sie das Format
@server:protocol://resource/path, um auf eine Ressource zu verweisen:Mit MCP-Tool-Suche skalieren
Wenn Sie viele MCP-Server konfiguriert haben, können Tool-Definitionen einen erheblichen Teil Ihres Kontextfensters verbrauchen. MCP-Tool-Suche löst dies, indem Tools bei Bedarf dynamisch geladen werden, anstatt sie alle vorab zu laden.Wie es funktioniert
Claude Code aktiviert die Tool-Suche automatisch, wenn Ihre MCP-Tool-Beschreibungen mehr als 10 % des Kontextfensters verbrauchen würden. Sie können diese Schwelle anpassen oder die Tool-Suche vollständig deaktivieren. Wenn ausgelöst:- MCP-Tools werden aufgeschoben, anstatt sie vorab in den Kontext zu laden
- Claude verwendet ein Such-Tool, um relevante MCP-Tools bei Bedarf zu entdecken
- Nur die Tools, die Claude tatsächlich benötigt, werden in den Kontext geladen
- MCP-Tools funktionieren aus Ihrer Perspektive genau wie zuvor
Für MCP-Server-Autoren
Wenn 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 funktionieren. Fügen Sie klare, aussagekräftige Server-Anweisungen hinzu, die erklären:- Welche Kategorie von Aufgaben Ihre Tools verarbeiten
- Wann Claude nach Ihren Tools suchen sollte
- Wichtige Funktionen, die Ihr Server bietet
Konfigurieren Sie die Tool-Suche
Die Tool-Suche ist standardmäßig aktiviert: MCP-Tools werden aufgeschoben und bei Bedarf entdeckt. WennANTHROPIC_BASE_URL auf einen Host von Drittanbietern verweist, ist die Tool-Suche standardmäßig deaktiviert, da die meisten Proxys tool_reference-Blöcke nicht weiterleiten. Legen Sie ENABLE_TOOL_SEARCH explizit fest, wenn Ihr Proxy dies tut. 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.
Steuern Sie das Verhalten der Tool-Suche mit der Umgebungsvariablen ENABLE_TOOL_SEARCH:
| Wert | Verhalten |
|---|---|
| (nicht gesetzt) | Standardmäßig aktiviert. Deaktiviert, wenn ANTHROPIC_BASE_URL ein Host von Drittanbietern ist |
true | Immer aktiviert, auch für ANTHROPIC_BASE_URL von Drittanbietern |
auto | Aktiviert, wenn MCP-Tools 10 % des Kontexts überschreiten |
auto:<N> | Aktiviert bei benutzerdefinierter Schwelle, wobei <N> ein Prozentsatz ist (z. B. auto:5 für 5 %) |
false | Deaktiviert, alle MCP-Tools werden vorab geladen |
env Ihrer settings.json fest.
Sie können das MCPSearch-Tool auch spezifisch mit der Einstellung disallowedTools deaktivieren:
MCP-Prompts als Befehle verwenden
MCP-Server können Prompts verfügbar machen, die in Claude Code als Befehle verfügbar werden.Führen Sie MCP-Prompts aus
Entdecken Sie verfügbare Prompts
Geben Sie
/ ein, um alle verfügbaren Befehle anzuzeigen, einschließlich derer von MCP-Servern. MCP-Prompts erscheinen mit dem Format /mcp__servername__promptname.Verwaltete MCP-Konfiguration
Für Organisationen, die eine zentralisierte Kontrolle über MCP-Server benötigen, unterstützt Claude Code zwei Konfigurationsoptionen:- Exklusive Kontrolle mit
managed-mcp.json: Stellen Sie einen festen Satz von MCP-Servern bereit, die Benutzer nicht ändern oder erweitern können - Richtlinienbasierte Kontrolle mit Allowlists/Denylists: Ermöglichen Sie Benutzern, ihre eigenen Server hinzuzufügen, aber beschränken Sie, welche zulässig sind
- Kontrollieren Sie, auf welche MCP-Server Mitarbeiter zugreifen können: Stellen Sie einen standardisierten Satz genehmigter MCP-Server in der gesamten Organisation bereit
- Verhindern Sie nicht autorisierte MCP-Server: Beschränken Sie Benutzer daran, nicht genehmigte MCP-Server hinzuzufügen
- Deaktivieren Sie MCP vollständig: Entfernen Sie die MCP-Funktionalität vollständig, falls erforderlich
Option 1: Exklusive Kontrolle mit managed-mcp.json
Wenn Sie einemanaged-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.
Systemadministratoren stellen die Konfigurationsdatei in einem systemweiten Verzeichnis bereit:
- macOS:
/Library/Application Support/ClaudeCode/managed-mcp.json - Linux und WSL:
/etc/claude-code/managed-mcp.json - Windows:
C:\Program Files\ClaudeCode\managed-mcp.json
Dies sind systemweite Pfade (nicht Benutzer-Home-Verzeichnisse wie
~/Library/...), die Administratorrechte erfordern. Sie sind dazu bestimmt, von IT-Administratoren bereitgestellt zu werden.managed-mcp.json-Datei verwendet das gleiche Format wie eine Standard-.mcp.json-Datei:
Option 2: Richtlinienbasierte Kontrolle mit Allowlists und Denylists
Anstatt 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 verwendetallowedMcpServers und deniedMcpServers in der verwalteten Einstellungsdatei.
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.Einschränkungsoptionen
Jeder Eintrag in der Allowlist oder Denylist kann Server auf drei Arten einschränken:- Nach Servername (
serverName): Entspricht dem konfigurierten Namen des Servers - Nach Befehl (
serverCommand): Entspricht dem genauen Befehl und den Argumenten, die zum Starten von Stdio-Servern verwendet werden - Nach URL-Muster (
serverUrl): Entspricht Remote-Server-URLs mit Wildcard-Unterstützung
serverName, serverCommand oder serverUrl haben.
Beispielkonfiguration
Wie befehlsbasierte Einschränkungen funktionieren
Exakte Übereinstimmung:- Befehlsarrays müssen genau übereinstimmen – sowohl der Befehl als auch alle Argumente in der richtigen Reihenfolge
- Beispiel:
["npx", "-y", "server"]entspricht NICHT["npx", "server"]oder["npx", "-y", "server", "--flag"]
- Wenn die Allowlist irgendwelche
serverCommand-Einträge enthält, müssen Stdio-Server einem dieser Befehle entsprechen - Stdio-Server können nicht allein nach Name bestehen, wenn Befehlsbeschränkungen vorhanden sind
- Dies stellt sicher, dass Administratoren erzwingen können, welche Befehle ausgeführt werden dürfen
- Remote-Server (HTTP, SSE, WebSocket) verwenden URL-basierte Übereinstimmung, wenn
serverUrl-Einträge in der Allowlist vorhanden sind - Wenn keine URL-Einträge vorhanden sind, greifen Remote-Server auf namensbasierte Übereinstimmung zurück
- Befehlsbeschränkungen gelten nicht für Remote-Server
Wie URL-basierte Einschränkungen funktionieren
URL-Muster unterstützen Wildcards mit*, um eine beliebige Zeichenfolge zu entsprechen. Dies ist nützlich, um ganze Domänen oder Subdomänen zuzulassen.
Wildcard-Beispiele:
https://mcp.company.com/*– Alle Pfade auf einer bestimmten Domäne zulassenhttps://*.example.com/*– Jede Subdomain von example.com zulassenhttp://localhost:*/*– Jeden Port auf localhost zulassen
- Wenn die Allowlist irgendwelche
serverUrl-Einträge enthält, müssen Remote-Server einem dieser URL-Muster entsprechen - Remote-Server können nicht allein nach Name bestehen, wenn URL-Beschränkungen vorhanden sind
- Dies stellt sicher, dass Administratoren erzwingen können, welche Remote-Endpunkte zulässig sind
Beispiel: Nur-URL-Allowlist
Beispiel: Nur-URL-Allowlist
- HTTP-Server unter
https://mcp.company.com/api: ✅ Zulässig (entspricht URL-Muster) - HTTP-Server unter
https://api.internal.corp/mcp: ✅ Zulässig (entspricht Wildcard-Subdomain) - HTTP-Server unter
https://external.com/mcp: ❌ Blockiert (entspricht keinem URL-Muster) - Stdio-Server mit beliebigem Befehl: ❌ Blockiert (keine Namen- oder Befehlseinträge zum Abgleichen)
Beispiel: Nur-Befehl-Allowlist
Beispiel: Nur-Befehl-Allowlist
- Stdio-Server mit
["npx", "-y", "approved-package"]: ✅ Zulässig (entspricht Befehl) - Stdio-Server mit
["node", "server.js"]: ❌ Blockiert (entspricht nicht dem Befehl) - HTTP-Server mit Namen „my-api”: ❌ Blockiert (keine Nameneinträge zum Abgleichen)
Beispiel: Gemischte Namen- und Befehl-Allowlist
Beispiel: Gemischte Namen- und Befehl-Allowlist
- Stdio-Server mit Namen „local-tool” und
["npx", "-y", "approved-package"]: ✅ Zulässig (entspricht Befehl) - Stdio-Server mit Namen „local-tool” und
["node", "server.js"]: ❌ Blockiert (Befehlseinträge vorhanden, aber entspricht nicht) - Stdio-Server mit Namen „github” und
["node", "server.js"]: ❌ Blockiert (Stdio-Server müssen Befehlen entsprechen, wenn Befehlseinträge vorhanden sind) - HTTP-Server mit Namen „github”: ✅ Zulässig (entspricht Name)
- HTTP-Server mit Namen „other-api”: ❌ Blockiert (Name entspricht nicht)
Beispiel: Nur-Namen-Allowlist
Beispiel: Nur-Namen-Allowlist
- Stdio-Server mit Namen „github” und beliebigem Befehl: ✅ Zulässig (keine Befehlsbeschränkungen)
- Stdio-Server mit Namen „internal-tool” und beliebigem Befehl: ✅ Zulässig (keine Befehlsbeschränkungen)
- HTTP-Server mit Namen „github”: ✅ Zulässig (entspricht Name)
- Beliebiger Server mit Namen „other”: ❌ Blockiert (Name entspricht nicht)
Allowlist-Verhalten (allowedMcpServers)
undefined(Standard): Keine Einschränkungen – Benutzer können jeden MCP-Server konfigurieren- Leeres Array
[]: Vollständige Sperrung – Benutzer können keinen MCP-Server konfigurieren - Liste von Einträgen: Benutzer können nur Server konfigurieren, die nach Name, Befehl oder URL-Muster übereinstimmen
Denylist-Verhalten (deniedMcpServers)
undefined(Standard): Keine Server werden blockiert- Leeres Array
[]: Keine Server werden blockiert - Liste von Einträgen: Angegebene Server werden über alle Bereiche hinweg explizit blockiert
Wichtige Hinweise
- Option 1 und Option 2 können kombiniert werden: Wenn
managed-mcp.jsonvorhanden ist, hat es exklusive Kontrolle und Benutzer können keine Server hinzufügen. Allowlists/Denylists gelten immer noch für die verwalteten Server selbst. - 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
- 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)
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.