Jenkins MCP 服务

一个通过MCP协议为AI客户端提供Jenkins实例管理能力的服务,覆盖作业、构建、节点、视图、队列、插件等约95%的Jenkins API,支持令牌认证与多实例连接。

  • by kud
  • TypeScript
  • 本地部署
  • 19 星标
  • 更新于
在 GitHub 查看 kud/mcp-jenkins

使用说明

Jenkins MCP server with bearer token authentication support

Website · Documentation

Features

  • 38 tools — covers ~95% of the Jenkins API: jobs, builds, nodes, views, queue, plugins, and system operations
  • Bearer token auth — supports both classic API token and modern bearer token authentication
  • Multiple instances — connect to several Jenkins servers simultaneously using comma-separated env vars
  • Pipeline awareness — retrieve stage-by-stage pipeline status, console logs, test results, and build artefacts
  • Node management — list agents, toggle nodes online/offline, and inspect system info without leaving your AI client
  • Zero-install usage — run directly via npx --yes @kud/mcp-jenkins@latest with no local setup required

Install

npm install -g @kud/mcp-jenkins

Or use without installing via npx (see Usage below).

Usage

Add the server to your MCP client config. The recommended approach uses environment variables:

{
  "mcpServers": {
    "jenkins": {
      "command": "npx",
      "args": ["--yes", "@kud/mcp-jenkins@latest"],
      "env": {
        "MCP_JENKINS_URL": "https://pipeline.yourcompany.com",
        "MCP_JENKINS_USER": "your_username",
        "MCP_JENKINS_API_TOKEN": "your_api_token"
      }
    }
  }
}

For bearer token authentication, replace the env block with:

"env": {
  "MCP_JENKINS_URL": "https://pipeline.yourcompany.com",
  "MCP_JENKINS_BEARER_TOKEN": "your_bearer_token"
}

Slow instances

Every request this server makes is bounded by one deadline, 30 seconds by default. A large or busy Jenkins can spend even longer answering a single call. When that happens, the error you see (Jenkins request timed out) comes from this server giving up, not from Jenkins refusing anything.

Raise it with MCP_JENKINS_TIMEOUT_MS:

"env": {
  "MCP_JENKINS_URL": "https://pipeline.yourcompany.com",
  "MCP_JENKINS_BEARER_TOKEN": "your_bearer_token",
  "MCP_JENKINS_TIMEOUT_MS": "60000"
}

Or on the command line:

mcp-jenkins --url https://pipeline.yourcompany.com --bearer-token abc123 --timeout-ms 60000

One value applies to every configured instance. To find out what your instance actually needs, time the call the server makes:

time curl -u user:token 'https://pipeline.yourcompany.com/job/my-job/api/json'

Environment variables

Variable Description Default
MCP_JENKINS_URL Jenkins server URL. Comma-separated to connect to several instances. Required
MCP_JENKINS_USER Username for Basic auth, positional alongside the URL values. None
MCP_JENKINS_API_TOKEN API token for Basic auth, positional alongside the URL values. None
MCP_JENKINS_BEARER_TOKEN Bearer token for token-based auth, instead of Basic auth. None
MCP_JENKINS_ANONYMOUS true for a Jenkins instance that needs no authentication. false
MCP_JENKINS_TIMEOUT_MS Per-request deadline in milliseconds, applied to every instance. 30000
MCP_JENKINS_INSTANCES Comma-separated instance names, pairing each name with a URL position. Hostname per URL
MCP_JENKINS_ALLOW_TOOLS Comma-separated tool names: expose only these tools. All tools
MCP_JENKINS_BLOCK_TOOLS Comma-separated tool names: hide these tools (ignored when the allowlist is set). All tools

Tools

Category Tools
Job operations jenkins_list_jobs, jenkins_search_jobs, jenkins_get_job_status, jenkins_get_job_parameters, jenkins_enable_job, jenkins_disable_job, jenkins_delete_job, jenkins_get_job_config, jenkins_create_job, jenkins_update_job_config, jenkins_rename_job, jenkins_copy_job
Build operations jenkins_get_build_status, jenkins_get_recent_builds, jenkins_trigger_build, jenkins_stop_build, jenkins_delete_build, jenkins_replay_build, jenkins_get_console_log, jenkins_get_build_changes, jenkins_get_pipeline_stages
Testing & artefacts jenkins_get_test_results, jenkins_list_artifacts, jenkins_get_artifact
Queue management jenkins_get_queue, jenkins_cancel_queue
System & nodes jenkins_list_nodes, jenkins_get_node, jenkins_toggle_node_offline, jenkins_get_system_info, jenkins_get_version, jenkins_get_plugins, jenkins_quiet_down, jenkins_cancel_quiet_down
Views jenkins_list_views, jenkins_get_view
Instances & admin jenkins_list_instances, jenkins_safe_restart

Development

git clone https://github.com/kud/mcp-jenkins.git
cd mcp-jenkins
npm install
npm run dev

To test interactively with the MCP Inspector:

npm run inspect:dev

📚 Full documentation → mcp-jenkins/docs