
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 tostdio(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 URLJenkins-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.
安装
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"
}
}
}
}