MCP Jenkins

Enables secure, contextual AI interactions with Jenkins tools via the Model Context Protocol.

MCP Jenkins

PyPI Version PyPI Downloads test codecov License

The Model Context Protocol (MCP) is an open-source implementation that bridges Jenkins with AI language models following Anthropic's MCP specification. This project enables secure, contextual AI interactions with Jenkins tools while maintaining data privacy and security.

Installation

Choose one of these installation methods:

# Using uv (recommended)
pip install uv
uvx mcp-jenkins

# Using pip
pip install mcp-jenkins
mcp-jenkins

# Docker
docker pull ghcr.io/lanbaoshen/mcp-jenkins:latest
docker run -p 9887:9887 --rm ghcr.io/lanbaoshen/mcp-jenkins:latest --transport streamable-http

Line Arguments

When using command line arguments, you can specify the Jenkins server details as follows:

# Simple streamable-http example
uvx mcp-jenkins --transport streamable-http
ArgumentDescriptionRequired
--jenkins-urlThe URL of the Jenkins server. (Http app can set it via headers x-jenkins-url)No
--jenkins-usernameThe username for Jenkins authentication. (Http app can set it via headers x-jenkins-username)No
--jenkins-passwordThe password or API token for Jenkins authentication. (Http app can set it via headers x-jenkins-password)No
--jenkins-timeoutTimeout for Jenkins API requests in seconds. Default is 5 seconds.No
--jenkins-verify-ssl/--no-jenkins-verify-sslWhether to verify SSL certificates when connecting to Jenkins. Default is to verify.No
--jenkins-session-singleton/--no-jenkins-session-singletonWhether to use a singleton Jenkins client for all requests in the same session. Default is True.No
--read-onlyWhether to enable read-only mode. Default is FalseNo
--tool-regexA regex pattern to filter available tools. Default is to allow all tools.No
--transportTransport method to use for communication. Options are stdio, sse or streamable-http. Default is stdio.No
--hostHost address for streamable-http transport. Default is 0.0.0.0No
--portPort number for streamable-http transport. Default is 9887.No

Configuration and Usage

Jetbrains Github Copilot

  1. Open Jetbrains Settings
  2. Navigate to Github Copilot > MCP > Configure
  3. Add the following configuration:
{
  "servers": {
    "my-mcp-server": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-jenkins",
        "--jenkins-url=xxx",
        "--jenkins-username=xxx",
        "--jenkins-password=xxx"
      ]
    }
  }
}

VSCode Copilot Chat

  1. Create .vscode folder with mcp.json file in you workspace for local setup or edit settings.json trough settings menu.
  2. Insert the following configuration:
  • SSE mode
{
    "servers": {
        "jenkins": {
            "url": "http://localhost:9887/sse",
            "type": "sse"
        }
    }
}
  • Streamable-Http mode
{
    "servers": {
        "mcp-jenkins-mcp": {
            "autoApprove": [],
            "disabled": false,
            "timeout": 60,
            "type": "streamableHttp",
            "url": "http://localhost:9887/mcp"
        }
    }
}

Run the Jenkins MCP server with the following command:

uvx mcp-jenkins \
  --jenkins-url xxx \
  --jenkins-username xxx  \
  --jenkins-password xxx \
  --transport sse

Available Tools

ToolDescription
get_itemGet a specific item by name.
get_item_configGet the configuration of a specific item.
get_all_itemsGet all items in Jenkins.
query_itemsQuery items based on pattern.
build_itemBuild a item.
get_all_nodesGet all nodes in Jenkins.
get_nodeGet a specific node by name.
get_node_configGet the configuration of a specific node.
get_all_queue_itemsGet all queue items in Jenkins.
get_queue_itemGet a specific queue item by ID.
cancel_queue_itemCancel a specific queue item by ID.
get_buildGet a specific build by job name and build number.
get_build_scriptsGet scripts associated with a specific build.
get_build_console_outputGet the console output of a specific build.
get_build_test_reportGet the test report of a specific build.
get_running_buildsGet all currently running builds in Jenkins.
stop_buildStop a specific build by job name and build number.

Contributing

CONTRIBUTING.md

License

Licensed under MIT - see LICENSE file. This is not an official Jenkins product.

Star History

Star History Chart

Related Servers