Skip to main content
Glama

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.


argocd-mcp-demo

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 sie

  • get_application: Ruft detaillierte Informationen zu einer bestimmten Anwendung ab

  • create_application: Erstellt eine neue Anwendung

  • update_application: Aktualisiert eine bestehende Anwendung

  • delete_application: Löscht eine Anwendung

  • sync_application: Löst einen Synchronisierungsvorgang für eine Anwendung aus

Ressourcenverwaltung

  • get_application_resource_tree: Ruft den Ressourcenbaum für eine bestimmte Anwendung ab

  • get_application_managed_resources: Ruft verwaltete Ressourcen für eine bestimmte Anwendung ab

  • get_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 werden

  • get_resource_actions: Ruft verfügbare Aktionen für Ressourcen ab

  • run_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

  1. 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>"
      }
    }
  }
}
  1. Starten Sie ein Gespräch im Agent-Modus, um das MCP zu verwenden.

Verwendung mit VSCode

  1. 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>"
      }
    }
  }
}
  1. Starten Sie ein Gespräch mit einem KI-Assistenten in VS Code, der MCP unterstützt.

Verwendung mit Claude Desktop

  1. 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>"
      }
    }
  }
}
  1. 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_application

  • update_application

  • delete_application

  • sync_application

  • run_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 --stateless

Oder mit Docker:

docker run -e ARGOCD_BASE_URL=<argocd_url> -e ARGOCD_API_TOKEN=<argocd_token> \
  argoprojlabs/mcp-for-argocd http --stateless

Im zustandslosen Modus:

  • Es wird keine Mcp-Session-Id zurückgegeben oder benötigt – jedes Replikat kann jede Anfrage verarbeiten

  • ArgoCD-Anmeldeinformationen müssen bei jeder Anfrage über Umgebungsvariablen oder x-argocd-base-url / x-argocd-api-token-Header bereitgestellt werden

  • GET /mcp und DELETE /mcp geben 405 Method Not Allowed zurü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

  1. Klonen Sie das Repository:

git clone https://github.com/argoproj-labs/mcp-for-argocd.git
cd mcp-for-argocd
  1. Installieren Sie die Projektabhängigkeiten:

pnpm install
  1. Starten Sie den Entwicklungsserver mit aktiviertem Hot-Reloading:

pnpm run dev

Sobald 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:

  1. 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.

  2. Platzieren Sie die heruntergeladene swagger.json-Datei im Stammverzeichnis des argocd-mcp-Projekts.

  3. 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-types
  4. Aktualisieren Sie die Datei src/types/argocd-types.ts, um die erforderlichen Typen aus der neu generierten src/types/argocd.d.ts zu 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.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
8wRelease cycle
7Releases (12mo)
Issues opened vs closed

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