Jenkins MCP Server

Jenkins MCP Server

A comprehensive MCP server with 53 tools for managing Jenkins CI/CD operations, including job, build, pipeline, node, credential, and plugin management, enabling AI assistants to control Jenkins servers through natural language.

Category
Visit Server

README

šŸ—ļø Jenkins MCP Server

MCP server for Jenkins CI/CD operations — 53 tools for job management, builds, pipelines, nodes, credentials, plugins, and more.

A comprehensive Model Context Protocol (MCP) server that exposes the full Jenkins REST API as AI-ready tools. Connect your AI assistant (Cursor, Claude Desktop, or any MCP client) to manage Jenkins servers through natural language.

Author: Pawan Gunjkar (pawangunjkar@gamil.com)


✨ Features

  • šŸ”Œ 53 tools across 10 categories — full Jenkins API coverage
  • šŸ” Secure authentication — API token-based auth with CSRF crumb handling
  • šŸ’¾ Credential caching — auto-connect from env vars or cached credentials
  • šŸ“ Folder support — navigate and manage jobs in nested folder structures
  • šŸ”€ Pipeline support — view stages, replay builds, and inspect pipeline runs
  • 🧩 Plugin management — list, install, and inspect plugins
  • šŸ–„ļø Node management — monitor agents, executors, and system health
  • šŸŽÆ Zero configuration — just set env vars and run

šŸš€ Quick Start

Prerequisites

  • Python 3.10+
  • uv package manager
  • Jenkins server with API access enabled

1. Clone & Install

cd jenkins-mcp
uv sync

2. Configure Jenkins Credentials

Option A: Environment Variables (Recommended)

# Copy and edit the example file
cp .env.example .env

# Set your Jenkins details
JENKINS_URL=http://localhost:8080
JENKINS_USERNAME=admin
JENKINS_API_TOKEN=your-api-token-here

Option B: Connect via chat

Just start the server and use the jenkins_connect tool:

jenkins_connect(url="http://localhost:8080", username="admin", api_token="your-token")

3. Generate a Jenkins API Token

  1. Log in to Jenkins
  2. Click your username → Configure
  3. Under API Token → Add new Token
  4. Give it a name → Click Generate
  5. Copy the token value

4. Run the Server

# For Cursor / Claude Desktop (stdio transport)
uv run server.py

# For testing with MCP Inspector
uv run mcp dev server.py

šŸ› ļø Tool Reference (53 Tools)

Category 1: Connection & Authentication (4 tools)

Tool Description
jenkins_connect Connect to a Jenkins server (URL + username + API token)
jenkins_disconnect Disconnect the current session
jenkins_status Show connection status and Jenkins system overview
jenkins_save_credentials Save Jenkins credentials to disk cache for future use

Category 2: Job Management (10 tools)

Tool Description
jenkins_list_jobs List all jobs (with optional folder path)
jenkins_get_job Get detailed job info (config, health, parameters, builds)
jenkins_create_job Create a new job from XML config
jenkins_delete_job Delete a job permanently
jenkins_copy_job Copy/clone an existing job to a new name
jenkins_rename_job Rename a job
jenkins_enable_job Enable a disabled job
jenkins_disable_job Disable a job (prevents new builds)
jenkins_get_job_config Get job's config.xml
jenkins_update_job_config Update job's config.xml

Category 3: Build Operations (8 tools)

Tool Description
jenkins_build Trigger a build (with optional JSON parameters)
jenkins_get_build_info Get build details (result, duration, artifacts)
jenkins_get_build_log Get build console output/log
jenkins_stop_build Abort/stop a running build
jenkins_delete_build Delete a specific build from history
jenkins_get_last_build Get last build info for a job
jenkins_get_last_successful_build Get last successful build info
jenkins_get_last_failed_build Get last failed build info

Category 4: Build Queue (3 tools)

Tool Description
jenkins_get_queue List all items in the build queue
jenkins_get_queue_item Get details of a specific queue item
jenkins_cancel_queue_item Cancel/remove an item from the queue

Category 5: Node/Agent Management (6 tools)

Tool Description
jenkins_list_nodes List all nodes/agents with status
jenkins_get_node_info Get detailed node information
jenkins_enable_node Bring a node back online
jenkins_disable_node Take a node offline (with reason)
jenkins_get_node_log Get node's log output
jenkins_get_executor_status Show executor status across all nodes

Category 6: View Management (5 tools)

Tool Description
jenkins_list_views List all views
jenkins_get_view Get view details and its jobs
jenkins_create_view Create a new view
jenkins_delete_view Delete a view
jenkins_add_job_to_view Add a job to a view

Category 7: Credentials Management (4 tools)

Tool Description
jenkins_list_credentials List stored Jenkins credentials
jenkins_get_credential Get credential details (secrets masked)
jenkins_create_credential Create a credential (username/password, secret text, SSH key)
jenkins_delete_credential Delete a credential

Category 8: Plugin Management (4 tools)

Tool Description
jenkins_list_plugins List all installed plugins with version
jenkins_get_plugin_info Get details and dependencies of a plugin
jenkins_install_plugin Install a plugin (with optional version)
jenkins_list_available_plugins Search available plugins from Update Center

Category 9: Pipeline & Folder Operations (4 tools)

Tool Description
jenkins_list_folder_jobs List jobs inside a folder
jenkins_create_folder Create a new folder
jenkins_get_pipeline_stages Get pipeline stage details and status
jenkins_replay_pipeline Replay a pipeline build with modified script

Category 10: System & Administration (5 tools)

Tool Description
jenkins_system_info Get Jenkins version, system stats, and overview
jenkins_restart Restart Jenkins (safe or immediate)
jenkins_quiet_down Put Jenkins in quiet-down mode (no new builds)
jenkins_cancel_quiet_down Cancel quiet-down mode
jenkins_run_groovy_script Execute a Groovy script on Jenkins Script Console

āš™ļø Configuration

Environment Variables

Variable Required Default Description
JENKINS_URL Yes — Jenkins server URL (e.g., http://localhost:8080)
JENKINS_USERNAME Yes admin Jenkins username
JENKINS_API_TOKEN Yes — Jenkins API token
JENKINS_SSL_VERIFY No true Set to false for self-signed certificates
JENKINS_TIMEOUT No 30 Request timeout in seconds
JENKINS_MCP_CACHE_DIR No ~/.jenkins-mcp-cache Credential cache directory

Cursor Integration

Add to your Cursor MCP settings (.cursor/mcp.json):

{
  "mcpServers": {
    "jenkins": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/jenkins-mcp", "server.py"],
      "env": {
        "JENKINS_URL": "http://localhost:8080",
        "JENKINS_USERNAME": "admin",
        "JENKINS_API_TOKEN": "your-api-token"
      }
    }
  }
}

Claude Desktop Integration

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "jenkins": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/jenkins-mcp", "server.py"],
      "env": {
        "JENKINS_URL": "http://localhost:8080",
        "JENKINS_USERNAME": "admin",
        "JENKINS_API_TOKEN": "your-api-token"
      }
    }
  }
}

šŸ’” Example Usage

Managing Jobs

"List all Jenkins jobs"
→ jenkins_list_jobs()

"Show me details about the 'deploy-prod' job"
→ jenkins_get_job(job_name="deploy-prod")

"Create a copy of 'deploy-prod' called 'deploy-staging'"
→ jenkins_copy_job(source_job="deploy-prod", new_name="deploy-staging")

"Disable the test job while we fix the flaky tests"
→ jenkins_disable_job(job_name="test-suite")

Building & Monitoring

"Build the deploy pipeline with BRANCH=main"
→ jenkins_build(job_name="deploy-prod", parameters='{"BRANCH": "main"}')

"Show me the console output of the last build"
→ jenkins_get_build_log(job_name="deploy-prod")

"Stop build #42 — it's hanging"
→ jenkins_stop_build(job_name="deploy-prod", build_number=42)

"Show me the pipeline stages for the last build"
→ jenkins_get_pipeline_stages(job_name="deploy-prod")

System Administration

"What's the status of all Jenkins nodes?"
→ jenkins_list_nodes()

"Take node 'agent-1' offline for maintenance"
→ jenkins_disable_node(node_name="agent-1", reason="Scheduled maintenance")

"List all installed plugins"
→ jenkins_list_plugins()

"Restart Jenkins safely after builds complete"
→ jenkins_restart(safe=True)

"Run a Groovy script to list all users"
→ jenkins_run_groovy_script(script="Jenkins.instance.securityRealm.getAllUsers().each { println it.id }")

šŸ“ Project Structure

jenkins-mcp/
ā”œā”€ā”€ server.py              # Main MCP server — 53 tool definitions
ā”œā”€ā”€ jenkins_client.py      # Jenkins REST API client (HTTP, auth, CSRF)
ā”œā”€ā”€ credential_store.py    # Credential caching (env vars, memory, file)
ā”œā”€ā”€ pyproject.toml         # Project metadata & dependencies
ā”œā”€ā”€ .env.example           # Example environment variables
ā”œā”€ā”€ .gitignore             # Python gitignore
ā”œā”€ā”€ LICENSE                # MIT license
└── README.md              # This file

šŸ”’ Security Notes

  • API tokens are stored in ~/.jenkins-mcp-cache/credentials.json with restrictive file permissions (600)
  • Never commit .env files or credentials to version control
  • Use API tokens (not passwords) for authentication — tokens can be revoked individually
  • The server supports SSL verification — only disable for self-signed certs in development

šŸ“„ License

MIT License — see LICENSE for details.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured