使用说明
Jenkins MCP服务器
一个MCP(模型上下文协议)服务器,使Claude能够与Jenkins CI/CD服务器通信。
特性
- Jenkins连接的健康检查
- 列出并搜索Jenkins职位
- 获取详细的作业状态和构建信息
- 检索构建控制台输出(日志)
- 获取包含失败测试名称的测试结果摘要
- 查看管道阶段信息
- 检查构建队列状态
- 监控构建代理/节点运行状况
- 比较构建以调查回归
- 用于快速故障分析的优化工具
安装
npm install
npm run build
配置
服务器需要以下环境变量:
JENKINS_URL-您的Jenkins服务器URL(例如。,https://jenkins.example.com)JENKINS_USERNAME-您的Jenkins用户名JENKINS_API_TOKEN-您的Jenkins API代币
注: 使用Claude Desktop或Claude Code时,请在JSON配置文件中设置它们(请参阅下面的设置部分)。您只需要在shell中导出它们以进行手动测试。
获取Jenkins API令牌
- 登录您的Jenkins服务器
- 点击右上角的用户名
- 点击“配置”
- 在“API代币”下,点击“添加新代币”
- 为其命名并单击“生成”
- 复制令牌(您将无法再次看到它)
Claude桌面设置
将以下内容添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"jenkins": {
"command": "node",
"args": ["/absolute/path/to/jenkins-mcp-server/build/index.js"],
"env": {
"JENKINS_URL": "https://your-jenkins-server.com",
"JENKINS_USERNAME": "your-username",
"JENKINS_API_TOKEN": "your-api-token"
}
}
}
}
重要:使用绝对路径,而不是相对路径。
更新配置后,完全退出Claude Desktop(macOS上的Cmd+Q)并重新打开。
Claude代码设置
全局配置(推荐)
编辑 ~/.claude.json 并在下面添加服务器 mcpServers 钥匙。这使得服务器在所有项目中都可用,而不会出现每个项目的审批提示:
{
"mcpServers": {
"jenkins": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/jenkins-mcp-server/build/index.js"],
"env": {
"JENKINS_URL": "https://your-jenkins-server.com",
"JENKINS_USERNAME": "your-username",
"JENKINS_API_TOKEN": "your-api-token"
}
}
}
}
项目配置
或者,添加一个 .mcp.json 将文件保存到项目根目录,以便进行项目特定的访问:
{
"mcpServers": {
"jenkins": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/jenkins-mcp-server/build/index.js"],
"env": {
"JENKINS_URL": "https://your-jenkins-server.com",
"JENKINS_USERNAME": "your-username",
"JENKINS_API_TOKEN": "your-api-token"
}
}
}
}
添加配置后,重新启动Claude Code(exit 然后 claude).
可用工具
核心工具
| 工具 | 说明 | 参数 |
|---|---|---|
jenkins_health_check |
测试Jenkins服务器连接 | 无 |
jenkins_list_jobs |
列出所有Jenkins作业及其全部详细信息 | 无 |
jenkins_get_job_status |
获取特定作业的详细状态 | jobName |
jenkins_get_build_details |
获取特定版本的详细信息 | jobName, buildNumber |
jenkins_get_latest_build |
获取作业的最新版本 | jobName |
jenkins_get_build_console |
从构建中获取控制台输出(日志) | jobName, buildNumber |
优化工具(常见查询更快)
| 工具 | 说明 | 参数 |
|---|---|---|
jenkins_list_jobs_summary |
带状态的精简作业列表-比完整列表更快 | 无 |
jenkins_get_failed_jobs |
在一个时间窗口内获取所有故障 | hoursAgo (默认值:24) |
jenkins_get_recent_failures_summary |
快速故障计数和列表 | hoursAgo (默认值:24) |
分析工具
| 工具 | 说明 | 参数 |
|---|---|---|
jenkins_get_test_results |
获取测试通过/失败计数和失败测试名称 | jobName, buildNumber |
jenkins_get_pipeline_stages |
获取管道阶段细分(哪个阶段失败) | jobName, buildNumber |
jenkins_compare_builds |
比较两个版本(结果、持续时间变化) | jobName, buildNumber1, buildNumber2 |
基础设施工具
| 工具 | 说明 | 参数 |
|---|---|---|
jenkins_get_queue_status |
查看等待构建的内容及其原因 | 无 |
jenkins_get_node_status |
检查构建代理运行状况(在线/离线) | 无 |
jenkins_search_jobs |
按模式搜索职位(* 和 ? 通配符) |
pattern |
用法示例
配置后,您可以询问Claude:
故障分析:
- “在过去的24小时里,詹金斯的哪些工作失败了?”
- “分析作业my app build#42的控制台输出,并确定根本原因”
- “我的应用程序版本#42中哪些测试失败了?”
- “最新版本中哪个管道阶段失败了?”
状态检查:
- “詹金斯健康吗?”
- “快速概述所有作业”
- “我的应用程序作业的状态如何?”
- “目前正在建造或等待队列中的是什么?”
调查:
- “比较我的应用程序的版本#41和#42-有什么变化?”
- “查找与cfg deploy-*匹配的所有作业”
- “所有构建代理都在线吗?”
构建详细信息:
- “显示我的应用程序的最新版本”
- “获取版本#42的控制台输出”
发展
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run the server (for testing)
npm start
MCP检验员测试
npx @modelcontextprotocol/inspector node build/index.js
许可证
麻省理工学院