Skip to main content
Glama

Jenkins MCP Tool

Jenkins MCP Tool

Docker MCP Python

๐Ÿš€ Introduction

Jenkins MCP is an multi-Jenkins server management and automation tool developed based on the FastMCP framework, designed for DevOps processes. It supports intelligent scenario mapping, multi-server management, complete CI/CD lifecycle operations, and dynamic job creation.

โœจ Core Features

๐Ÿข Multi-Server Management

  • Dynamic Configuration: Supports configuration and dynamic addition/removal of multiple Jenkins servers

  • Environment Isolation: Supports management of multiple environments such as development, testing, and production

  • Secure Authentication: Supports token and environment variable-based authentication

๐ŸŽฏ Intelligent Scenario Mapping

  • Pre-configured Scenarios: Built-in common DevOps scenarios (user permission sync, app deployment, image sync)

  • Smart Recommendation: Automatically selects server and job path based on scenario

  • Personalized Guidance: Each scenario provides customized operation guidance

โš™๏ธ Full CI/CD Support

  • Job Search: Supports fuzzy and exact search across multi-level directories

  • Parameterized Build: Automatically detects and validates required parameters

  • Real-time Monitoring: Build status query and log retrieval

  • Build Control: Supports build trigger, stop, and management

  • Job Creation: Create/update Jenkins jobs from Jenkinsfile with automatic directory management

๐Ÿ”ง Developer Friendly

  • MCP Standard: Complies with Model Context Protocol specification

  • Dockerized: Containerized deployment for easy integration

  • Multiple Operation Modes: Supports stdio, SSE, and HTTP transport modes

โš™๏ธ Configuration Guide

๐Ÿ“ Config File Structure

Create a config.yaml file to configure Jenkins servers and application scenarios:

# Jenkins server configuration servers: - name: maglev-sre # Server alias uri: https://jenkins.server user: xhuaustc@gmail.com tokenEnv: JENKINS_TOKEN # Recommended: get token from environment variable # Pre-configured application scenarios scenarios: "Sync User Permissions": description: "User permission sync scenario" server: "shlab" job_path: "maglev/tool/permission-replicate/" prompt_template: "Execute user permission sync task. Job path: {job_path}. Please confirm which users' permissions to sync?" "Deploy Application": description: "Application deployment scenario, supports diff/sync/build operations" server: "maglev-sre" job_path: "release/deploy/" prompt_template: "Execute application deployment task. Job path: {job_path}. Please confirm the app name, version, and environment to deploy?" "Sync Image to mldc": description: "Sync container image to mldc environment" server: "shlab" job_path: "mldc-prod/sync-container-image-to-docker-af" prompt_template: "Execute image sync task. Please provide the image address to sync?"

๐Ÿ” Security Configuration

Recommended: Use environment variables to manage sensitive information

export PROD_BLSM_JENKINS_TOKEN="your-production-token" export SHLAB_JENKINS_TOKEN="your-shlab-token"

Configuration Priority:

  1. Environment variable (variable name specified by tokenEnv)

  2. Direct configuration (token field)

  3. Interactive input (if neither is configured)

๐Ÿš€ Quick Start

๐Ÿณ Docker Method (Recommended)

1. Build Image

cd mcps/jenkins docker build -t jenkins-mcp .

2. Prepare Configuration

Create a config.yaml file (refer to the configuration guide above)

3. Run Container

# Use config file from current directory docker run -i --rm \ -v ./config.yaml:/app/config.yaml \ -e PROD_BLSM_JENKINS_TOKEN="${PROD_BLSM_JENKINS_TOKEN}" \ -e SHLAB_JENKINS_TOKEN="${SHLAB_JENKINS_TOKEN}" \ jenkins-mcp # Or specify custom config path docker run -i --rm \ -v /path/to/your/config.yaml:/app/config.yaml \ -e JENKINS_TOKEN="${JENKINS_TOKEN}" \ jenkins-mcp

๐ŸŽจ MCP Client Integration

Cursor Integration

  1. Set Environment Variables:

    export JENKINS_TOKEN="your-jenkins-token"
  2. Create Config File: Create jenkins-config.yaml in the project root:

    servers: - name: your-jenkins uri: https://your-jenkins.company.com user: your-username tokenEnv: JENKINS_TOKEN scenarios: "Deploy Application": description: "Application deployment scenario" server: "your-jenkins" job_path: "deploy/"
  3. Configure Cursor MCP Settings: Add to Cursor's MCP config:

    { "mcpServers": { "jenkins": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "/path/to/your/jenkins-config.yaml:/app/config.yaml", "-e", "JENKINS_TOKEN=${JENKINS_TOKEN}", "docker.io/mpan083/jenkins-mcp" ], "env": { "JENKINS_TOKEN": "your-jenkins-token" } } } }
  4. Usage Example: In Cursor, ask:

    "Get the list of available Jenkins scenarios" "Trigger a build for Deploy Application" "Check the status of the latest build" "Create a new test job from Jenkinsfile"

Method 2: Local Installation

  1. Install Dependencies:

    cd mcps/jenkins pip install -e .
  2. Configure Cursor MCP Settings:

    { "mcpServers": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "~/.jenkinscliconfig:/app/config.yaml", "docker.io/mpan083/jenkins-mcp" ] } } }

๐Ÿ”ง Command Line Arguments

Jenkins MCP supports the following command line arguments:

# Basic usage jenkins [options] # Available options: --transport {stdio,sse,http} # Transport mode (default: stdio) --host HOST # Bind host (default: 0.0.0.0) --port PORT # Bind port (default: 8000) --config, -c CONFIG # Config file path --scenarios, -s SCENARIOS # Scenario file path # Usage examples: jenkins --config my-config.yaml --scenarios my-scenarios.yaml jenkins --transport sse --port 8080 --scenarios custom-scenarios.yaml

๐Ÿ”ง Traditional Startup

# Local development python -m jenkins --transport stdio # Use custom config and scenarios python -m jenkins --config config.yaml --scenarios scenarios.yaml # Web service uvicorn jenkins.server:server --reload --host 0.0.0.0 --port 8000

๐Ÿ“‹ Available Tools (11)

๐Ÿ”ง Server Management

Tool

Description

Params

get_server_names()

Get the list of all available Jenkins servers

None

validate_jenkins_config()

Validate the integrity of Jenkins config

None

๐ŸŽฏ Intelligent Scenarios (Recommended Workflow)

Tool

Description

Params

get_scenario_list()

Get all available scenarios

None

search_jobs_by_scenario(scenario)

Search Jenkins jobs by scenario

scenario

: scenario name

๐Ÿ” Job Search and Management

Tool

Description

Params

search_jobs(server_name, keyword)

Search Jenkins jobs on a server

server_name

: server name

keyword

: search term

get_job_parameters(server_name, job_full_name)

Get job parameter definitions

server_name

: server name

job_full_name

: job name

โš™๏ธ Build Management

Tool

Description

Params

trigger_build(server_name, job_full_name, params)

Trigger Jenkins build

server_name

: server name

job_full_name

: job name

params

: build params (optional)

get_build_status(server_name, job_full_name, build_number)

Get build status

server_name

: server name

job_full_name

: job name

build_number

: build number

stop_build(server_name, job_full_name, build_number)

Stop Jenkins build

server_name

: server name

job_full_name

: job name

build_number

: build number

get_build_log(server_name, job_full_name, build_number)

Get build log

server_name

: server name

job_full_name

: job name

build_number

: build number

๐Ÿš€ Job Creation and Management

Tool

Description

Params

create_or_update_job_from_jenkinsfile(server_name, job_name, jenkinsfile_content, description, folder_path)

Create or update Jenkins job from Jenkinsfile

server_name

: server name

job_name

: job name

jenkinsfile_content

: Jenkinsfile content

description

: job description (optional)

folder_path

: folder path (optional)

๐Ÿš€ Recommended Workflow

Scenario-based Deployment (Recommended)

graph TD A[get_scenario_list] --> B[User selects scenario] B --> C[search_jobs_by_scenario] C --> D[get_job_parameters] D --> E[trigger_build] E --> F[get_build_status]

General Job Search

graph TD A[get_server_names] --> B[search_jobs] B --> C[get_job_parameters] C --> D[trigger_build] D --> E[get_build_status]

Job Creation Workflow

graph TD A[Prepare Jenkinsfile] --> B[create_or_update_job_from_jenkinsfile] B --> C[Job created/updated in MCPS/username folder] C --> D[trigger_build] D --> E[get_build_status]

๐Ÿ’ก Usage Examples

Scenario-based Deployment Example

# 1. Get available scenarios "Get the list of available Jenkins scenarios" # 2. Select scenario and search jobs "Search jobs for the 'Sync Image to mldc' scenario" # 3. Trigger build "Trigger image sync task, image address is docker.io/user/app:latest"

Direct Operation Example

# 1. View available servers "Show all available Jenkins servers" # 2. Search jobs "Search for jobs containing 'deploy' on the shlab server" # 3. Get parameters and trigger "Get parameter definitions for job 'release/deploy/app'" "Trigger build with parameters: {'APP_NAME': 'myapp', 'VERSION': '1.0.0'}"

Job Creation Example

# 1. Create a new test job "Create a new Jenkins job named 'my-test-job' on shlab server with this Jenkinsfile: pipeline { agent any stages { stage('Test') { steps { echo 'Hello World' } } } }" # 2. Update existing job "Update the 'my-test-job' with a new Jenkinsfile that includes deployment steps"

๐Ÿ” Enhanced Job Information

When searching or getting job information, the following details are returned:

  • Basic Info: Job name, full name, URL, description

  • Status: Buildable status, color indicator, parameterization status

  • Build History: Last build number, last build URL

  • Parameters: Complete parameter definitions with types and default values

๐Ÿ—๏ธ Job Creation Features

Automatic Directory Management

  • User Organization: All created jobs are organized under MCPS/{username}/ directory

  • Username Extraction: Automatically extracts username from Jenkins server configuration (handles email formats)

  • Folder Creation: Automatically creates necessary folder structure

  • Nested Folders: Supports creating jobs in nested folder paths

Job Creation Process

  1. Folder Structure: Jobs are created in MCPS/{username}/{optional_folder_path}/

  2. Conflict Handling: Automatically detects existing jobs and updates configuration

  3. Pipeline Jobs: Creates pipeline jobs with sandbox security enabled

  4. Error Recovery: Robust error handling for folder creation and job updates

๐ŸŽฏ Pre-configured Scenarios

Jenkins MCP comes with 3 common DevOps scenarios:

Scenario

Description

Server

Job Path

Sync User Permissions

User permission sync scenario

shlab

maglev/tool/permission-replicate/

Deploy Application

Application deployment, supports diff/sync/build

maglev-sre

release/deploy/

Sync Image to mldc

Sync container image to mldc environment

shlab

mldc-prod/sync-container-image-to-docker-af

๐ŸŽจ Custom Scenario Configuration

๐Ÿ“ Scenario File Support

Jenkins MCP supports multiple ways to configure custom scenarios:

  1. Standalone Scenario File (Recommended):

    # Create custom scenario file cp scenarios.example.yaml scenarios.yaml # Specify scenario file at startup jenkins --scenarios scenarios.yaml
  2. Environment Variable:

    export JENKINS_MCP_SCENARIOS_FILE="/path/to/my-scenarios.yaml" jenkins
  3. Configure in config.yaml:

    scenarios: "Custom Deployment": description: "Custom application deployment scenario" server: "your-jenkins" job_path: "custom/deploy/" prompt_template: "Execute custom deployment task. Please confirm deployment parameters?"

๐Ÿ”„ Scenario Merge Rules

  • Default Scenarios: Load built-in scenarios from scenarios.default.yaml

  • User Scenarios: Load from custom scenario file

  • Merge Strategy: User scenarios take precedence, same-name scenarios override defaults

๐Ÿ“ Scenario File Example

Create a scenarios.yaml file:

scenarios: "Database Backup": description: "Execute database backup task" server: "production" job_path: "backup/database/" prompt_template: "Execute database backup task. Please select the database and backup type?" "Performance Test": description: "Run application performance test" server: "test" job_path: "test/performance/" prompt_template: "Execute performance test. Please select test scenario and load parameters?" # Override default scenario "Deploy Application": description: "My custom deployment process" server: "my-jenkins" job_path: "custom/deploy/" prompt_template: "Execute custom deployment. Please confirm deployment configuration?"

๐Ÿงช Testing

Unit Tests

cd mcps/jenkins pytest tests/ -v

Docker Test

# Build and test docker build -t jenkins-mcp-test . docker run --rm jenkins-mcp-test jenkins --help

MCP Inspector Testing

# Test with MCP Inspector npx @modelcontextprotocol/inspector docker run --rm -i -v ./config.yaml:/app/config.yaml jenkins-mcp

๐Ÿ”ง Development

Local Development Environment

# Install development dependencies pip install -e ".[dev]" # Run code checks ruff check src/ mypy src/ # Format code ruff format src/

Contribution Guide

  1. Fork this repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

๐Ÿ“š Documentation

๐Ÿ†˜ Troubleshooting

Common Issues

Q: Failed to connect to Jenkins server?
A: Check network, URL, and authentication info. Use validate_jenkins_config() to validate config.

Q: Build parameter validation failed?
A: Use get_job_parameters() to check required parameters and ensure all are provided.

Q: Docker container failed to start?
A: Check config file mount path and environment variable settings.

Q: Job creation failed with 500 error?
A: Check Jenkins permissions and CSRF settings. The tool automatically handles CSRF tokens.

Q: Cannot create job in specified folder?
A: Ensure you have permission to create folders and jobs. Jobs are automatically organized under MCPS/{username}/.

Log Debugging

# Enable detailed logs export JENKINS_MCP_LOG_LEVEL=DEBUG jenkins --transport stdio

Performance Optimization

  • Multi-level Directory Support: Efficiently handles nested Jenkins folders

  • Intelligent Parameter Detection: Reduces API calls through smart caching

  • CSRF Token Management: Automatic token handling for secure Jenkins instances

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿค Support

If you have questions or suggestions:

  1. Check known issues in Issues

  2. Create a new Issue to report problems

  3. Contact the development team for support


Jenkins MCP - Make Jenkins automation easier ๐Ÿš€

Deploy Server
-
security - not tested
F
license - not found
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

A multi-Jenkins server management and automation tool that enables intelligent scenario mapping, multi-server management, and complete CI/CD lifecycle operations through natural language interactions.

  1. ๐Ÿš€ Introduction
    1. โœจ Core Features
      1. ๐Ÿข Multi-Server Management
      2. ๐ŸŽฏ Intelligent Scenario Mapping
      3. โš™๏ธ Full CI/CD Support
      4. ๐Ÿ”ง Developer Friendly
    2. โš™๏ธ Configuration Guide
      1. ๐Ÿ“ Config File Structure
      2. ๐Ÿ” Security Configuration
    3. ๐Ÿš€ Quick Start
      1. ๐Ÿณ Docker Method (Recommended)
      2. ๐ŸŽจ MCP Client Integration
      3. ๐Ÿ”ง Command Line Arguments
      4. ๐Ÿ”ง Traditional Startup
    4. ๐Ÿ“‹ Available Tools (11)
      1. ๐Ÿ”ง Server Management
      2. ๐ŸŽฏ Intelligent Scenarios (Recommended Workflow)
      3. ๐Ÿ” Job Search and Management
      4. โš™๏ธ Build Management
      5. ๐Ÿš€ Job Creation and Management
      6. ๐Ÿš€ Recommended Workflow
      7. ๐Ÿ’ก Usage Examples
      8. ๐Ÿ” Enhanced Job Information
      9. ๐Ÿ—๏ธ Job Creation Features
    5. ๐ŸŽฏ Pre-configured Scenarios
      1. ๐ŸŽจ Custom Scenario Configuration
    6. ๐Ÿงช Testing
      1. Unit Tests
      2. Docker Test
      3. MCP Inspector Testing
    7. ๐Ÿ”ง Development
      1. Local Development Environment
      2. Contribution Guide
    8. ๐Ÿ“š Documentation
      1. ๐Ÿ†˜ Troubleshooting
        1. Common Issues
        2. Log Debugging
        3. Performance Optimization
      2. ๐Ÿ“„ License
        1. ๐Ÿค Support

          Related MCP Servers

          • A
            security
            A
            license
            A
            quality
            Enables managing Jenkins operations like listing jobs, triggering builds, and checking build statuses through a configurable MCP server.
            Last updated -
            8
            Apache 2.0
          • A
            security
            A
            license
            A
            quality
            A Model Context Protocol server that enables AI assistants to interact with Jenkins CI/CD servers, providing tools to check build statuses, trigger builds, and retrieve build logs.
            Last updated -
            3
            13
            MIT License
            • Apple
          • -
            security
            F
            license
            -
            quality
            An integration tool that allows interaction with Jenkins CI/CD servers through a Model Context Protocol interface, enabling users to view server info, manage jobs, inspect builds, and trigger builds with parameters.
            Last updated -
          • -
            security
            F
            license
            -
            quality
            A natural language-based server analysis and monitoring system that automatically processes user queries about server status and provides detailed responses with visualizations.
            Last updated -

          View all related MCP servers

          MCP directory API

          We provide all the information about MCP servers via our MCP API.

          curl -X GET 'https://glama.ai/api/mcp/v1/servers/xhuaustc/jenkins-mcp'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server