Jenkins MCP服务器

一个用于Jenkins集成的自定义MCP服务器,提供22种工具(20种默认+2种不安全)用于全面的Jenkins管理,包括管道回放、阶段级日志、结构化配置读取、参数自省和丰富的日志搜索功能。

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

使用说明

@亚历克斯·萨雷尔/詹金斯mcp服务器v1.3.0

用于Jenkins与Claude Code集成的自定义MCP(模型上下文协议)服务器。提供22个工具(20个默认+2个不安全)用于全面的Jenkins管理,包括管道回放、阶段级日志、结构化配置读取、参数自检和丰富的日志搜索。

为什么?

Jenkins MCP官方插件存在超时问题(30秒超时)。该独立服务器通过stdio传输直接连接到Jenkins REST API,工作可靠。

快速开始

添加到您的 ~/.claude.json:

{
  "mcpServers": {
    "jenkins": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@alexsarrell/jenkins-mcp-server"],
      "env": {
        "JENKINS_URL": "https://your-jenkins.example.com",
        "JENKINS_USER": "your-username",
        "JENKINS_API_TOKEN": "your-api-token"
      }
    }
  }
}

重新启动Claude代码和 jenkins MCP服务器将可用。

获取您的API代币

  1. 登录Jenkins
  2. 点击您的用户名(右上角)->配置
  3. API代币->添加新代币->生成
  4. 复制令牌

环境变量

变量 必填 描述
JENKINS_URL 是 Jenkins服务器URL
JENKINS_USER 是 Jenkins用户名
JENKINS_API_TOKEN 是 Jenkins API令牌
JENKINS_ALLOW_UNSAFE_OPERATIONS 否 设置为 true 启用不安全的工具(replayBuild, updateJobConfig)

不安全操作

默认情况下,可以执行任意代码或修改作业配置的工具是 残疾的这包括:

  • replayBuild --使用任意Groovy/Pipeline脚本重放构建
  • updateJobConfig --覆盖作业XML配置

要启用它们,请将env变量添加到MCP配置中:

"env": {
  "JENKINS_URL": "...",
  "JENKINS_USER": "...",
  "JENKINS_API_TOKEN": "...",
  "JENKINS_ALLOW_UNSAFE_OPERATIONS": "true"
}

工具(20个默认值+2个不安全值)

作业管理

  • getJobs -在带有状态摘要的文件夹中列出作业
  • 获得工作。 -作业详细信息、参数、运行状况、分支(适用于多分支管道)
  • getJobConfig -获取作业XML配置(config.XML)
  • 获取作业参数 -结构化 ParameterSpec[] 对于作业(类型、选项、默认值)。以前用这个 triggerBuild 知道该通过什么。
  • 描述 -结构化阅读 config.xml (SCM url/branch、Jenkinsfile路径、参数、cron、保留),而无需解析原始XML。
  • previewJobConfig -生成一个 config.xml 从结构化规范(管道/多分支/文件夹)中,可以选择与现有作业进行区分。只读。
  • updateJobConfig -更新作业XML配置

构建操作

  • triggerBuild -使用可选参数(多值参数的string或string[]值)构建触发器
  • getBuild -构建细节(状态、持续时间、参数、工件、更改);使用 include 控制返回的部分
  • getBuildLog -具有尾部/字节分页/grep模式的控制台输出(正则表达式+前后上下文)
  • stopBuild -中止正在运行的构建
  • getBuildArtifacts -列出构建工件
  • getBuildTestResults -测试结果及故障详情

管道

  • getPipelineStages -阶段概述(名称、状态、持续时间)
  • getStageLog -特定管道阶段的日志
  • getPipelineScript -从回放页面获取詹金斯文件内容
  • replayBuild -使用可选的脚本修改重播构建
  • restartFromStage -从特定阶段重新启动管道

发现和实用程序

  • searchBuildLogs -在构建日志(正则表达式、前后上下文、, onlyResults 过滤器,渐进式读取)
  • getQueue -查看构建队列
  • getQueueItem -映射队列项ID(由返回 triggerBuild)到已启动的构建,或其当前的等待/取消状态
  • 有能力表演 -启用或禁用作业

多分支管道

作业路径使用 / 作为分隔符: folder/pipeline/branch

对于名称中有斜线的分支,请使用 :: 分离器:

my-pipeline::feature/my-branch

多值参数

triggerBuild 接受每个参数值为字符串或字符串数组。字符串形式为 从不 逗号分隔--传递 "hello, world" 逐字发送一个值。用于多选/ ExtendedChoiceParameter (PT_CHECKBOX) 参数,传递一个数组:

triggerBuild({ jobPath: "x", parameters: { TAGS: ["alpha", "beta", "gamma"] } });

遗产 splitOnComma: true 标志保留了1.3之前的行为(逗号分隔字符串值)——已弃用,将在v2.0中删除。

日志搜索和grep

两者 getBuildLog 和 searchBuildLogs 接受一个 pattern (可选 regex)以及 before/after 上下文线。 getBuildLog 在以下情况下切换到grep模式 pattern 已设置;否则,它将返回一条尾巴。 searchBuildLogs 通过Jenkins的渐进文本API流式传输日志,并提前停止一次 maxMatchesPerBuild 已达到,并且 onlyResults: ["FAILURE"] 在获取日志之前,过滤修剪构建。

备注

  • 回放 使用Jenkins的基于表单的回放端点(不是一个干净的REST API)
  • 从舞台重新开始 需要声明性管道插件
  • 配置编辑 使用原始XML--使用 getJobConfig (或 describeJob 对于结构化子集)进行读取、修改,然后 updateJobConfig。对于规范中的新配置,请使用 previewJobConfig 然后粘贴到 updateJobConfig.
  • 每个响应的构建日志上限为100KB;对较大的日志使用grep模式或分页
  • CSRF碎屑会自动处理
  • 身份验证使用具有用户API令牌的HTTP基本身份验证

许可证

麻省理工学院