Zum Hauptinhalt springen

MCP-Konfiguration

MCP servers werden unter dem mcpServers object konfiguriert. IaC Code unterstuetzt ein mit Claude Code kompatibles core schema fuer stdio, http, sse, and URL-only ws servers.

Schnellstart

Fuer einen entfernten HTTP-MCP-Server wie Yuque fuegen Sie den Server mit der positionalen URL-Form hinzu und starten dann OAuth:

iac-code mcp add --transport http yuque https://mcp.example.com/yuque/mcp
iac-code mcp auth yuque

Fuer stdio-Wrapper wie mcp-remote setzen Sie den subprocess-Befehl hinter --:

iac-code mcp add yuque-remote --scope user -- npx mcp-remote https://mcp.example.com/yuque/mcp

Configuration Sources

IaC-Code liest MCP-Server aus diesen Quellen:

QuelleGeltungsbereichDatei oder EinstiegspunktVertrauensmodell
Benutzereinstellungenuser~/.iac-code/settings.yml oder IAC_CODE_CONFIG_DIR/settings.ymlVom aktuellen Benutzer als vertrauenswürdig eingestuft.
Lokale Projekteinstellungenlocal<workspace>/.iac-code/settings.local.ymlPrivat an der örtlichen Kasse.
Projekt-MCP-Dateiproject<workspace>/.mcp.jsonWird mit dem Projekt geteilt und erfordert eine örtliche Genehmigung.
ACP-SitzungskonfigurationsessionmcpServers von einem ACP-Client übergebenGilt nur für diese ACP-Sitzungslaufzeit.

Die Priorität ist Benutzer, Projekt, lokal, dann Sitzung. Spätere Quellen überschreiben frühere Quellen anhand des Servernamens. Äquivalente Konfigurationen werden auch durch die Inhaltssignatur dedupliziert.

Projektdateien .mcp.json werden vom Stammverzeichnis des Arbeitsbereichs bis zum aktuellen Verzeichnis erkannt. Untergeordnete Projektdateien überschreiben übergeordnete Dateien nach Servername.

CLI Commands

Verwenden Sie iac-code mcp, um die persistente MCP-Konfiguration zu verwalten:

iac-code mcp add local-catalog \
--scope local \
--command python \
--arg ./tools/catalog_mcp.py
iac-code mcp add remote-reviewer \
--scope user \
--transport http \
https://mcp.example.com/mcp \
--header 'Authorization=${MCP_REVIEWER_TOKEN}'

Remote-HTTP-Server können mit der positionellen URL-Form im Claude-Stil hinzugefügt werden:

iac-code mcp add --transport http yuque https://mcp.example.com/yuque/mcp
iac-code mcp auth yuque

SSE- und WebSocket-Server verwenden dieselbe positionelle URL-Form mit ihrem jeweiligen Transport:

iac-code mcp add --transport sse events https://mcp.example.com/sse
iac-code mcp add --transport ws realtime wss://mcp.example.com/mcp

Für stdio-Wrapper wie mcp-remote fügen Sie den Unterprozessbefehl nach -- ein:

iac-code mcp add yuque-remote --scope user -- npx mcp-remote https://mcp.example.com/yuque/mcp

Verfügbare Befehle:

BefehlZweck
iac-code mcp addFügen Sie einen Server aus strukturierten CLI-Flags hinzu.
iac-code mcp add-jsonFügen Sie einen Server aus einem JSON-Objekt hinzu.
iac-code mcp listListet konfigurierte server, scopes, transports und approval status ohne Verbindung auf.
iac-code mcp list --config-onlyAlias für die Standard-Konfigurationsliste.
iac-code mcp list --checkVerbindet kurz und zeigt begrenzte health diagnostics.
iac-code mcp getDrucken Sie eine redigierte Serverkonfiguration, ohne eine Verbindung herzustellen.
iac-code mcp get --config-onlyDrucken Sie eine redigierte Serverkonfiguration, ohne eine Verbindung herzustellen.
iac-code mcp get --checkStellen Sie kurz eine Verbindung her und zeigen Sie begrenzte Zustandsdiagnosen für einen Server an.
iac-code mcp removeEntfernen Sie einen Server aus einem dauerhaften Bereich.
iac-code mcp approveGenehmigen Sie einen Projektserver .mcp.json.
iac-code mcp rejectLehnen Sie einen Projekt-.mcp.json-Server ab.
iac-code mcp reset-project-choicesLöschen Sie gespeicherte Projektgenehmigungsoptionen.
iac-code mcp authStarten Sie die OAuth-Authentifizierung für einen Server.
iac-code mcp reset-authLöschen Sie gespeicherte OAuth-Tokens und Client-Geheimnisse für einen Server.
iac-code mcp reconnectVerbinden Sie einen Server oder alle persistenten Server erneut mit --all.
iac-code mcp disableDeaktivieren Sie einen persistenten Server, ohne die freigegebene Projektkonfiguration zu bearbeiten.
iac-code mcp enableAktivieren Sie einen persistenten Server erneut.

Befehlsoptionen

Der folgende option set entspricht iac-code mcp <command> --help:

BefehlOptionen
iac-code mcp add--command, --arg, --env, --type, --transport, --url, --header, --scope, --client-id, --client-secret, --client-secret-env, --callback-port, --auth-server-metadata-url
iac-code mcp add-json--scope
iac-code mcp list--check, --config-only
iac-code mcp get--scope, --source-path, --check, --config-only
iac-code mcp remove--scope, --source-path
iac-code mcp approveNo command-specific options; nur --help.
iac-code mcp rejectNo command-specific options; nur --help.
iac-code mcp reset-project-choicesNo command-specific options; nur --help.
iac-code mcp auth--scope, --source-path
iac-code mcp reset-auth--scope, --source-path
iac-code mcp reconnect--all, --scope, --source-path
iac-code mcp disable--scope, --source-path
iac-code mcp enable--scope, --source-path

Wenn --scope weggelassen wird, schreibt IaC-Code innerhalb eines Projekts in local und außerhalb eines Projekts in user.

Für Befehle, die auf einem vorhandenen persistenten Server ausgeführt werden, kann IaC-Code einen eindeutigen Server über persistente Bereiche hinweg finden, wenn --scope weggelassen wird. Wenn derselbe Name in mehreren Bereichen vorhanden ist, schlägt der Befehl mit genauen --scope-Befehlen zur eindeutigen Unterscheidung fehl.

Interaktiver MCP-Manager

Im interaktiven REPL öffnet /mcp einen Vollbild-MCP-Manager. Er gruppiert Server nach Quelle und zeigt Verbindungsstatus, Authentifizierungsstatus, Konfigurationsdiagnosen, Fehlerdetails und den konfigurierten Ort.

Im Manager können Sie die Tools, Ressourcen und Prompts eines verbundenen Servers prüfen; Remote-Server authentifizieren, erneut authentifizieren oder die Authentifizierung löschen; Server neu verbinden; persistente Server aktivieren oder deaktivieren; Projektserver aus .mcp.json genehmigen oder ablehnen; und persistente Einträge entfernen. OAuth-Flows zeigen die Autorisierungs-URL, unterstützen das Kopieren und akzeptieren eine eingefügte Callback-URL oder einen Autorisierungscode, wenn die Browser-Weiterleitung den lokalen Callback-Listener nicht erreichen kann.

/mcp enable <name>, /mcp disable <name> und /mcp reconnect <name> führen Schnellaktionen aus, ohne den Manager zu öffnen. Wenn /mcp über piped stdin oder eine andere Nicht-TTY-Eingabe eingeht, gibt IaC Code eine Meldung aus, dass ein Terminal erforderlich ist; verwenden Sie iac-code mcp <command> für nicht interaktive Automatisierung.

Stdio Servers

Stdio servers launch a local command:

{
"mcpServers": {
"catalog": {
"command": "python",
"args": ["./tools/catalog_mcp.py"],
"env": {
"CATALOG_ENV": "prod"
}
}
}
}

Das Feld type kann weggelassen werden, wenn command vorhanden ist. IaC-Code übergibt eine sichere geerbte Umgebung plus den Server env. Bevorzugen Sie unter Windows cmd /c npx anstelle von bloßem npx für knotenbasierte Server.

HTTP and SSE Servers

Remote-Server erfordern type und url:

{
"mcpServers": {
"reviewer": {
"type": "http",
"url": "https://mcp.example.com/mcp",
"headers": {
"Authorization": "${MCP_REVIEWER_TOKEN}"
}
}
}
}

Verwenden Sie type: "sse" für SSE-Server. Statische Header werden entweder mit der CLI-Syntax KEY=VALUE oder Name: Value unterstützt.

Dynamische Header können mit headersHelper bereitgestellt werden:

{
"mcpServers": {
"reviewer": {
"type": "http",
"url": "https://mcp.example.com/mcp",
"headers": {
"X-Org": "platform"
},
"headersHelper": "python ./scripts/mcp_headers.py"
}
}
}

Der helper muss ein JSON object ausgeben, dessen Schlüssel und Werte Strings sind. Dynamische Header überschreiben statische Header mit demselben Namen. IaC Code führt helpers ohne shell, ohne stdin, mit minimal geerbter Umgebung, dem Konfigurationsquellverzeichnis als cwd, 5 Sekunden timeout und redigierten stderr diagnostics aus. Der headersHelper command string wird nicht per Umgebungsvariable expandiert; referenzierte Variablen werden in die helper Umgebung übergeben, und der helper muss sie selbst lesen. Helpers in project .mcp.json benötigen project approval, bevor sie ausgeführt werden.

WebSocket Servers

WebSocket servers use type: "ws":

{
"mcpServers": {
"events": {
"type": "ws",
"url": "wss://mcp.example.com/mcp"
}
}
}

Der installierte MCP SDK WebSocket-Transport akzeptiert nur eine URL. IaC-Code lehnt WebSocket-Konfigurationen ab, die auch headers, headersHelper oder oauth festlegen.

Environment Expansion

String values support:

${VAR}
${VAR:-default-value}

Fehlende Variablen ohne default erzeugen eine MCP warning, und der betroffene server wird übersprungen. Umgebungsexpansion gilt rekursiv für Strings in Listen und Objekten, außer für den headersHelper command string; dieser bleibt literal und erhält referenzierte Variablen über die helper Umgebung.

Speichern Sie keine Klartextgeheimnisse in Headern oder Umgebungswerten. Verwenden Sie Umgebungsvariablenreferenzen oder OAuth-Geheimnisspeicher.

Project Approval

Das Projekt .mcp.json kann in ein Repository übernommen werden, sodass IaC-Code ihm nicht automatisch vertraut.

Interactive REPL startup asks:

Approve project MCP server 'name' from /path/to/.mcp.json? [y/N]

Durch Drücken der Eingabetaste bleibt die Standardeinstellung N erhalten und die exakte Projektserverkonfiguration wird abgelehnt. Geben Sie „y“ oder „yes“ ein, um es zu genehmigen. Die Genehmigung wird lokal im IaC-Code-Konfigurationsverzeichnis gespeichert und umfasst den Arbeitsbereichspfad, den Projektdateipfad, den Servernamen und die Konfigurationssignatur. Wenn sich die Serverkonfiguration .mcp.json ändert, wird die Genehmigung ungültig und der Server wird wieder ausstehend.

Headless-, ACP- und A2A-Startups stellen niemals interaktive Genehmigungsfragen. Ausstehende Projektserver werden übersprungen und als Warnungen gemeldet.

Disabled Servers

iac-code mcp disable <name> speichert einen privaten Eintrag für den deaktivierten Status im IaC-Code-Konfigurationsverzeichnis. Bei projektbezogenen Servern wird die freigegebene Datei .mcp.json dadurch nicht verändert. Deaktivierte Einträge sind nach Bereich, Quelldatei, Servername und Konfigurationssignatur kodiert, sodass eine Änderung der Serverkonfiguration den veralteten deaktivierten Status ungültig macht.