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.
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.
- Tests ausführen: Führen Sie die Tests aus, nachdem der Build abgeschlossen ist.
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_USER
angegeben 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_MODE
nicht auftrue
gesetzt ist.DEBUG_MODE
: Auftrue
setzen, 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.py
und 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:5000
wenn 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.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Ein Model Context Protocol (MCP)-Server, der es KI-Tools wie Chatbots ermöglicht, mit Jenkins zu interagieren und es zu steuern, sodass Benutzer Jobs auslösen, Build-Status überprüfen und andere Jenkins-Operationen in natürlicher Sprache ausführen können.
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI assistants to interact with Jenkins CI/CD servers, providing tools to check build statuses, trigger builds, and retrieve build logs.Last updated -38JavaScriptMIT License
- AsecurityAlicenseAqualityA server that uses the Model Context Protocol (MCP) to allow AI agents to safely execute shell commands on a host system.Last updated -1762TypeScriptMIT License
- -securityAlicense-qualityA Model Context Protocol (MCP) server that enables real-time, interactive AI chat with Selector AI through a streaming-capable server and Docker-based client communicating via stdin/stdout.Last updated -1PythonApache 2.0
- -securityAlicense-qualityThe Model Context Protocol (MCP) Jenkins integration is an open-source implementation that bridges Jenkins with AI language models following Anthropic's MCP specification. This project enables secure, contextual AI interactions with Jenkins tools while maintaining data privacy and security.Last updated -25PythonMIT License