Standardmäßig kann jeder, der Claude Code ausführt, jeden beliebigen MCP-Server verbinden. Anthropic überprüft Konnektoren anhand seiner Auflistungskriterien, bevor sie zum Anthropic-Verzeichnis hinzugefügt werden, führt aber keine Sicherheitsprüfung durch und verwaltet keinen MCP-Server. Als Administrator können Sie einschränken, welche Server in Ihrer Organisation ausgeführt werden – von der Bereitstellung eines festen genehmigten Satzes bis zur vollständigen Deaktivierung von MCP. Diese Seite behandelt folgende Themen:Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
- Wählen Sie ein Muster, das dem erforderlichen Kontrollumfang entspricht
- Stellen Sie einen festen Serversatz mit
managed-mcp.jsonbereit, einschließlich Deaktivierung von MCP vollständig - Kontrollieren Sie Server mit Zulassungslisten und Sperrlisten
- Teilen Sie Benutzern mit, was sie erwarten können, wenn eine Einschränkung einen Server blockiert
- Überwachen Sie, welche Server Ihre Organisation tatsächlich nutzt
Die Seite Sicherheit behandelt das MCP-Bedrohungsmodell und wie Sie einen Server vor der Genehmigung bewerten. Entscheiden Sie, was Sie durchsetzen möchten behandelt MCP-Einschränkungen zusammen mit den anderen administrativen Kontrollen.
Wählen Sie ein Muster
Claude Code unterstützt eine Reihe von Einschränkungsstufen. Jedes Muster verwendet einen oder beide der unten behandelten Mechanismen:managed-mcp.json zur Bereitstellung eines festen Satzes und allowedMcpServers/deniedMcpServers zum Filtern der Benutzerkonfiguration.
| Muster | Was es tut | Konfigurieren |
|---|---|---|
| MCP deaktivieren | Keine Server werden irgendwo geladen | managed-mcp.json mit einer leeren Serverzuordnung |
| Feste Bereitstellung | Jeder Benutzer erhält die gleichen Server und kann keine anderen hinzufügen | managed-mcp.json mit den gewünschten Servern |
| Genehmigter Katalog | Veröffentlichen Sie eine Liste genehmigter Server; Benutzer fügen die gewünschten hinzu, alles andere wird blockiert | allowedMcpServers + allowManagedMcpServersOnly: true |
| Nur Plugin-Server | Server können nur aus Plugins stammen; Benutzer können keine eigenen hinzufügen | strictPluginOnlyCustomization mit mcp in der Liste |
| Soft-Zulassungsliste | Erzwingen Sie eine Zulassungsliste, die Benutzer in ihren eigenen Einstellungen erweitern können | allowedMcpServers ohne allowManagedMcpServersOnly |
| Nur Sperrliste | Blockieren Sie bekannt schlechte Server, erlauben Sie alles andere | deniedMcpServers |
| Keine Einschränkungen | Benutzer fügen alles hinzu | Stellen Sie keine verwaltete MCP-Konfiguration bereit |
Claude Code hat keine integrierte MCP-Serverregistrierung, die Benutzer durchsuchen und installieren können. Für das Muster des genehmigten Katalogs teilen Sie die genehmigte Liste und ihre
claude mcp add-Befehle an einem Ort, den Ihre Benutzer finden, z. B. einem internen Wiki, oder verteilen Sie die Server als Plugins über einen verwalteten Plugin-Marketplace, damit Benutzer sie von /plugin durchsuchen und installieren können.Exklusive Kontrolle mit managed-mcp.json
Wenn Sie einemanaged-mcp.json-Datei bereitstellen, lädt Claude Code nur die Server, die diese Datei definiert. Benutzer können keine anderen MCP-Server hinzufügen, ändern oder verwenden, einschließlich Plugin-bereitgestellter Server und claude.ai-Konnektoren.
Zwei weitere Einstellungen können den verwalteten Satz weiter filtern:
allowedMcpServersunddeniedMcpServersgelten auch für verwaltete Server, daher wird ein verwalteter Server, der diese nicht erfüllt, nicht geladen.- Die eigenen
deniedMcpServerseines Benutzers werden aus seinen Einstellungen zusammengeführt, daher können Benutzer einen verwalteten Server für sich selbst blockieren.
managed-mcp.json ist eine eigenständige Datei und kann nicht über serververwaltete Einstellungen bereitgestellt werden. Jeder Prozess, der in einen Systempfad mit Administratorrechten schreiben kann, kann ihn bereitstellen. In großem Maßstab geschieht dies normalerweise über Geräteverwaltungstools wie Jamf oder ein Konfigurationsprofil auf macOS, Gruppenrichtlinie oder Intune unter Windows oder Ihre Fleet-Verwaltung Ihrer Wahl unter Linux. Claude Code sucht die Datei unter einem dieser Pfade:
| Plattform | Pfad |
|---|---|
| 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 |
.mcp.json-Datei:
Authentifizieren Sie sich mit benutzerspezifischen Anmeldedaten
Jeder Benutzer auf dem Computer kann diese Datei lesen, daher speichern Sie keine API-Schlüssel oder andere Anmeldedaten inenv-Blöcken. Übergeben Sie benutzerspezifische Anmeldedaten stattdessen mit einem dieser:
${VAR}-Erweiterung zum Lesen von Geheimnissen aus der Umgebung jedes Benutzers.- OAuth oder benutzerspezifische Header, damit sich jeder Benutzer selbst authentifiziert.
headersHelperzum Generieren von Anmeldedaten zum Verbindungszeitpunkt.
Validieren Sie die Konfiguration
Um zu bestätigen, dass die Datei wirksam ist, führen Sie zwei Überprüfungen auf einem verwalteten Computer durch:claude mcp listzeigt nur die Server inmanaged-mcp.json. Wenn die eigenen Server eines Benutzers immer noch angezeigt werden, wird die Datei nicht gelesen; überprüfen Sie den Pfad und die Berechtigungen.claude mcp add --transport http test https://example.com/mcpschlägt mitCannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP serversfehl. Die URL muss kein echter Server sein, da die Richtlinienprüfung den Befehl ablehnt, bevor etwas kontaktiert wird.
Deaktivieren Sie MCP vollständig
Stellen Sie einemanaged-mcp.json mit einer leeren Serverzuordnung bereit, um jeden MCP-Server zu blockieren:
/mcp, und claude mcp add schlägt mit dem oben genannten Enterprise-Richtlinienfehler fehl. Server, die Benutzer zuvor konfiguriert hatten, werden beim nächsten Starten einer Sitzung nicht mehr geladen, ohne dass eine Warnung angezeigt wird, dass die Richtlinie der Grund ist.
Richtlinienbasierte Kontrolle mit Zulassungslisten und Sperrlisten
Zulassungslisten und Sperrlisten filtern, welche konfigurierten Server geladen werden dürfen. Sie sind keine Registrierung: Ein Server muss immer noch von einem Benutzer, einem Plugin odermanaged-mcp.json hinzugefügt werden, bevor die Zulassungsliste oder Sperrliste darauf angewendet wird. Um Server für Benutzer bereitzustellen, verwenden Sie managed-mcp.json.
Um die Zulassungsliste verbindlich zu machen, setzen Sie allowedMcpServers und allowManagedMcpServersOnly: true zusammen in einer verwalteten Einstellungsquelle, z. B. serververwaltete Einstellungen oder eine bereitgestellte managed-settings.json-Datei. Beschränken Sie die Zulassungsliste auf verwaltete Einstellungen nur zeigt die Konfiguration. Ohne allowManagedMcpServersOnly werden Zulassungslisten aus jeder Einstellungsquelle zusammengeführt, einschließlich der eigenen ~/.claude/settings.json eines Benutzers, daher kann ein Benutzer erweitern, was Ihre Zulassungsliste erlaubt. Sperrlisten werden unabhängig davon aus jeder Quelle zusammengeführt.
allowManagedMcpServersOnly ist getrennt von allowManagedPermissionRulesOnly, das Berechtigungsregeln nur sperrt. Das Setzen dieses Flags erzwingt nicht die MCP-Zulassungsliste.Passen Sie Server nach URL, Befehl oder Name an
allowedMcpServers und deniedMcpServers sind Listen von Einträgen. Jeder Eintrag ist ein Objekt mit einem einzelnen Schlüssel, der Server nach ihrer URL, ihrem Befehl oder ihrem Namen identifiziert:
| Schlüssel | Passt zu | Verwenden Sie für |
|---|---|---|
serverUrl | Eine Remote-Server-URL, exakt oder mit *-Platzhaltern | HTTP- und SSE-Server |
serverCommand | Der genaue Befehl und die Argumente, die einen Stdio-Server starten | Stdio-Server |
serverName | Das vom Benutzer zugewiesene Label. Nur exakte Übereinstimmung; Platzhalter werden nicht erweitert | Beide Typen, aber siehe die Warnung unten |
allowedMcpServers unterscheidet sich vom Setzen auf ein leeres Array:
| Einstellung | Nicht gesetzt (Standard) | Leeres Array [] | Gefüllt |
|---|---|---|---|
allowedMcpServers | Alle Server erlaubt | Keine Server erlaubt | Nur übereinstimmende Server erlaubt |
deniedMcpServers | Keine Server blockiert | Keine Server blockiert | Übereinstimmende Server blockiert |
Wie ein Server bewertet wird
Vor dem Laden eines Servers, einschließlich eines ausmanaged-mcp.json, führt Claude Code drei Überprüfungen in Reihenfolge durch:
- Zusammenführen der Listen. Zulassungslisten- und Sperrlisten-Einträge aus jeder Einstellungsquelle werden in eine Zulassungsliste und eine Sperrliste kombiniert. Wenn
allowManagedMcpServersOnlytrueist, wird nur die verwaltete Zulassungsliste beibehalten; die Sperrliste wird immer aus jeder Quelle zusammengeführt. - Überprüfen Sie die Sperrliste. Ein Server, der einem Sperrlisten-Eintrag entspricht, nach URL, Befehl oder Name, wird blockiert. Nichts überschreibt eine Sperrlisten-Übereinstimmung.
- Überprüfen Sie die Zulassungsliste. Wenn
allowedMcpServersnirgendwo gesetzt ist, wird jeder Server, der die Sperrliste bestanden hat, geladen. Wenn es gesetzt ist, hängt das, dem der Server entsprechen muss, von seinem Typ ab, wie in der Tabelle unten gezeigt.
| Servertyp | Erlaubt, wenn es passt zu |
|---|---|
| Remote (HTTP oder SSE) | Ein serverUrl-Eintrag. Eine serverName-Übereinstimmung zählt nur, wenn die Zulassungsliste keine serverUrl-Einträge enthält |
| Stdio | Ein serverCommand-Eintrag. Eine serverName-Übereinstimmung zählt nur, wenn die Zulassungsliste keine serverCommand-Einträge enthält |
- Befehle stimmen genau überein. Jedes Argument, in Reihenfolge.
["npx", "-y", "server"]stimmt nicht mit["npx", "server"]oder["npx", "-y", "server", "--flag"]überein. - URLs unterstützen
*-Platzhalter überall im Muster, einschließlich des Schemas. Hostname-Matching ist case-insensitiv und ignoriert einen nachgestellten FQDN-Punkt, daher passthttps://Mcp.Example.com/*zuhttps://mcp.example.com/api. Pfade bleiben case-sensitiv.
| Muster | Erlaubt |
|---|---|
https://mcp.example.com/* | Alle Pfade auf einer bestimmten Domain |
https://mcp.example.com | Auch alle Pfade auf dieser Domain. Ein Muster ohne Pfad passt zu jedem Pfad |
https://*.example.com/* | Jede Subdomain von example.com |
http://localhost:*/* | Jeder Port auf localhost |
*://mcp.example.com/* | Jedes Schema zu einer bestimmten Domain |
Beispielkonfiguration
Die folgende Konfiguration richtet eine harte Zulassungsliste mit einer Sperrliste ein. Die hervorgehobenen Zeilen ändern, wie der Rest der Liste bewertet wird, und die Callouts nach dem Block erklären jeweils:- Zeile 3: der erste
serverUrl-Eintrag. Sobald einer existiert, muss jeder Remote-Server einem URL-Muster entsprechen, daher kann ein Benutzer keinen nicht aufgelisteten Remote-Server erhalten, indem er ihm einen zulässigen Namen gibt. - Zeile 5: der erste
serverCommand-Eintrag. Gleicher Effekt für Stdio-Server, daher muss jeder lokale Server genau einem aufgelisteten Befehl entsprechen. - Zeile 11: ein
serverName-Eintrag in der Sperrliste. Sperrlisten-Einträge gelten immer, daher wird jeder Server namensdangerous-serverblockiert, unabhängig von seiner URL oder seinem Befehl.
serverName-Eintrag in dieser Zulassungsliste würde niemals etwas entsprechen, da beide Transporttypen bereits strengere Einträge haben.
Die Akkordeons unten zeigen, wie ein Server gegen andere Zulassungslisten- und Sperrlisten-Kombinationen bewertet wird.
Nur-URL-Zulassungsliste
Nur-URL-Zulassungsliste
| Server | Ergebnis |
|---|---|
HTTP-Server unter https://mcp.example.com/api | Erlaubt: passt zu URL-Muster |
HTTP-Server unter https://api.internal.example.com/mcp | Erlaubt: passt zu Wildcard-Subdomain |
HTTP-Server unter https://external.example.com/mcp | Blockiert: passt zu keinem URL-Muster |
| Stdio-Server mit beliebigem Befehl | Blockiert: keine Name- oder Befehlseinträge zum Abgleichen |
Nur-Befehl-Zulassungsliste
Nur-Befehl-Zulassungsliste
| Server | Ergebnis |
|---|---|
Stdio-Server mit ["npx", "-y", "approved-package"] | Erlaubt: passt zu Befehl |
Stdio-Server mit ["node", "server.js"] | Blockiert: passt nicht zu Befehl |
HTTP-Server namens my-api | Blockiert: keine Nameneinträge zum Abgleichen |
Gemischte Name- und Befehl-Zulassungsliste
Gemischte Name- und Befehl-Zulassungsliste
| Server | Ergebnis |
|---|---|
Stdio-Server namens local-tool mit ["npx", "-y", "approved-package"] | Erlaubt: passt zu Befehl |
Stdio-Server namens local-tool mit ["node", "server.js"] | Blockiert: Befehlseinträge existieren, aber passt nicht |
Stdio-Server namens github mit ["node", "server.js"] | Blockiert: Stdio-Server müssen Befehlen entsprechen, wenn Befehlseinträge existieren |
HTTP-Server namens github | Erlaubt: passt zu Name |
HTTP-Server namens other-api | Blockiert: Name passt nicht |
Nur-Name-Zulassungsliste
Nur-Name-Zulassungsliste
| Server | Ergebnis |
|---|---|
Stdio-Server namens github mit beliebigem Befehl | Erlaubt: keine Befehlsbeschränkungen |
Stdio-Server namens internal-tool mit beliebigem Befehl | Erlaubt: keine Befehlsbeschränkungen |
HTTP-Server namens github | Erlaubt: passt zu Name |
Jeder Server namens other | Blockiert: Name passt nicht |
Zulassungsliste mit Sperrlisten-Überschreibung
Zulassungsliste mit Sperrlisten-Überschreibung
| Server | Ergebnis |
|---|---|
HTTP-Server unter https://mcp.example.com/api | Erlaubt: passt zu Zulassungslisten-URL-Muster, keine Sperrlisten-Übereinstimmung |
HTTP-Server unter https://staging.example.com/api | Blockiert: passt zu beiden, aber die Sperrliste hat Vorrang |
HTTP-Server unter https://other.com/mcp | Blockiert: passt nicht zu Zulassungsliste |
Beschränken Sie die Zulassungsliste auf verwaltete Einstellungen nur
Um die verwaltete Zulassungsliste zur einzigen anzuwenden, setzen SieallowManagedMcpServersOnly in der verwalteten Einstellungsdatei:
allowManagedMcpServersOnly true ist, werden Zulassungslisten aus Benutzer-, Projekt- und lokalen Einstellungen ignoriert. Die Sperrliste wird immer noch aus allen Quellen zusammengeführt, daher können Benutzer Server immer für sich selbst blockieren.
Wie Einschränkungen für Benutzer angezeigt werden
Wenn eine Einschränkung einen Server blockiert, sieht der Benutzer entweder einen Fehler vonclaude mcp add oder der Server wird stillschweigend nicht mehr geladen. Verwenden Sie diese Tabelle, um diese Berichte zu erkennen und um Benutzern mitzuteilen, was sie erwarten können, bevor Sie eine Änderung einführen:
| Einschränkung | Was der Benutzer sieht |
|---|---|
managed-mcp.json ist vorhanden und der Benutzer führt claude mcp add aus | Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers |
Der Server ist auf einer Sperrliste und der Benutzer führt claude mcp add aus | Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy |
Der Server ist nicht auf der Zulassungsliste und der Benutzer führt claude mcp add aus | Cannot add MCP server "<name>": not allowed by enterprise policy |
| Ein zuvor konfigurierter Server wird jetzt durch Richtlinie blockiert | Der Server verschwindet stillschweigend aus /mcp und claude mcp list ohne Warnung |
Überwachen Sie die MCP-Nutzung
Wenn OpenTelemetry-Export konfiguriert ist, kann Claude Code aufzeichnen, welche MCP-Server und Tools Benutzer aufrufen. Setzen SieOTEL_LOG_TOOL_DETAILS=1, um MCP-Server- und Tool-Namen in Tool-Events einzubeziehen, und aggregieren Sie sie dann in Ihrem Collector, um zu sehen, welche Server Ihre Benutzer tatsächlich verbinden. Siehe Überwachung, um den Exporter einzurichten und das vollständige Event-Schema zu erhalten.
Konfigurationszusammenfassung
Jede Datei und Einstellung, die diese Seite behandelt, was sie kontrolliert und wie man sie bereitstellt:| Oberfläche | Was es kontrolliert | Wo es sich befindet | Wie man es bereitstellt |
|---|---|---|---|
managed-mcp.json | Fester Serversatz, exklusive Kontrolle | Systempfad: /Library/Application Support/ClaudeCode/, /etc/claude-code/ oder C:\Program Files\ClaudeCode\ | MDM, GPO, Fleet-Verwaltung oder jeder Prozess mit Administratorrechten. Kann nicht über serververwaltete Einstellungen gesetzt werden |
allowedMcpServers | Zulassungsliste zulässiger Server | Jede Einstellungsdatei; Einträge aus jeder Quelle werden zusammengeführt, es sei denn, allowManagedMcpServersOnly ist gesetzt | Zur Durchsetzung eine verwaltete Einstellungsquelle: serververwaltete Einstellungen, managed-settings.json, MDM-Profil oder Registrierung |
deniedMcpServers | Sperrliste blockierter Server | Jede Einstellungsdatei; Einträge aus jeder Quelle werden zusammengeführt | Gleich wie allowedMcpServers |
allowManagedMcpServersOnly | Sperrt die Zulassungsliste auf verwaltete Quellen nur | Nur verwaltete Einstellungsquellen; die Einstellung hat keine Auswirkung anderswo | Gleich wie allowedMcpServers |
Verwandte Ressourcen
- Entscheiden Sie, was Sie durchsetzen möchten: MCP-Einschränkungen zusammen mit Berechtigungsregeln, Sandboxing und den anderen Admin-Kontrollen
- Verbinden Sie Claude Code mit Tools über MCP: die vollständige MCP-Referenz, einschließlich Transporte, Bereiche und Authentifizierung
- Einstellungen: die Einstellungshierarchie und wie verwaltete Einstellungen Vorrang haben
- Serververwaltete Einstellungen: Stellen Sie
allowedMcpServersunddeniedMcpServersaus der Claude.ai-Admin-Konsole bereit - Sicherheit: das Bedrohungsmodell, das diese Kontrollen schützen
- Claude Enterprise Administrator Guide: SSO, SCIM, Seat-Verwaltung und Rollout-Playbook