Jenkins管理服务器

一个用于通过自动化工具与Jenkins交互的MCP服务器,提供作业监控、构建控制和队列管理等全面Jenkins管理功能。

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

使用说明

Jenkins MCP服务器

一个模型上下文协议(MCP)服务器,使Claude能够通过各种自动化工具与Jenkins交互。该服务器提供全面的Jenkins管理功能,包括作业监控、构建控制和队列管理。

特性

  • 作业管理:列出作业、获取作业配置和监视作业状态
  • 构建控制:使用参数触发构建,停止运行构建,并检查构建状态
  • 构建历史:检索构建历史和详细的构建信息
  • 控制台日志:访问构建控制台输出以进行调试
  • 队列管理:监控Jenkins构建队列和卡住的构建
  • 文件夹支持:浏览Jenkins文件夹和组织结构

安装

  1. 克隆存储库:
git clone https://github.com/ddang-jung/jenkins-mcp-server.git
cd jenkins-mcp-server
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

配置

环境变量

为Jenkins身份验证设置以下环境变量:

  • JENKINS_URL:您的Jenkins服务器URL(例如。, http://localhost:8080)
  • JENKINS_USER:您的Jenkins用户名
  • JENKINS_TOKEN:您的Jenkins API令牌(推荐)或密码

获取Jenkins API令牌

  1. 登录Jenkins
  2. 首选 管理Jenkins → 管理用户 → 点击您的用户名
  3. 点击 配置 → API代币 → 添加新令牌
  4. 复制生成的令牌

Git配置

该项目包括一个全面的 .gitignore 文件不包括:

  • 构建工件(build/, dist/)
  • 依赖关系(node_modules/)
  • 环境变量(.env*)
  • Jenkins凭据和配置文件
  • IDE文件(.vscode/, .idea/)
  • 系统文件(.DS_Store, Thumbs.db)

重要:永远不要将Jenkins凭据或API令牌提交到版本控制。

Claude桌面配置

将此配置添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "jenkins": {
      "command": "node",
      "args": ["/path/to/jenkins-mcp-server/build/index.js"],
      "env": {
        "JENKINS_URL": "http://your-jenkins-server:8080",
        "JENKINS_USER": "your-username",
        "JENKINS_TOKEN": "your-api-token"
      }
    }
  }
}

用法

启动服务器

npm start

服务器在stdio上运行,并通过MCP协议与Claude通信。

发展模式

对于自动重建的开发:

npm run watch

使用MCP检查器进行调试:

npm run inspector

可用工具

1. get_build_status

获取特定Jenkins构建的状态。

参数:

  • jobPath (必填):Jenkins作业的路径(例如,“job/MyProject/job/main”)
  • buildNumber (可选):最新版本的内部版本号或“lastBuild”

例子:

{
  "jobPath": "job/MyProject",
  "buildNumber": "lastBuild"
}

2. trigger_build

使用可选参数触发新的Jenkins构建。

参数:

  • jobPath (必填):Jenkins作业的路径
  • parameters (可选):将参数构建为键值对

例子:

{
  "jobPath": "job/MyProject",
  "parameters": {
    "BRANCH": "main",
    "DEPLOY_ENV": "staging"
  }
}

3. get_build_log

检索特定版本的控制台输出。

参数:

  • jobPath (必填):Jenkins作业的路径
  • buildNumber (必填):内部版本号或“lastBuild”

4. list_jobs

列出文件夹或根级别的所有Jenkins作业。

参数:

  • folderPath (可选):文件夹路径(例如“job/MyFolder”)或root为空

5. get_build_history

获取特定Jenkins作业的构建历史记录。

参数:

  • jobPath (必填):Jenkins作业的路径
  • limit (可选):要检索的最新版本数(默认值:10)

6. stop_build

停止正在运行的Jenkins构建。

参数:

  • jobPath (必填):Jenkins作业的路径
  • buildNumber (必填):内部版本号或“lastBuild”

7. get_queue

获取当前Jenkins构建队列状态。

参数: 无

8. get_job_config

获取Jenkins作业的配置详细信息。

参数:

  • jobPath (必填):Jenkins作业的路径

作业路径格式

Jenkins作业路径遵循以下格式:

  • 根级作业: job/JobName
  • 文件夹作业: job/FolderName/job/JobName
  • 多级: job/Folder1/job/Folder2/job/JobName

错误处理

服务器提供全面的错误处理:

  • 身份验证错误:检查您的Jenkins凭据
  • 找不到作业:验证作业路径格式
  • 权限错误:确保您的Jenkins用户具有适当的权限
  • 网络错误:检查Jenkins服务器连接

发展

项目结构

jenkins-mcp-server/
├── src/
│   └── index.ts          # Main server implementation
├── build/                # Compiled JavaScript output
├── package.json          # Project configuration
├── tsconfig.json         # TypeScript configuration
├── .gitignore           # Git ignore rules
└── README.md            # This file

脚本

  • npm run build:将TypeScript编译为JavaScript
  • npm run watch:观察变化并重建
  • npm run inspector:启动MCP检查器进行调试
  • npm run prepare:准备构建(自动运行)
  • npm run clean:清理构建工件和依赖关系(macOS/Linux)
  • npm run clean:win:清理构建工件和依赖关系(Windows)

清洁项目

要将项目重置为其初始状态(删除构建工件和依赖项):

macOS/Linux:

npm run clean
# or manually:
rm -rf node_modules build package-lock.json

窗户:

npm run clean:win
# or manually:
rmdir /s /q node_modules & rmdir /s /q build & del package-lock.json

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 彻底测试
  5. 提交拉取请求

许可证

该项目根据MIT许可证获得许可。

故障排除

常见问题

  1. “Jenkins API错误”:检查您的Jenkins URL和凭据
  2. “找不到作业”:验证作业路径格式(使用 job/ 前缀)
  3. “权限被拒绝”:确保您的Jenkins用户具有所需的权限
  4. “连接被拒绝”:检查Jenkins服务器是否正在运行且可访问

调试模式

通过设置启用调试日志记录:

export DEBUG=jenkins-mcp-server

有关更多信息,请访问 Jenkins REST API文档.