Provides comprehensive Jenkins CI/CD integration with tools for triggering builds, managing jobs, retrieving build logs and console output, monitoring build queues, and managing Jenkins nodes/agents programmatically.
Jenkins MCP Server
A Python-based Jenkins MCP server using the Model Context Protocol Python SDK. This server integrates with Jenkins CI/CD systems to provide AI-powered insights, build management, and debugging capabilities.
Note: This server follows the Model Context Protocol (MCP), enabling AI assistants to interact with Jenkins systems directly.
Installation
Option 1: Install as a Python Package (Recommended)
The easiest way to install and run this server is as a Python package:
Option 2: Clone and Run
VS Code Integration
Configure for VS Code
For quick installation, use one of the one-click install buttons below:
For manual installation:
Install the Model Context Protocol (MCP) extension for VS Code
Create a
.vscode/mcp.json
file in your workspace with the following configuration:
Configure your authentication method:
Recommended: Use API token authentication by setting
JENKINS_TOKEN
Alternatively: Use password authentication by setting
JENKINS_PASSWORD
Connect any AI assistant that supports MCP (like GitHub Copilot) to your Jenkins environment
Components
Resources
The server provides access to Jenkins jobs as resources:
Custom jenkins:// URI scheme for accessing individual jobs
Each job resource contains details about the job and its builds in JSON format
Job status is reflected in the resource description
Prompts
The server provides prompts for Jenkins data analysis:
analyze-job-status: Creates analysis of all Jenkins jobs
Optional "detail_level" argument to control analysis depth (brief/detailed)
Analyzes job statuses, identifies potential issues, and suggests improvements
analyze-build-logs: Analyzes build logs for a specific job
Required "job_name" argument to specify which job to analyze
Optional "build_number" argument (defaults to latest build)
Examines build logs to identify issues, errors, warnings, and suggests fixes
Tools
The server implements the following tools for Jenkins operations:
trigger-build: Triggers a Jenkins job build
Required "job_name" argument to specify which job to build
Optional "parameters" object containing job parameters
Returns build queue information
stop-build: Stops a running Jenkins build
Required "job_name" and "build_number" arguments
Halts an in-progress build execution
get-job-details: Gets detailed information about a specific job
Required "job_name" argument
Returns comprehensive job information including recent builds
list-jobs: Lists all Jenkins jobs
Returns a list of all Jenkins jobs with their statuses
get-build-info: Gets information about a specific build
Required "job_name" and "build_number" arguments
Returns build status, duration, and other details
get-build-console: Gets console output from a build
Required "job_name" and "build_number" arguments
Returns the console log output from a specific build
get-queue-info: Gets information about the Jenkins build queue
Returns information about pending builds in the queue
get-node-info: Gets information about a Jenkins node/agent
Required "node_name" argument
Returns node status and configuration details
list-nodes: Lists all Jenkins nodes/agents
Returns a list of all Jenkins nodes/agents and their statuses
Configuration
Option 1: VS Code Settings (Recommended)
Configure your Jenkins connection in VS Code settings:
Open VS Code Settings (Press
Cmd+,
on Mac orCtrl+,
on Windows/Linux)Click on the "Open Settings (JSON)" button in the top right
Add these settings:
Create a file at .vscode/mcp.json
with these contents:
And in your .vscode/settings.json
file:
This configuration:
Registers the MCP server in VS Code
Stores your Jenkins credentials securely in VS Code settings
Uses
uvx
to run the server automatically when needed
Option 2: Environment Variables
Alternatively, configure your Jenkins connection by setting environment variables:
Copy the
.env.example
file to create a.env
file:cp .env.example .envEdit the
.env
file with your Jenkins details:JENKINS_URL=http://your-jenkins-server:8080 JENKINS_USERNAME=your-username JENKINS_PASSWORD=your-password # OR use an API token instead of password (recommended) JENKINS_TOKEN=your-api-token
Security Note: Using VS Code settings is more secure as they are stored encrypted. Environment variables in a
.env
file are stored in plain text.
Usage with AI Assistants
Once configured, AI assistants that support MCP can now interact with your Jenkins server through natural language. Here are some examples of what you can do:
GitHub Copilot Chat
Open GitHub Copilot Chat in VS Code
Type prompts like:
"List all my Jenkins jobs"
"What's the status of my 'deployment' job?"
"Show me the build logs for the failed build in 'test-project'"
"Trigger a new build for 'deploy-api'"
Command Line Usage
You can also run the server directly from the command line:
Command-Line Usage
The uvx
command makes it easy to use the MCP server in command-line environments without VS Code:
Testing from Command Line
You can manually send JSON-RPC requests:
Development Setup
If you're developing this MCP server:
Clone this repository
Install dependencies:
uv venv uv pip install -e ".[dev]"Run the server in development mode:
python -m jenkins_mcp_server --verbose
VS Code Configuration for Development
For development in VS Code:
Install the GitHub Copilot Chat extension
Enable MCP in Copilot settings
Start a new chat with Copilot and interact with your Jenkins server!
3. Claude Desktop
For Claude Desktop users:
On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
Development
Building and Publishing
To prepare the package for distribution:
Sync dependencies and update lockfile:
Build package distributions:
This will create source and wheel distributions in the dist/
directory.
Publish to PyPI:
Note: You'll need to set PyPI credentials via environment variables or command flags:
Token:
--token
orUV_PUBLISH_TOKEN
Or username/password:
--username
/UV_PUBLISH_USERNAME
and--password
/UV_PUBLISH_PASSWORD
Debugging
Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.
You can launch the MCP Inspector via npm
with this command:
Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Enables AI assistants to interact with Jenkins CI/CD systems through natural language, providing build management, job monitoring, log analysis, and debugging capabilities.