使用说明
MCP-Jenkins服务器是指促进AI助手和Jenkins CI/CD服务器之间交互的模型上下文协议服务器。它提供了一个标准化的接口,用于在Jenkins环境中管理构建、检查状态和自动化作业管理。
MCP Jenkins服务器的主要特性
- 标准化接口: MCP-Jenkins服务器允许AI工具以统一的方式与Jenkins通信,简化了集成并增强了功能。
- AI集成: 它使AI系统能够与Jenkins安全连接,从而提高自动化和数据处理能力。
- 增强的工作流程: 通过使用MCP,团队可以简化他们的CI/CD流程,使部署更加高效,减少人工干预。
在Jenkins中使用MCP的潜在好处
- 改善沟通: 促进Jenkins和外部AI工具之间的更好交互,优化任务分配和实时数据分析。
- 自动化文档: 人工智能工具可以自动记录部署更改,确保所有团队成员都能访问最新信息。
- 动态任务管理: 人工智能可以根据工作量和项目进度智能地重新分配任务,提高团队生产力。
未来影响
- 可扩展性: 采用Jenkins MCP原则的组织可能会更快地适应技术进步,确保其保持竞争力。
- 增强的安全合规性: 集成MCP可以简化合规性检查,根据最新法规自动验证部署。
- 促进创新: 通过允许不同的工具进行有效沟通,团队可以发现应对挑战的新解决方案和方法,从而推动创新。
MCP驱动的CI/CD管道自动化[2]
为什么选择Claude for Desktop而不是Claude.ai?
由于服务器是本地运行的,MCP目前只支持桌面主机。远程主机正在积极开发中。
sonarqube的使用案例和优势
- 以编程方式检索SonarQube指标和问题
- 将SonarQube数据集成到AI助手或自动化工作流程中
- 使AI模型能够动态查询和分析代码质量数据
- 利用MCP抽象构建自定义仪表板或报告工具
SonarQube Jenkins MCP服务器
- MCP服务器: 为Jenkins和SonarQube部署MCP服务器。
- Jenkins管道: 创建一个Jenkins管道,其中包括以下阶段:
- 代码结账
- SonarQube分析(使用SonarScanner)
- 与Jenkins MCP服务器的交互
- 与SonarQube MCP服务器的交互
- Python脚本: 使用Jenkins管道中的Python脚本调用Jenkins和SonarQube MCP服务器公开的MCP工具。
- SonarQube设置: 为SonarQube配置必要的令牌和质量门。
MCP服务器与Jenkins和SonarQube集成的用例
- CI管道中的自动代码质量强制
- 使用MCP服务器以编程方式从Jenkins作业触发SonarQube扫描并检索质量门结果。
- 根据SonarQube质量门状态自动失败或继续Jenkins管道,在没有人工干预的情况下执行代码质量标准。
- 示例:Jenkins构建完成后,MCP客户端调用SonarQube MCP服务器获取质量门状态;如果门失败,Jenkins作业将中止或标记为失败
from mcp.client import Client
sonarqube_client = Client("http://sonarqube-mcp-server:8000")
quality_gate = sonarqube_client.call_tool(
"get_quality_gate_status",
params={"projectKey": "my-project-key"}
)
print("Quality Gate Status:", quality_gate)
if quality_gate.get("status") != "OK":
raise Exception("Quality gate failed - aborting pipeline")
- 用于构建和代码质量指标的统一仪表板
- 通过MCP服务器将Jenkins作业状态和SonarQube代码质量指标聚合到单个AI助手或仪表板中。
- 使开发人员和管理人员能够使用自然语言或脚本查询在一个地方查询构建结果、测试覆盖率、代码气味和技术债务。
- 示例:通过MCP连接的AI助手可以回答诸如“向我展示项目X的最新Jenkins构建状态和SonarQube质量报告”之类的问题
- 自动问题检测和补救建议
- 使用MCP服务器提取SonarQube问题和代码气味,并将其输入AI模型,以建议修复或重构步骤。
- 与Jenkins集成,在检测到关键问题时自动创建工单或触发补救作业。
- 示例:在SonarQube扫描后,MCP服务器向AI助手提供问题详细信息,AI助手生成代码改进建议或创建Jenkins作业以应用修复。
- 基于SonarQube Insights的动态Jenkins作业管理
- 使用MCP监控SonarQube指标,动态调整Jenkins作业参数,或对有风险的代码更改触发其他测试。
- 示例:如果SonarQube报告代码复杂性增加或新的安全漏洞,MCP驱动的自动化可以触发扩展的Jenkins测试套件或安全扫描。
from mcp.client import Client
sonarqube_client = Client("http://sonarqube-mcp-server:8000")
quality_gate = sonarqube_client.call_tool(
"get_quality_gate_status",
params={"projectKey": "my-project-key"}
)
print("Quality Gate Status:", quality_gate)
if quality_gate.get("status") != "OK":
raise Exception("Quality gate failed - aborting pipeline")
- 管道中的无缝多工具集成
- 利用MCP抽象Jenkins和SonarQube API,允许管道脚本通过MCP客户端与这两个工具统一交互。
- 通过将API集成复杂性转移到MCP服务器,简化管道代码,使管道更具可维护性和可扩展性。
- 示例:Jenkins管道调用MCP工具开始构建,运行SonarQube分析,获取结果,并根据组合数据决定下一步。
- 实时通知和反馈循环
- 配置MCP服务器,将Jenkins构建和SonarQube分析结果中继到chatops工具或通知系统。
- 为开发人员提供关于构建成功、代码质量回归或质量门失败的即时反馈。
- 示例:构建完成后,MCP服务器将汇总结果发送给Slack或Microsoft Teams,从而能够快速响应问题。
使用Jenkins MCP服务器的Gitab用例:
- 紧急修补程序部署 场景:由于一个关键错误,生产中断。需要快速修复、测试和部署。 工作流程:
从main在GitLab中创建hotfix分支 应用紧急代码修复 为hotfix分支触发Jenkins构建 监控构建进度和部署 验证后创建返回主目录的合并请求
- 构建故障调查和自动修复 场景:隔夜构建失败,阻碍了开发团队。 工作流程:
分析失败的Jenkins构建日志 确定根本原因(缺少依赖关系、语法错误、环境问题) 在GitLab中查找并更新Jenkinsfile或共享库 应用修复并触发新构建 验证修复程序在多个分支之间是否有效
- 新的微服务管道设置 场景:开发团队需要CI/CD来创建一个新的微服务。 工作流程:
为微服务创建新的GitLab存储库 建立Jenkins多分支管道 为功能分支和主功能配置构建触发器 为常见构建步骤设置共享库集成 配置部署阶段(开发、暂存、生产)
- 发布分行管理 场景:季度发布需要协调分支管理和构建。 工作流程:
在GitLab中从main创建发布分支 更新Jenkins作业,在构建触发器中包含发布分支 樱桃采摘特定承诺发布分支 运行回归构建在发布分支上 构建通过后标记并部署版本
- 跨多个项目的共享库更新 场景:安全补丁需要更新20多个项目使用的共享Jenkins库。 工作流程:
更新GitLab中的共享库代码 针对代表性项目进行测试变更 确定哪些Jenkins作业使用共享库 触发受影响项目的构建以验证兼容性 监控整个组织的任何重大变化
- 开发人员入职自动化 场景:新开发人员需要访问存储库和构建系统。 工作流程:
在GitLab中为新开发人员分叉模板存储库 创建个人发展Jenkins工作 设置分支保护规则和合并请求模板 配置生成结果的通知设置
- 合规审计准备 场景:需要记录和验证所有CI/CD流程以供审计。 工作流程:
提取Jenkins作业配置并构建历史记录 记录GitLab存储库结构和访问控制 生成关于构建成功率和部署频率的报告 验证所有流程是否遵循安全准则
- 性能测试管道 场景:需要自动化性能测试作为CI/CD的一部分。 工作流程:
配置Jenkins作业以在成功构建后触发性能测试 将测试配置和脚本存储在GitLab中 如果超过阈值,则分析性能测试结果和失败构建 生成随时间变化的性能趋势报告
- 多环境部署 场景:代码需要部署到开发、测试和生产环境中。 工作流程:
配置具有多个部署阶段的Jenkins管道 将GitLab变量用于特定环境的配置 在环境之间实施审批门 跟踪所有环境中的部署状态
- 依赖关系更新管理 场景:跨多个项目定期更新第三方依赖关系。 工作流程:
扫描GitLab存储库以查找过时的依赖项 使用依赖关系更新创建自动拉取请求 触发器Jenkins构建以验证兼容性 自动合并通过所有测试的更新
这些用例反映了开发和DevOps团队每天面临的真正挑战。每个都涉及GitLab(源代码控制)和Jenkins(CI/CD)之间的协调,以解决实际的业务问题。
备注
from typing import Any
import httpx
from mcp.server.fastmcp import FastMCP
# Initialize FastMCP server
mcp = FastMCP("weather")
# Constants
NWS_API_BASE = "https://api.weather.gov"
USER_AGENT = "weather-app/1.0"
--->FastMCP类使用Python类型提示和文档字符串自动生成工具定义,使创建和维护MCP工具变得容易:
- 从MCP服务器发送和接收数据
- 管理版本和身份验证
- 修复主机的错误和响应
链接:
1.https://www.byteplus.com/en/topic/541523?title=mcp-ci-cd集成彻底改变了自动化部署工作流程
2.https://blogs.cisco.com/developer/mcp-usecases
3.https://www.piwheels.org/project/mcp-jenkins/
4.https://github.com/hekmon8/Jenkins-server-mcp
5.https://github.com/ProgrammerAgua/jenkins-mcp-server
6.https://pypi.org/project/mcp-jenkins/#description
7.https://smithery.ai/server/%40lanbaoshen%2Fmcp-詹金斯/工具
8.https://mcpmarket.com/server/sonarqube(sonarqube api)
[9] https://github.com/lieee1995/mcp-jenkins-server