mcpField
M
MCP Jenkins

MCP Jenkins

本地服务
pypi.org云与基础设施1562 周前更新

关于 MCP Jenkins

MCP Jenkins 将 Jenkins 操作提供给符合 Anthropic MCP 规范的 AI 客户端,面向需要通过自然语言访问 CI/CD 信息与操作的团队。它涵盖构建、节点、队列、测试报告、制品和插件等工具,并可启用只读模式。

主要功能

  1. 01查询任务、节点与构建队列
  2. 02查看构建日志、测试结果和制品
  3. 03启动、停止构建及提交流水线输入
  4. 04检查插件状态与依赖关系
  5. 05支持只读模式和多种传输方式

适用场景

  1. 01从 AI 客户端查询 Jenkins 构建状态
  2. 02检查失败测试及构建控制台输出
  3. 03在队列中取消任务或停止运行中的构建
  4. 04查看插件更新、问题及依赖图

MCP 相关

该 MCP 服务将 Jenkins 的任务、构建、节点、队列、制品和插件操作作为工具提供给 MCP 客户端。支持 stdio、SSE 和 streamable HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"jenkins": {
"command": "uvx",
"args": [
"mcp-jenkins"
]
}
}
}
启动命令uvx mcp-jenkins

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-jenkins

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Jenkins

PyPI Version PyPI Downloads test codecov License

Model Context Protocol(MCP)是一种开源实现,遵循 Anthropic 的 MCP 规范,连接 Jenkins 与 AI 语言模型。本项目支持通过 Jenkins 工具进行安全且结合上下文的 AI 交互,同时保障数据隐私和安全。

安装

选择以下安装方式之一:

# Using uv (recommended)
pip install uv
uvx mcp-jenkins

# Using pip
pip install mcp-jenkins
mcp-jenkins

# Docker
docker pull ghcr.io/lanbaoshen/mcp-jenkins:latest
docker run -p 9887:9887 --rm ghcr.io/lanbaoshen/mcp-jenkins:latest --transport streamable-http

命令行参数

使用命令行参数时,可以按如下方式指定 Jenkins 服务的详细信息:

# Simple streamable-http example
uvx mcp-jenkins --transport streamable-http
参数描述必填
--env-file要加载配置的 .env 文件路径。请参阅下方的环境变量 / .env 文件。否
--jenkins-urlJenkins 服务的 URL。(Http 应用可通过请求头 x-jenkins-url 设置)否
--jenkins-usernameJenkins 身份验证的用户名。(Http 应用可通过请求头 x-jenkins-username 设置)请与密码一起设置,或两者均留空以匿名访问 Jenkins。否
--jenkins-passwordJenkins 身份验证的密码或 API 令牌。(Http 应用可通过请求头 x-jenkins-password 设置)请与用户名一起设置,或两者均留空以匿名访问 Jenkins:此时服务器可执行的操作由 Jenkins 中匿名用户的权限决定。否
--jenkins-timeoutJenkins API 请求的超时时间,单位为秒。默认值为 5 秒。否
--jenkins-verify-ssl/--no-jenkins-verify-ssl连接 Jenkins 时是否验证 SSL 证书。默认会验证。否
--jenkins-session-singleton/--no-jenkins-session-singleton是否在同一会话的所有请求中使用单例 Jenkins 客户端。默认值为 True。否
--read-only是否启用只读模式。默认值为 False否
--transport要使用的通信传输方式。可选项为 stdio、sse 或 streamable-http。默认值为 stdio。否
--hoststreamable-http 传输方式的主机地址。默认值为 0.0.0.0否
--portstreamable-http 传输方式的端口号。默认值为 9887。否

环境变量 / .env 文件

你可以将凭据设为环境变量或放入 .env 文件,而不是在命令行中传递凭据:

JENKINS_URL=https://jenkins.example.com
JENKINS_USERNAME=alice
JENKINS_PASSWORD=xxxx
JENKINS_TIMEOUT=5
JENKINS_VERIFY_SSL=true

如果当前目录(或父目录)中存在 .env 文件,系统会自动加载,无需使用标志:

uvx mcp-jenkins --transport streamable-http

如需从特定位置加载 .env 文件,请使用 --env-file:

uvx mcp-jenkins --env-file /path/to/.env --transport streamable-http

已在实际环境中设置的值优先于 .env 文件,而任何 --jenkins-* CLI 标志的优先级都高于前两者。

配置和使用

Jetbrains Github Copilot
  1. 打开 Jetbrains 设置
  2. 前往 Github Copilot > MCP > Configure
  3. 添加以下配置:
{
  "servers": {
    "my-mcp-server": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-jenkins",
        "--jenkins-url=xxx",
        "--jenkins-username=xxx",
        "--jenkins-password=xxx"
      ]
    }
  }
}
VSCode Copilot Chat
  1. 对于本地配置,请在工作区中创建 .vscode 文件夹和 mcp.json 文件,或通过设置菜单编辑 settings.json。
  2. 插入以下配置:
  • SSE 模式
{
    "servers": {
        "jenkins": {
            "url": "http://localhost:9887/sse",
            "type": "sse"
        }
    }
}
  • Streamable-Http 模式
{
    "servers": {
        "mcp-jenkins-mcp": {
            "autoApprove": [],
            "disabled": false,
            "timeout": 60,
            "type": "streamableHttp",
            "url": "http://localhost:9887/mcp"
        }
    }
}

使用以下命令运行 Jenkins MCP 服务:

uvx mcp-jenkins \
  --jenkins-url xxx \
  --jenkins-username xxx  \
  --jenkins-password xxx \
  --transport sse

健康检查端点

使用 --transport streamable-http 或 --transport sse 运行时,服务会提供一个纯 HTTP 存活探测端点:

GET /healthz  ->  200 OK

该端点始终返回 200,且会绕过 x-jenkins-* 身份验证标头,因此可直接用作 Kubernetes 存活/就绪探针,无需任何 Jenkins 凭据。探针示例:

livenessProbe:
  httpGet:
    path: /healthz
    port: 9887
  initialDelaySeconds: 5
  periodSeconds: 10

注意:这仅为存活检查,不会验证与上游 Jenkins 服务的连接。

可用工具

工具描述
get_item按名称获取指定项目。
get_item_config获取指定项目的配置。
get_item_parameters获取指定项目的参数。
get_all_items获取 Jenkins 中的所有项目。
query_items根据模式查询项目。
build_item构建一个项目。
get_all_nodes获取 Jenkins 中的所有节点。
get_node按名称获取指定节点。
get_node_config获取指定节点的配置。
get_all_queue_items获取 Jenkins 中的所有队列项目。
get_queue_item按 ID 获取指定的队列项目。
cancel_queue_item按 ID 取消指定的队列项目。
get_build按作业名称和构建编号获取指定构建。
get_build_scripts获取与指定构建关联的脚本。
get_build_console_output获取指定构建的控制台输出。
get_build_parameters获取指定构建的参数。
get_build_test_report获取指定构建的测试报告。
get_build_test_failures获取指定构建中失败的测试。
get_running_builds获取 Jenkins 中当前正在运行的所有构建。
stop_build按作业名称和构建编号停止指定构建。
get_pending_inputs获取因等待输入而暂停的构建的待处理输入步骤。
submit_input继续执行或中止构建的流水线输入步骤。
get_all_build_artifacts列出指定构建的制品。
get_build_artifact下载指定构建中的制品。
get_build_artifact_url获取指定构建中制品的直接 URL。
get_view按名称获取指定视图。
get_all_views获取指定视图的配置。
get_all_plugins获取所有已安装的插件。
get_plugin按短名称获取指定插件。
get_plugins_with_problems获取存在问题的插件(缺少依赖项、版本不匹配等)。
get_plugins_with_backup获取可降级的插件。
get_plugins_with_updates获取有可用更新的插件。
get_plugin_dependency_graph以 Graphviz 格式获取插件的依赖关系图。
run_groovy_script在 Jenkins 上执行任意 Groovy 脚本。

注意:get_pending_inputs 会读取由 pipeline-rest-api 插件(随 pipeline-stage-view 一起提供)提供的 wfapi 端点。只有在省略 input_id 时,submit_input 才需要该插件——显式传入 input_id 后,它可在任何安装了 pipeline-input-step 插件的 Jenkins 上运行。

贡献

CONTRIBUTING.md

许可证

采用 MIT 许可证授权——请参阅 LICENSE 文件。本项目不是 Jenkins 官方产品。

Star 历史

Star History Chart

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。