Skip to main content
Glama

Jenkins MCP

Ein MCP Server, der auf der Jenkins REST API basiert und auf Kompatibilität mit Jenkins 2.332.2, 2.356 und späteren Versionen abzielt.

Er installiert keine Jenkins-Plugins und unterliegt daher nicht der Mindest-Jenkins-Kernversion, die das offizielle mcp-server-Plugin voraussetzt. Ein MCP Server kann in der Konfiguration mehrere Jenkins-Instanzen gleichzeitig verwalten und die Zielinstanz über jenkins_name auswählen.

Implementierte Funktionen

  • Jenkins-Version und Kompatibilitätsfähigkeiten abfragen

  • Aktuell authentifizierten Benutzer abfragen

  • Jobs im Stammverzeichnis oder in einem Folder abfragen

  • Job und Build abfragen

  • Build-Logs abrufen und die Anzahl der zurückgegebenen Zeilen begrenzen

  • Queue, Queue Item und Knoten abfragen

  • Builds auslösen, Builds stoppen, Builds in der Warteschlange abbrechen

  • Authentifizierung mit Benutzername + API Token

  • Jenkins CSRF Crumb automatisch abrufen und erneut versuchen

  • Standardmäßig schreibgeschützt; für Schreiboperationen muss explizit read_only: false gesetzt werden

Related MCP server: Jenkins MCP Server

Installation

Es wird empfohlen, Python 3.10 oder höher zu verwenden:

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'

Konfiguration mehrerer Jenkins-Instanzen

Erstellen Sie jenkins-mcp.json:

{
  "instances": [
    {
      "name": "jenkins-233",
      "base_url": "https://jenkins-233.example.com",
      "username": "mcp-user",
      "api_token": "replace-me",
      "read_only": true,
      "verify_ssl": true,
      "timeout_seconds": 30,
      "max_log_lines": 2000
    },
    {
      "name": "jenkins-356",
      "base_url": "https://jenkins-356.example.com/jenkins",
      "username": "mcp-user",
      "api_token": "replace-me",
      "read_only": false
    }
  ],
  "server": {
    "transport": "stdio",
    "log_level": "INFO"
  }
}

Starten:

jenkins-mcp --config jenkins-mcp.json

In Produktionsumgebungen wird empfohlen, die Konfiguration über Umgebungsvariablen oder ein Schlüsselverwaltungssystem zu injizieren und API Tokens nicht in Git zu committen.

Konfiguration einer einzelnen Jenkins-Instanz über Umgebungsvariablen

Alternativ können folgende Variablen verwendet werden:

export JENKINS_URL='https://jenkins.example.com'
export JENKINS_USERNAME='mcp-user'
export JENKINS_API_TOKEN='replace-me'
export JENKINS_READ_ONLY='true'
jenkins-mcp

Bei mehreren Instanzen kann das JSON-Array in JENKINS_INSTANCES_JSON abgelegt werden, oder JENKINS_CONFIG_FILE kann auf eine JSON-Konfigurationsdatei verweisen.

MCP-Client-Konfiguration

stdio-Beispiel:

{
  "mcpServers": {
    "jenkins": {
      "command": "/absolute/path/to/.venv/bin/jenkins-mcp",
      "args": ["--config", "/absolute/path/to/jenkins-mcp.json"]
    }
  }
}

Bei Tool-Aufrufen wird jenkins_name verwendet, zum Beispiel:

list_jobs(jenkins_name="jenkins-233")
get_build_log(jenkins_name="jenkins-356", job_name="team/app", build_number=123)

Versionskompatibilitätsstrategie

Der Dienst erkennt die Version über den X-Jenkins-Antwortheader von Jenkins. 2.332.2 ist die aktuelle Mindestkompatibilitätsbasis, 2.356 verwendet dieselben grundlegenden REST-API-Fähigkeiten. Versionsbezogene Unterschiede sind im Fähigkeitsmodell von versioning.py hinterlegt; die MCP-Toolschicht enthält keine direkten Versionsprüfungen.

Die grundlegende REST API eignet sich besser für die versionsübergreifende Verwendung als die Jenkins-Plugin-API, aber pluginspezifische Funktionen, erweiterte Pipeline-Informationen und die Credential-Verwaltung sind nicht Teil der aktuellen versionsübergreifenden Garantie.

Entwicklung

pytest
ruff check .

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables managing Jenkins operations like listing jobs, triggering builds, and checking build statuses through a configurable MCP server.
    3
    10
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for interacting with a Jenkins CI/CD server. Allows you to trigger jobs, check build statuses, and manage your Jenkins instance through MCP.
    30 npm
    14
    Apache 2.0