jenkins-mcp

redhat-ai-tools/jenkins-mcp

3.2

If you are the rightful owner of jenkins-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

This MCP server facilitates interaction with multiple Jenkins instances from a single server, using header-based authentication for multi-tenancy.

Tools
  1. getAllJobs

    Get a list of all Jenkins jobs.

  2. getJob

    Get a Jenkins job by its full path.

  3. getBuild

    Retrieve a specific build or the last build of a Jenkins job.

  4. triggerBuild

    Trigger a build of a job.

  5. getBuildLog

    Retrieve log lines for a specific build or the last build of a Jenkins job (supports pagination).

jenkins-mcp

MCP Server for multiple Jenkins instances

Overview

This MCP (Model Context Protocol) server allows you to interact with multiple Jenkins instances from a single server. Unlike traditional setups, this server extracts the Jenkins URL and API token from each request's headers, enabling true multi-tenancy.

  • Multi-tenancy: Serve multiple Jenkins instances from a single MCP server.
  • Header-based authentication: Jenkins URL and token are provided per request via headers.
  • Parity with official Jenkins MCP plugin: Implements the same core tools as the official Jenkins MCP Server Plugin.

Running the Jenkins MCP Server

You can run the server with either stdio (for local/CLI use) or a network transport (e.g., SSE for remote clients).

Environment Variables (stdio mode)

  • JENKINS_URL: The Jenkins instance URL (used only in stdio mode)
  • JENKINS_TOKEN: The Jenkins API token (used only in stdio mode)
  • MCP_TRANSPORT: Set to stdio (default) or another transport (e.g., sse)
Example MCP Client Configuration
{
  "mcpServers": {
    "jenkins-mcp": {
      "command": "podman",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "JENKINS_URL",
        "-e", "JENKINS_TOKEN",
        "-e", "MCP_TRANSPORT",
        "quay.io/redhat-ai-tools/jenkins-mcp:latest"
      ],
      "env": {
        "JENKINS_URL": "https://jenkins.example.com/",
        "JENKINS_TOKEN": "REDACTED",
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

Replace REDACTED with your Jenkins API token, which you can generate from your Jenkins user account settings.

Header-based Authentication (non-stdio mode)

For non-stdio transports, the Jenkins URL and token must be provided in each request's headers:

  • Jenkins-Url: The Jenkins instance URL
  • Jenkins-Token: The Jenkins API token

This allows the server to route requests to different Jenkins instances per client/request.

Example MCP Client Configuration
{
  "mcpServers": {
    "jenkins": {
      "url": "https://jenkins-mcp.example.com/sse",
      "headers": {
        "Jenkins-Url": "https://jenkins.example.com/",
        "Jenkins-Token": "REDACTED"
      }
    }
  }
}

Available Tools

The following tools are implemented, matching the official Jenkins MCP plugin:

  • getAllJobs: Get a list of all Jenkins jobs.
  • getJob(full_path): Get a Jenkins job by its full path.
  • getBuild(full_path, build_number=None): Retrieve a specific build or the last build of a Jenkins job.
  • triggerBuild(full_path): Trigger a build of a job.
  • getBuildLog(full_path, build_number=None, start=0): Retrieve log lines for a specific build or the last build of a Jenkins job (supports pagination).

Usage

  • For each request, provide the Jenkins URL and token in the headers (unless using stdio mode, where they are read from environment variables).
  • The server will use these credentials to interact with the specified Jenkins instance.

References


This project is not affiliated with the official Jenkins MCP plugin, but aims for feature parity and interoperability.