mcp_jenkins
Ein Jenkins MCP-Server. Über das Model Context Protocol (MCP) können KI-Tools (wie Chatbots) mit Ihrem Jenkins-Setup kommunizieren und es steuern, d. h. Informationen abrufen und Einstellungen ändern.
Hinweis: Dies ist eine minimale experimentelle Version des MCP Jenkins-Servers und befindet sich derzeit in der frühen Entwicklungsphase.
Beschreibung
Dieses Projekt bietet einen Model Context Protocol (MCP)-Server für die Interaktion mit Jenkins. Es ermöglicht Benutzern, Jenkins-Jobs auszulösen, Build-Status abzurufen und andere Jenkins-bezogene Vorgänge über die MCP-Schnittstelle auszuführen.
Related MCP server: mcp-jenkins
Komponenten
server.py: Die zentrale MCP Jenkins-Serveranwendung.functions_schema.md: Definiert das Schema für die vom MCP Jenkins-Server bereitgestellten Funktionen.client.py: Ein Beispielclient, der die Interaktion mit dem MCP Jenkins-Server demonstriert (nur als Referenz bereitgestellt).functional tests: Enthält Funktionstests für den MCP Jenkins-Server.
Installation
Um das Paket zu installieren, führen Sie Folgendes aus:
Verwendung
Gängige Arbeitsabläufe
Ausführen des Servers
So führen Sie den MCP-Server aus:
Ausführen des Beispielclients
So führen Sie den Beispielclient aus:
Um beispielsweise Builds für einen Job namens „Backups“ unter Verwendung eines bestimmten Modells aufzulisten, können Sie Folgendes ausführen:
Hinweis: Wenn das Paket über pip install . installiert wird, ist auch das Konsolenskript mcp_jenkins_client verfügbar.
Dies könnte zu einer Ausgabe ähnlich der folgenden führen:
Erstellen und Testen mit Docker
Ein gängiger Arbeitsablauf für Entwicklung und Tests besteht darin, zuerst das Docker-Image zu erstellen und dann die Tests auszuführen:
Erstellen Sie das Docker-Image: Dieser Schritt bereitet die zum Testen erforderliche Umgebung vor.
./docker/buildTests ausführen: Führen Sie die Tests aus, nachdem der Build abgeschlossen ist.
./docker/run.tests
Diese Reihenfolge stellt sicher, dass Tests mit dem neuesten Build in einer konsistenten Docker-Umgebung durchgeführt werden.
Bereitstellen einer Testumgebung
So stellen Sie eine lokale Jenkins-Testinstanz bereit (ohne Authentifizierung, nur für Funktionstests):
Herstellen einer Verbindung zu einer vorhandenen Jenkins-Instanz
Um den MCP Jenkins-Server mit einer vorhandenen Jenkins-Instanz zu verwenden, müssen Sie die folgenden Umgebungsvariablen konfigurieren:
JENKINS_URL: Die vollständige URL Ihrer Jenkins-Instanz (z.http://your-jenkins-host:8080). Dies ist erforderlich .JENKINS_USER: (Optional) Ihr Jenkins-Benutzername, falls eine Authentifizierung erforderlich ist.JENKINS_API_TOKEN: (Optional) Ihr Jenkins-API-Token. Dieser muss zusammen mitJENKINS_USERangegeben werden, wenn Authentifizierung verwendet wird. Sie können einen API-Token auf der Konfigurationsseite Ihres Jenkins-Benutzers (<Jenkins URL>/me/configure) generieren.MCP_API_KEY: Ein geheimer API-Schlüssel zur Sicherung dieses MCP-Servers. Anfragen an den MCP-Server müssen diesen Schlüssel imX-API-Key-Header enthalten. Dies ist erforderlich , sofernDEBUG_MODEnicht auftruegesetzt ist.DEBUG_MODE: Auftruesetzen, um den MCP-Server im Debug-Modus auszuführen. Dadurch wird dieMCP_API_KEY-Anforderung umgangen und eine ausführlichere Protokollierung ermöglicht. Nicht in der Produktion verwenden.
Beispielkonfiguration (Bash):
Sobald diese Umgebungsvariablen festgelegt sind, können Sie den MCP-Server mit dem Docker-Skript ausführen:
Der MCP-Server versucht dann, eine Verbindung zu Ihrer angegebenen Jenkins-Instanz herzustellen.
OpenWebUI-Integration
Die Datei open-webui/open_webui_interface.py bietet ein Beispiel für die Integration dieses MCP-Jenkins-Servers in eine OpenWebUI-Instanz.
So verwenden Sie es:
Navigieren Sie in Ihrer OpenWebUI-Oberfläche zum Abschnitt zum Hinzufügen oder Konfigurieren von Tools.
Erstellen Sie ein neues Werkzeug.
Kopieren Sie den gesamten Inhalt der Datei
open-webui/open_webui_interface.pyund fügen Sie ihn in die Toolkonfiguration in OpenWebUI ein.Wichtig : Sie müssen die Verbindungsparameter im eingefügten Code anpassen, insbesondere:
MCP_JENKINS_SERVER_URL: Setzen Sie diese Umgebungsvariable in Ihrer OpenWebUI-Umgebung auf die URL Ihres laufenden MCP Jenkins-Servers (z. B.http://localhost:5000). Das Skript verwendet standardmäßighttp://localhost:5000wenn die Variable nicht gesetzt ist.MCP_API_KEY: Wenn Ihr MCP-Jenkins-Server einen API-Schlüssel benötigt, stellen Sie sicher, dass diese Umgebungsvariable in Ihrer OpenWebUI-Umgebung gesetzt ist. Das Skript gibt eine Warnung aus, wenn der Schlüssel nicht gefunden wird, versucht aber trotzdem, Anfragen zu stellen.
Nach der Konfiguration sollten die in open_webui_interface.py definierten Tools (z. B. list_jobs , trigger_build , get_build_status ) für die Verwendung in Ihrer OpenWebUI-Chat-Schnittstelle verfügbar sein.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert.