RC

redhat-community-ai-tools/jenkins-mcp

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

1 stars 6 forks 质量 54 趋势 9

MCP Server for multiple Jenkins instances

概览

MCP Server for multiple Jenkins instances 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 an API token from each request's headers, enabling true multi-tenancy. - : Serve multiple Jenkins instances from a single MCP server. - : Jenkins URL and token are provided per request via headers. - : Implements the same core tools as the official Jenkins MCP Server Plugin. The server can load configuration from a .env file in the project root. This is useful for development or when running the server outside of a container. A .env.sample file is provided as a template. Environment variables set in your shell will take precedence over values in the .env file. You can run the server with either stdio (for local/CLI use) or a network transport (e.g., SSE for remote clients).

README

以下为原文 README 节选,完整内容请查看原文。

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

.env File Support

The server can load configuration from a .env file in the project root. This is useful for development or when running the server outside of a container. A .env.sample file is provided as a template.

Environment variables set in your shell will take precedence over values in the .env file.

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.
在 GitHub 查看完整 README

安装

This server does not publish a one-line install command.

Open the repository installation guide 新手?先看 mcpskill.org 教程 →

配置

{ "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" } } } }