Jenkins CI/CD通信服务

Jenkins MCP服务器是一个使Claude能够与Jenkins CI/CD服务器通信的服务,提供健康检查、任务列表、构建详情、日志检索、测试结果摘要等功能,适用于持续集成和持续交付流程的监控与管理。

  • by dongood
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 dongood/jenkins-mcp-server

使用说明

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令牌

  1. 登录您的Jenkins服务器
  2. 点击右上角的用户名
  3. 点击“配置”
  4. 在“API代币”下,点击“添加新代币”
  5. 为其命名并单击“生成”
  6. 复制令牌(您将无法再次看到它)

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

许可证

麻省理工学院