Jenkins AI 集成工具

MCP Jenkins 是一个开源实现,通过遵循 Anthropic 的 MCP 规范,将 Jenkins 与 AI 语言模型连接起来,实现安全、上下文的 AI 交互。

  • by Azeezat-git
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Azeezat-git/jenkins-mcp

使用说明

MCP Jenkins(注:这里的“MCP”可能是一个特定上下文中的缩写或专有名词,没有具体上下文难以给出确切翻译,但在此保留原样;“Jenkins”通常指的是一种持续集成工具或人名,根据上下文可能翻译为“詹金斯”或保持原样)

模型上下文协议(MCP)是一个开源实现,它遵循Anthropic的MCP规范,将Jenkins与人工智能语言模型连接起来。此项目能够在保护数据隐私和安全的同时,实现Jenkins工具与人工智能的安全上下文交互。

光标演示

安装指南

安装

选择以下安装方法之一:

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

# Using pip
pip install mcp-jenkins

# Using Smithery
npx -y @smithery/cli@latest install @lanbaoshen/mcp-jenkins --client claude

配置与使用

光标

  1. 打开光标设置
  2. 导航至MCP(管理控制面板/主控制面板/指定的控制点等,具体含义根据上下文确定)
  3. 点击 + 添加新的全局MCP服务器

这将创建或编辑包含您MCP服务器配置的~/.cursor/mcp.json文件。

{
  "mcpServers": {
    "mcp-jenkins": {
      "command": "uvx",
      "args": [
        "mcp-jenkins",
        "--jenkins-url=xxx",
        "--jenkins-username=xxx",
        "--jenkins-password=xxx"
      ]
    }
  }
}

注:您也可以将Jenkins令牌设置为密码!

VSCode Copilot 聊天

  1. 创造 .vscode 文件夹中包含 mcp.json 在你的工作区中存放用于本地设置或编辑的文件 settings.json 槽设置菜单。
  2. 插入以下配置:
  • SSE模式
{
    "servers": {
        "jenkins": {
            "url": "http://localhost:3000/sse",
            "type": "sse"
        }
    }
}
  • 可流式传输-HTTP 模式
{
    "servers": {
        "mcp-jenkins-mcp": {
            "autoApprove": [],
            "disabled": false,
            "timeout": 60,
            "type": "streamableHttp",
            "url": "http://localhost:3000/mcp"
        }
    }
}
  1. 使用以下命令运行 Jenkins MCP 服务器:
uvx mcp-jenkins \
  --jenkins-url http://localhost:3000 \
  --jenkins-username your_username  \
  --jenkins-password your_password_or_token \
  --transport sse --port 3000

命令行参数

# Stdio Mode
uvx mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx --read-only

# SSE Mode
uvx mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx --transport sse --port 9887

# Streamable-Http Mode
uvx mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx --transport streamable-http --port 9887

AutoGen

Install and exec

安装autogen:

pip install "autogen-ext[azure,ollama,openai,mcp]" autogen-chat

运行Python脚本:

import asyncio

from autogen_ext.tools.mcp import StdioMcpToolAdapter, StdioServerParams
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.ui import Console
from autogen_core import CancellationToken


async def main() -> None:
    # Create server params for the remote MCP service
    server_params = StdioServerParams(
        command='uvx',
        args=[
            'mcp-jenkins',
            '--jenkins-username',
            'xxx',
            '--jenkins-password',
            'xxx',
            '--jenkins-url',
            'xxx'
        ],
    )

    # Get the translation tool from the server
    adapter = await StdioMcpToolAdapter.from_server_params(server_params, 'get_all_jobs')

    # Create an agent that can use the translation tool
    agent = AssistantAgent(
        name='jenkins_assistant',
        model_client=[Replace_with_your_model_client],
        tools=[adapter],
    )

    # Let the agent translate some text
    await Console(
        agent.run_stream(task='Get all jobs', cancellation_token=CancellationToken())
    )


if __name__ == "__main__":
    asyncio.run(main())

可用工具

工具 描述
get_all_jobs 获取所有作业
get_job_config 获取作业配置
search_jobs 按特定字段搜索工作职位
get_running_builds 获取正在运行的构建任务
stop_build 停止运行构建过程
get_build_info 获取构建信息
get_build_sourcecode 获取Jenkins中特定构建的流水线源代码
get_job_info 获取作业信息
build_job 使用参数构建一个作业
get_build_logs 获取构建日志
get_test_results 获取特定构建的测试结果
get_all_nodes 获取所有节点
get_node_config 获取节点的配置信息
get_all_queue_items 获取所有队列项
get_queue_item 获取队列项信息
取消队列项 取消队列中的项目
get_multibranch_jobs 从 Jenkins 获取所有多分支流水线作业,可选地按模式过滤
get_multibranch_branches 获取特定多分支流水线作业的所有分支
scan_multibranch_pipeline 触发对多分支流水线的扫描以发现新分支

开发与调试

# Using MCP Inspector
# For installed package
npx @modelcontextprotocol/inspector uvx mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx

# For local development version
npx @modelcontextprotocol/inspector uv --directory /path/to/your/mcp-jenkins run mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx

预提交钩子(Pre-Commit Hook)

# Install Dependency
uv sync --all-extras --dev
pre-commit install

# Manually execute
pre-commit run --all-files

UT

# Install Dependency
uv sync --all-extras --dev

# Execute UT
uv run pytest --cov=mcp_jenkins

许可证

根据MIT许可协议授权 - 详见 许可证 文件。这不是 Jenkins 的官方产品。

MCP-Jenkins 在 MCP 注册表中

  • https://mcpreview.com/mcp-servers/lanbaoshen/mcp-jenkins 翻译为中文是:“https://mcpreview.com/mcp-servers/兰宝神/mcp- Jenkins(注:'lanbaoshen'在此处可能是一个特定名称或品牌,直接音译为‘兰宝神’,实际翻译可能需根据具体上下文调整)”。不过,通常在中文语境中,网址中的特定名称或品牌不会直接翻译,除非该名称有官方中文译名。因此,如果“lanbaoshen”没有官方中文译名,保持原样或音译也是可以接受的
  • https://smithery.ai/server/@lanbaoshen/mcp-jenkins 翻译为中文可以是:“https://smithery.ai/服务器/@lanbaoshen/mcp- Jenkins(注:此处‘Jenkins’通常作为专有名词,如‘Jenkins持续集成服务器’,在此上下文中直接保留原样)”。不过,为了更自然地表达,也可以稍作调整为:“Smithery.ai 服务器上的 @lanbaoshen 的 MCP-Jenkins(项目/配置)”。具体翻译可能需要根据上下文和实际用途进行微调
  • https://glama.ai/mcp/servers/@lanbaoshen/mcp-jenkins 翻译为中文可以是:“https://glama.ai/mcp/服务器/@lanbaoshen/mcp- Jenkins(或 Jenkins MCP 服务器)”。不过,为了更流畅和符合中文表达习惯,也可以稍作调整为:“https://glama.ai/mcp/服务器页面/@lanbaoshen/mcp-Jenkins(或 Jenkins MCP 服务器配置/实例)”。这里假设“mcp-jenkins”是指与 Jenkins 相关的 MCP(可能是指某种管理控制平台或服务器配置)服务器或实例
  • https://mseep.ai/app/兰宝神-MCP-Jenkins(注:这里的“兰宝神”可能是对某个特定名称或品牌的音译,具体翻译可能需根据上下文或品牌官方译名进行调整)

明星历史