项目简介
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中),并基于此提供性能、安全、可靠性等方面的智能改进建议。
安装步骤
-
克隆仓库:
git clone https://github.com/heniv96/mcp-jenkins-intelligence.git -
进入项目目录:
cd mcp-jenkins-intelligence -
安装Python依赖:
pip install -r requirements.txt -
安装项目为可编辑模式:
pip install -e . -
配置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验证 -
配置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服务器能正确获取其监听端口。
基本使用方法
-
启动MCP Jenkins智能运维平台服务器: 在项目根目录('mcp-jenkins-intelligence/')下,根据您的传输偏好执行以下命令之一:
- 推荐 (Stdio传输):
fastmcp run server.py --transport stdio - HTTP传输 (例如使用默认端口8000):
fastmcp run server.py --transport http --port 8000
服务器启动后,您会在命令行看到启动日志和功能列表。
- 推荐 (Stdio传输):
-
连接MCP客户端: 在您支持MCP协议的LLM客户端(如VSCode AI、Cursor AI)中,使用上述“服务器配置(MCP客户端使用)”部分提供的JSON信息,配置并连接此MCP服务器。
-
开始自然语言交互: 连接成功后,您可以通过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)
信息
分类
开发者工具