使用说明
# Jenkins MCP Server
Table of Contents
English
Overview
A local MCP server that wraps Jenkins REST APIs for release automation.
Features
- List jobs:
jenkins_list_jobs - Trigger build:
jenkins_build - Get build result:
jenkins_get_build - Wait until completion:
jenkins_wait_build - Read console log:
jenkins_get_console
Requirements
- Python 3.9+
- Python packages:
mcp,httpx - Jenkins API token account (Build + Read permissions on target jobs)
Environment Variables
Copy .env.example and set values:
JENKINS_URL: Jenkins base URL, for examplehttps://jenkins.company.comJENKINS_USER: Jenkins usernameJENKINS_TOKEN: Jenkins API tokenJENKINS_VERIFY_SSL:true/false, defaulttrueJENKINS_JOB_WHITELIST: comma-separated job whitelist,*means allJENKINS_REQUEST_TIMEOUT: request timeout in seconds, default30JENKINS_DEFAULT_BRANCH: default branch injected when no branch parameter is passed, for exampleorigin/developJENKINS_DEFAULT_BRANCH_PARAM: branch parameter name, defaultbranch
Run Locally
$env:JENKINS_URL = "https://jenkins.company.com"
$env:JENKINS_USER = "robot_release"
$env:JENKINS_TOKEN = "***"
$env:JENKINS_JOB_WHITELIST = "release-test,folder1/release-job"
$env:JENKINS_DEFAULT_BRANCH = "origin/develop"
python tools/jenkins-mcp/server.py
Register In Codex (~/.codex/config.toml)
[mcp_servers.jenkins-mcp]
command = "python"
args = ["C:/Users/HP/mmt/finance/tools/jenkins-mcp/server.py"]
[mcp_servers.jenkins-mcp.env]
JENKINS_URL = "https://jenkins.company.com"
JENKINS_USER = "robot_release"
JENKINS_TOKEN = "your_token"
JENKINS_VERIFY_SSL = "true"
JENKINS_JOB_WHITELIST = "release-test,folder1/release-job"
JENKINS_REQUEST_TIMEOUT = "30"
JENKINS_DEFAULT_BRANCH = "origin/develop"
Typical One-Click Release Flow
- Call
jenkins_build(job_name="release-test", parameters={"branch":"main","env":"test"}) - Use returned
build_number(orqueue_id) - Call
jenkins_wait_build(...) - If failed, call
jenkins_get_console(...)
Security Recommendations
- Use a dedicated Jenkins robot account
- Restrict permissions to required jobs only
- Keep
JENKINS_JOB_WHITELISTenabled in MCP - Store token only in environment variables or secrets
中文
概述
这是一个本地 MCP 服务,封装 Jenkins REST API,用于发布自动化与构建编排。
功能
- 列出任务:
jenkins_list_jobs - 触发构建:
jenkins_build - 查询构建结果:
jenkins_get_build - 等待构建完成:
jenkins_wait_build - 读取控制台日志:
jenkins_get_console
依赖
- Python 3.9+
- Python 包:
mcp、httpx - Jenkins API Token 账号(对目标任务至少有 Build + Read 权限)
快速开始
- 复制
.env.example,填写 Jenkins 地址、用户名和 Token。 - 建议配置
JENKINS_JOB_WHITELIST只允许需要的任务。 - 建议配置
JENKINS_DEFAULT_BRANCH=origin/develop作为默认编译分支。 - 启动服务:
python tools/jenkins-mcp/server.py。 - 在 Codex 的
~/.codex/config.toml注册该 MCP 服务。
环境变量
JENKINS_URL:Jenkins 地址,例如https://jenkins.company.comJENKINS_USER:Jenkins 用户名JENKINS_TOKEN:Jenkins API TokenJENKINS_VERIFY_SSL:true/false,默认trueJENKINS_JOB_WHITELIST:可访问 job 白名单(逗号分隔),*表示全部JENKINS_REQUEST_TIMEOUT:请求超时秒数,默认30JENKINS_DEFAULT_BRANCH:未传 branch 参数时自动注入的默认分支,例如origin/developJENKINS_DEFAULT_BRANCH_PARAM:分支参数名,默认branch
本地运行示例
$env:JENKINS_URL = "https://jenkins.company.com"
$env:JENKINS_USER = "robot_release"
$env:JENKINS_TOKEN = "***"
$env:JENKINS_JOB_WHITELIST = "release-test,folder1/release-job"
$env:JENKINS_DEFAULT_BRANCH = "origin/develop"
python tools/jenkins-mcp/server.py
Codex 配置示例
[mcp_servers.jenkins-mcp]
command = "python"
args = ["C:/Users/HP/mmt/finance/tools/jenkins-mcp/server.py"]
[mcp_servers.jenkins-mcp.env]
JENKINS_URL = "https://jenkins.company.com"
JENKINS_USER = "robot_release"
JENKINS_TOKEN = "your_token"
JENKINS_VERIFY_SSL = "true"
JENKINS_JOB_WHITELIST = "release-test,folder1/release-job"
JENKINS_REQUEST_TIMEOUT = "30"
JENKINS_DEFAULT_BRANCH = "origin/develop"
典型一键发布流程
- 调用
jenkins_build(job_name="release-test", parameters={"branch":"main","env":"test"}) - 使用返回的
build_number(或queue_id) - 调用
jenkins_wait_build(...) - 如失败,调用
jenkins_get_console(...)排查
安全建议
- 使用专用 Jenkins 机器人账号
- 仅授予必要任务权限
- 建议始终开启
JENKINS_JOB_WHITELIST - Token 仅存放在环境变量或密钥系统中
