Zum Hauptinhalt springen

MCP-Integration

IaC Code kann als Model Context Protocol (MCP) host arbeiten. MCP servers erweitern den agent um externe tools, resources, prompts und reusable skills und laufen weiter durch IaC Codes permission-, session-, logging- und output-handling-Pfade.

Verwenden Sie MCP, wenn Sie möchten, dass IaC-Code eine lokale oder Remote-Funktion aufruft, die nicht in das Produkt integriert ist, z. B. einen privaten Vorlagenkatalog, einen internen Bereitstellungsprüfer, einen Inventarabfragedienst oder ein spezielles Cloud-Betriebstool.

Supported Surfaces

SurfaceMCP support
Interaktive REPLLädt Benutzer-, lokale und genehmigte Projektserver. Eingabeaufforderungen, bevor neuen Projekt-.mcp.json-Servern vertraut wird.
Nicht interaktiver ModusLädt Benutzer-, lokale und genehmigte Projektserver. Nie Aufforderungen; Ausstehende Projektserver werden mit Warnungen übersprungen.
ACP-ServerAkzeptiert Sitzungs-MCP-Serverkonfigurationen von ACP-Clients und stellt erkannte MCP-Funktionen innerhalb dieser Sitzung bereit.
A2A-ServerLädt MCP über die normale Laufzeit und kann MCP-Warnungen und Tool-Fortschritt in A2A-Aufgabenmetadaten veröffentlichen.
Pipeline-ModusVerwendet die gleichen Laufzeitintegrationen wie im Normalmodus, einschließlich MCP-Tool-Fortschritt und Warnungsweitergabe.

Supported Capabilities

CapabilityStatus
stdio-TransportUnterstützt für lokale MCP-Serverprozesse.
Streambarer HTTP-TransportUnterstützt für Remote-MCP-Server.
SSE-TransportUnterstützt für Remote-MCP-Server.
MCP-ToolsWird als Agent-Tools mit dem Namen mcp__<server>__<tool> bereitgestellt.
MCP-RessourcenVerfügbar gemacht durch list_mcp_resources und read_mcp_resource.
MCP-EingabeaufforderungenWird als Slash-Befehl mit dem Namen mcp__<server>__<prompt> angezeigt.
MCP skill://-RessourcenWird als Skill-Befehle mit dem Namen mcp__<server>__<skill> bereitgestellt.
OAuth-Loopback-AuthentifizierungUnterstützt für Remote-Server mit OAuth-Metadaten.
roots/listUnterstützt. IaC-Code gibt das Stammverzeichnis des aktiven Arbeitsbereichs als Datei-URI zurück.
list_changed-BenachrichtigungenUnterstützt für Tools, Ressourcen und Eingabeaufforderungen. Registrierungen werden dynamisch aktualisiert.
MCP elicitationIn interaktiven sessions unterstützt. Nicht interaktive runs brechen sicher ab. URL elicitation kann nach Benutzerbestätigung den ursprünglichen tool call erneut versuchen.
WebSocket transportFür server mit ausschließlich ws:// oder wss:// URL unterstützt. WebSocket lehnt headers, headersHelper und OAuth ab, da der installierte SDK transport nur eine URL akzeptiert.
Dynamische headersHelper commandsFür vertrauenswürdige http und sse server unterstützt. Helpers laufen ohne shell, mit begrenztem timeout, minimaler Umgebung und redigierten diagnostics.
SDK- und IDE-TransporteNicht unterstützt.
IaC-Code als MCP-ServerNicht unterstützt. IaC-Code fungiert derzeit nur als MCP-Host.

How It Works

At runtime IaC Code:

  1. Lädt die MCP-Konfiguration aus Benutzer-, Projekt-, lokalen und Sitzungsquellen.
  2. Erweitert die Referenzen ${VAR} und ${VAR:-default}.
  3. Überspringt unsichere oder ungültige Server mit für den Benutzer sichtbaren Warnungen.
  4. Verbindet genehmigte Server mit begrenzter Parallelität.
  5. Entdeckt Tools, Ressourcen, Prompts und skill://-Ressourcen.
  6. Registriert diese Funktionen in den vorhandenen Tool- und Befehlsregistern.
  7. Fügt Anweisungen für verbundene Server als serverbezogene Anleitung in die Agent-Eingabeaufforderung ein.
  8. Konvertiert MCP-Tool-Ergebnisse in normale IaC-Code-Tool-Ergebnisse und speichert binäre Artefakte und große Textartefakte im Runtime-Konfigurationsverzeichnis.
  9. Trennt MCP-Clients, wenn REPL, Headless-Ausführung, ACP-Sitzung oder A2A-Runtime geschlossen werden.

Ein ausgefallener MCP-Server blockiert andere konfigurierte Server nicht. Verbindungs- und Erkennungsfehler bleiben als MCP-Warnungen sichtbar.

Naming

MCP-Tools und -Befehle werden in öffentliche Namen normalisiert:

mcp__<server>__<tool>
mcp__<server>__<prompt>
mcp__<server>__<skill>

Zeichen außerhalb von Buchstaben, Zahlen und Unterstrichen werden zu Unterstrichen. Wenn zwei erkannte Funktionen nach der Normalisierung kollidieren, hängt IaC-Code einen kurzen Digest an, um die Namen eindeutig zu halten.

Für MCP-Skills registriert IaC Code auch einen Kompatibilitätsalias wie <server>:<skill>, wenn dieser Alias nicht mit einem vorhandenen Befehl in Konflikt steht. Die Diagnose behält die ursprünglichen Server-, Tool-, Eingabeaufforderungs- oder Skillnamen bei, selbst wenn öffentliche Namen normalisiert werden.