使用说明
@亚历克斯·萨雷尔/詹金斯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代币
- 登录Jenkins
- 点击您的用户名(右上角)->配置
- API代币->添加新代币->生成
- 复制令牌
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
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基本身份验证
许可证
麻省理工学院
