项目简介

MCP Jenkins智能运维平台是一个基于Model Context Protocol (MCP) 的解决方案,旨在将AI能力融入Jenkins操作,提供对复杂CI/CD管道的实时监控、智能分析、故障诊断和性能优化。它允许开发和运维团队通过VSCode、Cursor等支持MCP协议的LLM客户端使用自然语言与Jenkins进行交互,极大地提升了工作效率和管道可靠性。

主要功能点

  • 智能管道分析: 实时监控管道状态、健康度指标和性能分析,提供AI驱动的复杂管道查询和故障根源分析。
  • 高级AI能力: 支持自然语言处理进行DevOps操作,提供智能诊断、上下文感知提示和自动化报告,包括故障预测、异常检测、智能重试逻辑和综合AI洞察。
  • 企业级安全与合规: 支持多重认证(Jenkins标准、Azure AD),通过TLS加密通信、全面的审计日志、最小权限原则和高级数据匿名化(如敏感数据哈希处理、本地数据处理)确保数据安全和合规性。
  • 丰富工具集: 包含核心管道管理、控制、监控、AI智能、安全审计、Jenkinsfile管理以及高级分析与报告等30多种工具,覆盖Jenkins操作的方方面面。
  • 可定制资源与提示: 提供预定义的MCP资源(如 'pipeline://status'、'pipeline://dashboard')和Prompt模板,用于更灵活、定制化的LLM交互。
  • 自动化Jenkinsfile重构与建议: 自动从执行数据中重构Jenkinsfile内容(即使其存储在Git中),并基于此提供性能、安全、可靠性等方面的智能改进建议。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/heniv96/mcp-jenkins-intelligence.git
  2. 进入项目目录:

    cd mcp-jenkins-intelligence
  3. 安装Python依赖:

    pip install -r requirements.txt
  4. 安装项目为可编辑模式:

    pip install -e .
  5. 配置Jenkins凭据: MCP服务器需要连接您的Jenkins实例。请在启动服务器前,通过环境变量设置以下关键信息:

    • 'JENKINS_URL': 您的Jenkins服务器的完整URL地址(例如: 'https://your-jenkins.com')
    • 'JENKINS_USERNAME': 用于连接Jenkins的用户名(通常是您的Jenkins登录用户名)
    • 'JENKINS_TOKEN': 您的Jenkins API令牌(您可以在Jenkins用户配置页面生成并获取)
    • 'JENKINS_VERIFY_SSL': (可选) 是否验证SSL证书,默认为'true'。如果您的Jenkins使用自签名证书或未完全配置HTTPS,可能需要设置为'false',但这会降低安全性。

    示例(Linux/macOS):

    export JENKINS_URL="https://your-jenkins.com"
    export JENKINS_USERNAME="your-jenkins-user"
    export JENKINS_TOKEN="your-jenkins-api-token"
    # export JENKINS_VERIFY_SSL="false" # 如果需要禁用SSL验证

    示例(Windows PowerShell):

    $env:JENKINS_URL="https://your-jenkins.com"
    $env:JENKINS_USERNAME="your-jenkins-user"
    $env:JENKINS_TOKEN="your-jenkins-api-token"
    # $env:JENKINS_VERIFY_SSL="false" # 如果需要禁用SSL验证
  6. 配置MCP服务器端口(可选): MCP服务器默认通过HTTP传输监听8000端口。您可以通过设置 'MCP_SERVER_PORT' 环境变量来自定义端口:

    export MCP_SERVER_PORT="9000" # 将端口设置为9000

服务器配置(MCP客户端使用)

MCP客户端(如VSCode AI、Cursor AI)需要配置与MCP Jenkins智能运维平台的连接信息。以下是一个JSON格式的配置示例及参数说明,您无需手动编写代码,只需在您的MCP客户端的配置界面中,根据以下信息填写:

{
  "name": "MCP Jenkins智能运维平台",
  "command": "fastmcp",
  "args": [
    "run",
    "server.py",
    "--transport",
    "stdio"
    // 如果您希望使用HTTP传输,请将上一行中的 "stdio" 替换为 "http",并添加以下参数:
    // "--port",
    // "8000" // 或者您通过 MCP_SERVER_PORT 环境变量配置的端口
  ],
  "description": "通过Model Context Protocol (MCP) 连接到Jenkins智能运维平台,提供AI驱动的管道管理和分析能力。",
  "environment": {
    "JENKINS_URL": "您的Jenkins服务器URL",
    "JENKINS_USERNAME": "您的Jenkins用户名",
    "JENKINS_TOKEN": "您的Jenkins API令牌",
    "MCP_SERVER_PORT": "MCP服务器监听端口,例如8000(如果使用HTTP传输)"
  }
}

配置参数说明:

  • 'name': 这是MCP客户端中用于显示此MCP服务器的名称。
  • 'command': 启动MCP服务器所使用的命令行程序,此处为 'fastmcp'。
  • 'args': 传递给 'fastmcp' 命令的参数列表。
    • 'run server.py': 指示 'fastmcp' 运行项目中的 'server.py' 文件。
    • '--transport stdio': 指定MCP服务器使用标准输入输出(Stdio)作为通信协议。这是许多MCP客户端的默认和推荐设置。
    • '--transport http --port 8000': (可选) 如果您的客户端支持或您偏好使用HTTP传输,可以将 'stdio' 替换为 'http',并指定服务器监听的端口。请确保此端口与您通过 'MCP_SERVER_PORT' 环境变量设置的端口一致。
  • 'description': 对此MCP服务器功能的简要描述。
  • 'environment': 这是一个键值对(JSON对象),用于将环境变量传递给MCP服务器进程。您必须在此处填写您实际的Jenkins连接信息('JENKINS_URL', 'JENKINS_USERNAME', 'JENKINS_TOKEN')。'MCP_SERVER_PORT' 同样需要在此处声明,以确保MCP服务器能正确获取其监听端口。

基本使用方法

  1. 启动MCP Jenkins智能运维平台服务器: 在项目根目录('mcp-jenkins-intelligence/')下,根据您的传输偏好执行以下命令之一:

    • 推荐 (Stdio传输):
      fastmcp run server.py --transport stdio
    • HTTP传输 (例如使用默认端口8000):
      fastmcp run server.py --transport http --port 8000

    服务器启动后,您会在命令行看到启动日志和功能列表。

  2. 连接MCP客户端: 在您支持MCP协议的LLM客户端(如VSCode AI、Cursor AI)中,使用上述“服务器配置(MCP客户端使用)”部分提供的JSON信息,配置并连接此MCP服务器。

  3. 开始自然语言交互: 连接成功后,您可以通过LLM客户端的聊天界面,使用自然语言向MCP Jenkins智能运维平台提问或发出指令。MCP服务器将处理您的请求,调用Jenkins API并进行智能分析,然后将结果返回给LLM客户端。

    交互示例:

    • “显示我所有的Jenkins管道及其当前状态。” (调用 'list_pipelines' 工具)
    • “分析'deployment-prod'管道最近一次失败的原因。” (调用 'analyze_pipeline_failure' 工具)
    • “给我的CI管道提供一些性能优化建议。” (调用 'suggest_pipeline_optimization' 工具)
    • “触发一个名为'frontend-build'的新构建。” (调用 'trigger_pipeline_build' 工具,需要二次确认)
    • “查看 'pipeline://dashboard' 资源,获取所有管道的概览。” (访问 'pipeline://dashboard' 资源)
    • “获取 'analyze_pipeline_prompt',用于分析'backend-deploy'管道。” (访问 'analyze_pipeline_prompt_mcp' Prompt)

信息

分类

开发者工具