使用说明
Jenkins MCP 服务器
一个用于获取和分析Jenkins构建控制台日志的模型上下文协议(MCP)服务器。支持多个Jenkins实例(命名配置)以及从作业URL自动检测实例。
特点/特性
- 获取控制台日志从Jenkins构建中获取完整的控制台输出
- 分析构建错误从大型日志中提取带有上下文的错误片段
- 提取Git仓库识别构建过程中使用的Git仓库、分支和提交
- 获取构建信息检索构建元数据(状态、持续时间、触发器等)
安装
- 克隆仓库:
git clone <repository-url>
cd jenkins-mcp-server
- 安装依赖项:
uv sync
配置
- 创建一个
.env在根目录下的文件(使用.env.example(作为模板):
cp .env.example .env
- 配置您的Jenkins凭据:
单个Jenkins实例
对于单一的Jenkins服务器:
JENKINS_URL=https://your-jenkins-instance.com
JENKINS_USER=your_username
JENKINS_API_TOKEN=your_api_token
多个 Jenkins 实例
如果您有多个Jenkins服务器(例如,旧版和新版),您可以使用命名实例来配置它们:
# Default instance (backward compatible)
JENKINS_URL=https://jenkins.example.com
JENKINS_USER=default_user
JENKINS_API_TOKEN=default_token
# Legacy Jenkins
JENKINS_LEGACY_URL=https://jenkins-legacy.example.com
JENKINS_LEGACY_USER=legacy_user
JENKINS_LEGACY_API_TOKEN=legacy_token
# Current/Production Jenkins
JENKINS_CURRENT_URL=https://jenkins.production.example.com
JENKINS_CURRENT_USER=current_user
JENKINS_CURRENT_API_TOKEN=current_token
当使用多个实例时,请提供 完整的 Jenkins 作业 URL 服务器将自动使用正确的实例:
- 示例:
"https://jenkins-legacy.example.com/job/MyFolder/job/MyJob/lastBuild"
服务器将URL与配置的实例进行匹配,并使用相应的凭据。
获取 Jenkins API 令牌
- 登录到您的Jenkins实例
- 点击右上角的用户名
- 点击“配置”
- 在“API令牌”下,点击“添加新令牌”
- 给它起个名字,然后点击“生成”
- 复制令牌并将其添加到您的
.env文件
使用
运行服务器
uv run jenkins-mcp-server
或者直接运行Python文件:
uv run python main.py
服务器将在 http://0.0.0.0:3000/mcp (可通过……配置 SERVER_PORT 并且 SERVER_PATH 环境变量)
可用工具
所有工具都需要一个 完整的Jenkins作业URL 包括构建编号或别名。
URL 格式:
https://jenkins.example.com/job/JobName/job/SubJob/lastBuild
构建别名:
lastBuild- 最新构建版本lastSuccessfulBuild- 最近一次成功的构建lastFailedBuild- 最近一次构建失败lastCompletedBuild- 最近完成的构建
1. get_jenkins_console_log
获取Jenkins构建的完整控制台日志。
参数:
job_url(必填):完整的 Jenkins 作业 URL
示例:
get_jenkins_console_log(
job_url="https://jenkins.example.com/job/MyProject/job/my-application/123"
)
2. analyze_jenkins_build_errors
分析构建日志并提取错误片段。对于大型日志,它会自动提取相关的错误部分及其上下文信息。
参数:
job_url(必填):完整的Jenkins作业URL
示例:
analyze_jenkins_build_errors(
job_url="https://jenkins.example.com/job/MyProject/job/my-application/lastFailedBuild"
)
3. get_jenkins_git_repositories
从构建的控制台日志中提取Git仓库信息。返回包含URL、分支和提交哈希的去重仓库列表。
参数:
job_url(必填):完整的 Jenkins 作业 URL
示例:
get_jenkins_git_repositories(
job_url="https://jenkins.example.com/job/MyProject/job/my-application/lastBuild"
)
4. get_jenkins_build_info
获取有关 Jenkins 构建的元数据(状态、持续时间、时间戳等)。
参数:
job_url(必填):完整的 Jenkins 作业 URL
示例:
get_jenkins_build_info(
job_url="https://jenkins.example.com/job/MyProject/job/my-application/123"
)
配置选项
您可以使用环境变量来定制其行为:
JENKINS_URL您的 Jenkins 实例 URLJENKINS_USER您的 Jenkins 用户名JENKINS_API_TOKEN你的Jenkins API令牌JENKINS_VERIFY_SSL启用/禁用SSL证书验证(默认:true)。 设置为false用于自签名证书MAX_LOG_SIZE提取片段前的最大日志大小(以字符计)(默认:250000)CONTEXT_WINDOW错误周围要包含的行数(默认值:2)HTTP_TIMEOUT整体HTTP请求超时时间(单位:秒)(默认:30)HTTP_CONNECT_TIMEOUTHTTP连接超时时间(以秒为单位)(默认:10)HTTP_READ_TIMEOUTHTTP 读取超时时间(以秒为单位)(默认:120)HTTP_WRITE_TIMEOUTHTTP写入超时时间(以秒为单位)(默认:10)SERVER_PORTMCP 服务器监听的端口(默认:3000)SERVER_PATHMCP 端点的路径(默认:/mcp)DEBUG启用详细调试日志记录(默认:false)。 设置为true查看详细日志,包括实例检测、API调用和响应大小
调试模式
启用详细日志记录以查看有关实例检测、API调用和响应的详细信息:
DEBUG=true
启用后,您将看到如下输出:
🔧 Configuration loaded (DEBUG MODE ENABLED):
Jenkins instances configured: 2
- https://jenkins.example.com (user: your_user)
- https://jenkins-legacy.example.com (user: legacy_user)
...
SSL证书问题
如果你正在连接一个使用自签名证书的 Jenkins 实例并遇到 SSL 错误,你可以禁用 SSL 验证:
JENKINS_VERIFY_SSL=false
注: 禁用SSL验证仅应在开发/预生产环境中使用。对于生产环境,请使用有效的SSL证书。
发展
运行测试
uv run pytest
代码检查(或代码格式化、代码规范检查)
uv run ruff check .
类型检查
uv run pyright
许可证
麻省理工学院(MIT)
