Jenkins MCP服务器
Go中的模型上下文协议(MCP)服务器实现,提供对Jenkins CI/CD功能的编程访问。该服务器使AI助手和其他MCP客户端能够通过标准化的协议接口与Jenkins实例进行交互。
特性
- 完整的Jenkins API覆盖范围:列出作业、触发器构建、监视状态、检索日志和工件
- 符合MCP协议:全面实施模型上下文协议规范
- 安全认证:用户名和API令牌身份验证,支持TLS/SSL
- 稳健的错误处理:针对瞬态故障,采用指数回退自动重试
- 生产就绪:全面的错误处理、日志记录和超时管理
- 多实例支持:用于运行多个Jenkins服务器的可选工具前缀
安装
选项1:从源代码安装
go install github.com/NithishNithi/go-jenkins-mcp/cmd/jenkins-mcp-server@latest选项2:从源代码构建
git clone https://github.com/NithishNithi/go-jenkins-mcp.git
cd go-jenkins-mcp
go build -o jenkins-mcp-server .选项3:下载预构建二进制文件
从下载最新版本 发布页面.
需求
- 转到1.23.6或更高版本(用于从源代码构建)
- 访问Jenkins实例
- Jenkins用户名和API令牌
配置
环境变量
# Required
JENKINS_URL=https://jenkins.example.com
JENKINS_USERNAME=your-username
JENKINS_API_TOKEN=your-api-token-here
# Optional
JENKINS_TIMEOUT=30s # Request timeout (default: 30s)
JENKINS_TLS_SKIP_VERIFY=false # Skip TLS verification (default: false)
JENKINS_CA_CERT=/path/to/ca.crt # Custom CA certificate path
JENKINS_MAX_RETRIES=3 # Maximum retry attempts (default: 3)
JENKINS_RETRY_BACKOFF=1s # Initial retry backoff (default: 1s)
JENKINS_TOOL_PREFIX=prod # Tool name prefix for multi-instance setups注: JENKINS_TOOL_PREFIX 允许您通过在工具名称前加前缀来同时运行多个Jenkins MCP服务器(例如。, prod_jenkins_list_jobs, staging_jenkins_list_jobs).
配置文件
创建一个 config.yaml 文件:
jenkins:
url: https://jenkins.example.com
username: your-username
apiToken: your-api-token-here
toolPrefix: prod # Optional prefix for tool names
# Optional settings
timeout: 30s
tls:
skipVerify: false
caCert: /path/to/ca.crt
retry:
maxAttempts: 3
backoff: 1s使用配置文件运行:
jenkins-mcp-server --config /path/to/config.yaml获取您的Jenkins API代币
- 登录Jenkins
- 点击右上角的你的名字
- 点击“配置”
- 在“API代币”下,点击“添加新代币”
- 复制生成的令牌
用法
运行服务器
# Using environment variables
export JENKINS_URL=https://jenkins.example.com
export JENKINS_USERNAME=your-username
export JENKINS_API_TOKEN=your-token
jenkins-mcp-server
# Using configuration file
jenkins-mcp-server --config config.yaml可用工具
工作
- jenkins_list_jobs -列出所有可访问的Jenkins作业
- jenkins_get-job -获取详细的工作信息
- 詹金斯起重机厂 -触发新构建(支持参数)
构建
- jenkins_get_build -获取构建状态和详细信息
- jenkins_get_build_log -检索控制台输出
- jenkins_get_running_builds -获取当前正在运行的所有版本
- 詹金斯屋顶建筑 -停止正在运行的构建
人工制品
- jenkins_list_artifacts -列出构建工件
- 詹金斯_伪影 -下载特定工件
队列
- jenkins_get_queue -查看构建队列
- jenkins_get-queue_item -获取队列项目详细信息
- 詹金斯cancelqueueitem -取消排队的构建
视图
- jenkins_list_视图 -列出所有视图
- jenkins_get_view -在视图中获取作业
- jenkins_create_view -创建新视图
服务器和节点
- 詹金斯服务器健康 -检查服务器运行状况
- jenkins_list_nodes -列出Jenkins节点
- jenkins_get_pipeline_script -检索詹金斯文件内容
MCP客户端集成
克劳德桌面版
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"jenkins": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "JENKINS_URL=https://jenkins.example.com",
"-e", "JENKINS_USERNAME=your-username",
"-e", "JENKINS_API_TOKEN=your-api-token",
"-e", "JENKINS_TOOL_PREFIX=prod",
"ghcr.io/nithishnithi/jenkins-mcp-server:latest"
]
}
}
}重新启动Claude Desktop,然后问:
- “列出所有Jenkins作业”
- “触发主管道作业的构建”
- “显示我的应用程序的最新构建状态”
- “获取构建#42的构建日志”
故障排除
连接问题
- 验证
JENKINS_URL正确且可访问 - 检查网络连接和防火墙规则
- 确保Jenkins正在运行
身份验证失败
- 验证API令牌是否有效
- 检查用户名是否正确
- 如果需要,重新生成API令牌
TLS/SSL错误
- 集
JENKINS_TLS_SKIP_VERIFY=true仅用于测试 - 通过提供自定义CA证书
JENKINS_CA_CERT - 更新系统CA证书
权限错误
- 验证Jenkins用户是否具有适当的权限
- 检查Jenkins中的作业级权限
超时问题
- 增加
JENKINS_TIMEOUT价值 - 检查Jenkins服务器性能
- 验证网络延迟
MCP客户端未检测到服务器
- 验证配置中的二进制路径
- 检查环境变量是否设置正确
- 更改后重新启动MCP客户端
- 确保二进制文件具有执行权限:
chmod +x jenkins-mcp-server
启用调试日志
export LOG_LEVEL=debug
jenkins-mcp-server发展
项目结构
.
├── internal/
│ ├── config/ # Configuration management
│ ├── jenkins/ # Jenkins API client
│ └── mcp/ # MCP server implementation
├── main.go # Application entry point
├── go.mod # Go module definition
├── Dockerfile # Docker image definition
└── README.md # This file建筑
go build -o jenkins-mcp-server .贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 为您的更改添加测试
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
支持
- 问题:
- MCP协议: 模型上下文协议
