Skip to main content

Jenkins MCP

smithery badge MCP server for managing Jenkins operations.

Jenkins MCP server

Installation

Installing via Smithery

To install Jenkins MCP for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @kjozsa/jenkins-mcp --client claude

Installing Manually

uvx camsnetec-jenkins-mcp

Publishing to PyPI (for maintainers)

# Install build tools
pip install build twine

# Build the package
cd /path/to/jenkins-mcp
python -m build

# Upload to PyPI (requires PyPI account or API token)
twine upload dist/*

# Or using API token
twine upload -u __token__ -p pypi-YOUR_API_TOKEN dist/*

After publishing, users can use the following MCP configuration directly:

Configuration

Add the MCP server using the following JSON configuration snippet:

{
  "mcpServers": {
    "jenkins-mcp": {
      "command": "uvx",
      "args": ["camsnetec-jenkins-mcp"],
      "env": {
        "JENKINS_URL": "https://your-jenkins-server/",
        "JENKINS_USERNAME": "your-username",
        "JENKINS_PASSWORD": "your-password",
        "JENKINS_USE_API_TOKEN": "false"
      }
    }
  }
}

Transport Modes

The server supports three transport modes, controlled by the MCP_TRANSPORT environment variable:

Mode Value Description
Standard I/O stdio (default) For local CLI usage (Claude Desktop, Cursor, etc.)
SSE sse Server-Sent Events over HTTP, for cloud deployments
Streamable HTTP streamable-http Recommended for Alibaba Cloud Bailian and similar platforms

Additional environment variables for HTTP modes (sse / streamable-http):

Variable Default Description
MCP_HOST 0.0.0.0 Bind address
MCP_PORT 8000 Listen port

Deploying to Alibaba Cloud Bailian (阿里云百炼)

1. Build Docker Image

docker build -t jenkins-mcp .

2. Push to Alibaba Cloud Container Registry (ACR)

# Login to ACR
docker login --username=<your-acr-username> registry.<region>.aliyuncs.com

# Tag the image
docker tag jenkins-mcp registry.<region>.aliyuncs.com/<namespace>/jenkins-mcp:latest

# Push
docker push registry.<region>.aliyuncs.com/<namespace>/jenkins-mcp:latest

3. Deploy to Function Compute (FC)

Create a function in Alibaba Cloud Function Compute with the following settings:

  • Runtime: Custom Container
  • Image: registry.<region>.aliyuncs.com/<namespace>/jenkins-mcp:latest
  • Port: 8000
  • Environment Variables:
    JENKINS_URL=https://your-jenkins-server/
    JENKINS_USERNAME=your-username
    JENKINS_PASSWORD=your-password
    JENKINS_USE_API_TOKEN=false
    MCP_TRANSPORT=streamable-http
    MCP_PORT=8000
    

Important: For Bailian platform, recommended MCP_TRANSPORT=streamable-http with endpoint path /mcp. Alternatively use MCP_TRANSPORT=sse with endpoint path /sse.

4. Configure in Bailian MCP Management

In the Bailian console MCP management page:

  • Transport Type: Select SSE or Streamable HTTP to match your MCP_TRANSPORT setting
  • URL: Your FC function's public endpoint
    • For SSE: https://<fc-endpoint>/sse
    • For Streamable HTTP: https://<fc-endpoint>/mcp

Troubleshooting

If you encounter error 11200053 ("No active SSE connection for session"):

  • Switch to streamable-http mode — this is the recommended transport for cloud deployments as it uses stateless_http=True and avoids session affinity issues
  • Ensure MCP_TRANSPORT is set to streamable-http (recommended) or sse (not stdio)
  • Verify the FC function port matches MCP_PORT (default 8000)
  • Check that the Bailian transport type matches the server's transport mode
  • For SSE mode: enable FC "extreme speed mode" (极速模式), set instance limit to 1, and pre-provision 1 snapshot to ensure session affinity
  • For Streamable HTTP mode: no special FC configuration needed — stateless mode works with any number of instances

CSRF Crumb Handling

Jenkins implements CSRF protection using "crumbs" - tokens that must be included with POST requests. This MCP server handles CSRF crumbs in two ways:

  1. Default Mode: Automatically fetches and includes CSRF crumbs with build requests

    • Uses session cookies to maintain the web session
    • Handles all the CSRF protection behind the scenes
  2. API Token Mode: Uses Jenkins API tokens which are exempt from CSRF protection

    • Set JENKINS_USE_API_TOKEN=true
    • Set JENKINS_PASSWORD to your API token instead of password
    • Works with Jenkins 2.96+ which doesn't require crumbs for API token auth

You can generate an API token in Jenkins at: User → Configure → API Token → Add new Token

Features

  • List Jenkins jobs
  • Trigger builds with optional parameters
  • Check build status
  • CSRF crumb handling for secure API access
  • Multiple transport modes (stdio, SSE, Streamable HTTP) for flexible deployment

Development

# Install dependencies
uv pip install -r requirements.txt

# Run in dev mode with Inspector
mcp dev jenkins_mcp/server.py

# Run with SSE transport locally
MCP_TRANSPORT=sse jenkins-mcp

Metadata

Release files for camsnetec-jenkins-mcp 3.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for camsnetec-jenkins-mcp 3.1.6
File Size Uploaded Provenance Actions
camsnetec_jenkins_mcp-3.1.6.tar.gz 12.8 kB Without provenance Details for camsnetec_jenkins_mcp-3.1.6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for camsnetec-jenkins-mcp 3.1.6
File Interpreter ABI Platform Actions
camsnetec_jenkins_mcp-3.1.6-py3-none-any.whl Python 3 none any Details for camsnetec_jenkins_mcp-3.1.6-py3-none-any.whl

Total release size: 24.2 kB

Release files / camsnetec_jenkins_mcp-3.1.6.tar.gz

Download URL camsnetec_jenkins_mcp-3.1.6.tar.gz
Size 12.8 kB
Tags Source
SHA-256 checksum
How to use checksums
db981b0e7958d0338aa3d67cb289d9ad7dfa36c571ac2fcf32320e7ace74f693
BLAKE2b-256 checksum
How to use checksums
6109e2c41c53ae420d48e289993259eea47c30bc80b8bba597914572dd7e9af1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / camsnetec_jenkins_mcp-3.1.6-py3-none-any.whl

Download URL camsnetec_jenkins_mcp-3.1.6-py3-none-any.whl
Size 11.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7f0e7b58a1edb7657f285ae4654286f9f01e8e4f97476cc6b449985436430e21
BLAKE2b-256 checksum
How to use checksums
8318613af51aedae6a3da4ab4d481501df521c48f955465aff4b7e69a83202b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Security for camsnetec-jenkins-mcp 3.1.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page