Argo CD MCP Server
Argo CD MCP-Server
Eine Implementierung eines Model Context Protocol (MCP)-Servers für Argo CD, die es KI-Assistenten ermöglicht, über natürliche Sprache mit Ihren Argo CD-Anwendungen zu interagieren. Dieser Server ermöglicht eine nahtlose Integration mit Visual Studio Code und anderen MCP-Clients über stdio- und HTTP-Stream-Transportprotokolle.
Funktionen
Transportprotokolle: Unterstützt sowohl stdio- als auch HTTP-Stream-Transportmodi für eine flexible Integration mit verschiedenen Clients
Vollständige Argo CD API-Integration: Bietet umfassenden Zugriff auf Argo CD-Ressourcen und -Vorgänge
Bereit für KI-Assistenten: Vorkonfigurierte Tools für KI-Assistenten zur Interaktion mit Argo CD in natürlicher Sprache
Verfügbare Tools
Der Server stellt die folgenden ArgoCD-Verwaltungstools bereit:
Cluster-Verwaltung
list_clusters: Listet alle bei ArgoCD registrierten Cluster auf
Anwendungsverwaltung
list_applications: Listet alle Anwendungen auf und filtert sieget_application: Ruft detaillierte Informationen zu einer bestimmten Anwendung abcreate_application: Erstellt eine neue Anwendungupdate_application: Aktualisiert eine bestehende Anwendungdelete_application: Löscht eine Anwendungsync_application: Löst einen Synchronisierungsvorgang für eine Anwendung aus
Ressourcenverwaltung
get_application_resource_tree: Ruft den Ressourcenbaum für eine bestimmte Anwendung abget_application_managed_resources: Ruft verwaltete Ressourcen für eine bestimmte Anwendung abget_application_workload_logs: Ruft Protokolle für Anwendungsworkloads ab (Pods, Deployments usw.)get_resource_events: Ruft Ereignisse für Ressourcen ab, die von einer Anwendung verwaltet werdenget_resource_actions: Ruft verfügbare Aktionen für Ressourcen abrun_resource_action: Führt eine Aktion für eine Ressource aus
Installation
Voraussetzungen
Node.js (v18 oder höher empfohlen)
pnpm Paketmanager (für die Entwicklung)
Argo CD-Instanz mit API-Zugriff
Argo CD API-Token (siehe Dokumentation für Anweisungen)
Verwendung mit Cursor
Befolgen Sie die Cursor-Dokumentation für MCP-Unterstützung und erstellen Sie eine
.cursor/mcp.json-Datei in Ihrem Projekt:
{
"mcpServers": {
"argocd-mcp": {
"command": "npx",
"args": [
"argocd-mcp@latest",
"stdio"
],
"env": {
"ARGOCD_BASE_URL": "<argocd_url>",
"ARGOCD_API_TOKEN": "<argocd_token>"
}
}
}
}Starten Sie ein Gespräch im Agent-Modus, um das MCP zu verwenden.
Verwendung mit VSCode
Befolgen Sie die Dokumentation zur Verwendung von MCP-Servern in VS Code und erstellen Sie eine
.vscode/mcp.json-Datei in Ihrem Projekt:
{
"servers": {
"argocd-mcp-stdio": {
"type": "stdio",
"command": "npx",
"args": [
"argocd-mcp@latest",
"stdio"
],
"env": {
"ARGOCD_BASE_URL": "<argocd_url>",
"ARGOCD_API_TOKEN": "<argocd_token>"
}
}
}
}Starten Sie ein Gespräch mit einem KI-Assistenten in VS Code, der MCP unterstützt.
Verwendung mit Claude Desktop
Befolgen Sie die MCP in Claude Desktop-Dokumentation und erstellen Sie eine
claude_desktop_config.json-Konfigurationsdatei:
{
"mcpServers": {
"argocd-mcp": {
"command": "npx",
"args": [
"argocd-mcp@latest",
"stdio"
],
"env": {
"ARGOCD_BASE_URL": "<argocd_url>",
"ARGOCD_API_TOKEN": "<argocd_token>"
}
}
}
}Konfigurieren Sie Claude Desktop so, dass diese Konfigurationsdatei in den Einstellungen verwendet wird.
Selbstsignierte Zertifikate
Wenn Ihre Argo CD-Instanz selbstsignierte Zertifikate oder Zertifikate einer privaten Zertifizierungsstelle (CA) verwendet, müssen Sie möglicherweise die folgende Umgebungsvariable zu Ihrer Konfiguration hinzufügen:
"NODE_TLS_REJECT_UNAUTHORIZED": "0"Dies deaktiviert die TLS-Zertifikatsvalidierung für Node.js bei der Verbindung mit Argo CD-Instanzen, die selbstsignierte Zertifikate oder Zertifikate von privaten CAs verwenden, die nicht vom Zertifikatsspeicher Ihres Systems als vertrauenswürdig eingestuft werden.
Warnung: Das Deaktivieren der SSL-Überprüfung verringert die Sicherheit. Verwenden Sie diese Einstellung nur in Entwicklungsumgebungen oder wenn Sie die Sicherheitsimplikationen verstehen.
Schreibgeschützter Modus
Wenn Sie den MCP-Server im schreibgeschützten Modus ausführen möchten, um Änderungen an Ressourcen oder Anwendungen zu vermeiden, sollten Sie die Umgebungsvariable setzen:
"MCP_READ_ONLY": "true"Dies deaktiviert die folgenden Tools:
create_applicationupdate_applicationdelete_applicationsync_applicationrun_resource_action
Standardmäßig sind alle Tools verfügbar.
Zustandsloser Modus
Standardmäßig weist der HTTP-Transport jeder Client-Verbindung eine Sitzungs-ID zu und führt eine In-Memory-Zuordnung aktiver Sitzungen. Dies funktioniert gut für Bereitstellungen mit einer einzelnen Instanz, führt jedoch zu 400-Fehlern, wenn mehrere Replikate ohne Sticky Sessions ausgeführt werden, da eine an einen anderen Pod weitergeleitete Anfrage die auf dem ursprünglichen Pod erstellte Sitzung nicht findet.
Um ohne Anforderungen an die Sitzungsaffinität zu arbeiten, starten Sie den Server mit dem --stateless-Flag:
node dist/index.js http --statelessOder mit Docker:
docker run -e ARGOCD_BASE_URL=<argocd_url> -e ARGOCD_API_TOKEN=<argocd_token> \
argoprojlabs/mcp-for-argocd http --statelessIm zustandslosen Modus:
Es wird keine
Mcp-Session-Idzurückgegeben oder benötigt – jedes Replikat kann jede Anfrage verarbeitenArgoCD-Anmeldeinformationen müssen bei jeder Anfrage über Umgebungsvariablen oder
x-argocd-base-url/x-argocd-api-token-Header bereitgestellt werdenGET /mcpundDELETE /mcpgeben405 Method Not Allowedzurück (SSE auf Sitzungsebene und Beendigung werden nicht unterstützt)
Dieser Modus wird für Kubernetes-Bereitstellungen mit Horizontal Pod Autoscaling (HPA) empfohlen, bei denen netzwerkbasierte Sticky Sessions nicht verfügbar sind.
Für die Entwicklung
Klonen Sie das Repository:
git clone https://github.com/argoproj-labs/mcp-for-argocd.git
cd mcp-for-argocdInstallieren Sie die Projektabhängigkeiten:
pnpm installStarten Sie den Entwicklungsserver mit aktiviertem Hot-Reloading:
pnpm run devSobald der Server läuft, können Sie den MCP-Server in Visual Studio Code oder einem anderen MCP-Client nutzen.
Aktualisieren von ArgoCD-Typen
So aktualisieren Sie die TypeScript-Typdefinitionen basierend auf der neuesten Argo CD API-Spezifikation:
Laden Sie die
swagger.json-Datei von der ArgoCD-Release-Seite herunter, zum Beispiel hier ist der swagger.json-Link für ArgoCD v2.14.11.Platzieren Sie die heruntergeladene
swagger.json-Datei im Stammverzeichnis desargocd-mcp-Projekts.Generieren Sie die TypeScript-Typen aus der Swagger-Definition, indem Sie den folgenden Befehl ausführen. Dies erstellt oder überschreibt die Datei
src/types/argocd.d.ts:pnpm run generate-typesAktualisieren Sie die Datei
src/types/argocd-types.ts, um die erforderlichen Typen aus der neu generiertensrc/types/argocd.d.tszu exportieren. Dieser Schritt erfordert oft eine manuelle Überprüfung, um sicherzustellen, dass nur die notwendigen Typen offengelegt werden.
Credits
Das Projekt wurde ursprünglich von @jiachengxu, @imwithye, @hwwn und @alexmt von Akuity erstellt und gespendet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/argoproj-labs/mcp-for-argocd'
If you have feedback or need assistance with the MCP directory API, please join our Discord server