释放控制器MCP服务器
releasecontroller mcp服务器是一个健壮的模型上下文协议(mcp)服务器,旨在提供与OpenShift发布控制器交互的全面工具,并从Prow作业工件中提取有价值的集群相关信息。
此服务器充当一个强大的界面,使用户能够通过编程查询详细的发布信息(如可用的发布流、最新接受/拒绝的发布、失败的作业摘要和组件版本),并利用Prow作业工件中可用的丰富数据获取深入的集群状态详细信息(包括pod状态、集群操作员健康状况和节点详细信息)。它旨在简化OpenShift和OKD版本以及集群状态的分析和调试。
releasecontroller mcp服务器公开了一系列广泛的工具,分为Release Controller交互和集群信息检索:
释放控制器工具
- 列出发布控制器:获取所有支持的发布控制器的列表(例如OKD、OpenShift、Multi-arch、ARM64、PPC64LE、S390X)。
- 获取特定发布控制器URL:检索特定发布控制器的基本URL(例如OKD、OpenShift)。
- 列出发布流:枚举指定发布控制器内的所有可用发布流。
- 最新接受/拒绝的版本:确定给定流的最新接受或拒绝的版本。
- 列出发布中的失败作业:获取与特定发布相关的所有失败作业的列表,包括其相应的Prow作业URL。
- 在发布中列出组件:显示发布中包含的关键组件(如kubectl、kubernetes、coreos和测试)的版本。
- 列出发布的测试失败:从给定的Prow作业URL中提取并呈现失败测试的摘要。如果没有发现失败,将返回一条明确的消息。
- 获取漏洞测试以供发布:识别并列出在特定Prow作业中标记为漏洞的测试。
- 获取风险分析数据:获取特定Prow作业可用的详细风险分析数据。
- 分析发布作业失败:下载并分析给定Prow作业的构建日志文件,提供关键错误和失败的简洁摘要。此工具支持使用可配置阈值(激进、适度、保守)进行日志压缩,以管理大型日志。
- 列出功能更改:从版本中更新的映像提交中识别并列出与功能相关的问题,明确排除错误(OCPBUGS)和CVE。
- 列出Bug修复:列出版本中更新的映像提交引入的所有Bug修复(特别是OCPBUGS)。
- 列出CVE修复:枚举版本中更新的映像提交所解决的常见漏洞和暴露(CVE)。
集群信息工具(来自Prow作业工件)
这些工具利用从Prow作业中收集额外的工件,在作业运行时提供对集群状态的洞察。
- 按状态获取Pod:检索处于特定状态的Pod列表(例如,CrashLoopBackOff、Pending、Init、Error、Running或All Pod)。
- 按命名空间获取Pod:过滤并列出属于特定Kubernetes命名空间的Pod。
- 按节点获取Pod:识别并列出在特定集群节点上调度的Pod。
- 在Pod中获取容器:列出指定Pod中的所有容器名称。
- 获取容器日志:获取pod中特定容器的日志,并分析其中的重要事件、故障和错误。
- 获取集群运营商状态摘要:提供所有集群运营商的状态概述(可用、正在进行、已降级)。
- 获取集群版本摘要:详细说明集群的当前版本、所需版本、可用更新和历史更新记录。
- 获取节点信息:检索所有集群节点的全面详细信息,包括架构、操作系统映像、内核版本和其他相关硬件/软件细节。
- 按名称获取节点信息:按名称获取特定节点的详细信息。
- 按名称获取节点标签/注释:获取并显示应用于指定节点的Kubernetes标签或注释。
- 获取所有节点标签/注释/条件:检索集群中所有节点的聚合标签、注释或条件。
入门(使用鹅AI代理):
- 克隆仓库:
git clone git@github.com:Prashanth684/releasecontroller-mcp-server.git- 构建:
make build- 在SSE模式下运行:
./releasecontroller-mcp-server --sse-port 8080- 将您的MCP服务器添加到鹅配置文件(~/.config/gees/config.yaml)
GOOSE_MODEL: gemini-2.0-flash
extensions:
releasecontroller:
description: null
enabled: true
envs: {}
name: releasecontroller
timeout: 300
type: sse
uri: http://0.0.0.0:8080/sse- 开始鹅
goose session示例查询流程:
- 在4.20.0-0.okd-scos流中查找最新接受的版本
- 列出此版本中失败的作业
- 对于gcp作业,查看日志并列出失败情况
示例查询流、发布和失败作业是否已知:
- 从OCP发布控制器中,只获取4.19.0-0.nightly流中最新拒绝的失败的阻塞作业,使用失败作业的prow作业url,清楚地列出失败的测试名称,并分析日志以了解这些特定测试失败的原因
- 从OKD发布控制器中,获取4.20.0-OKD-scos流中最新接受的所有失败作业,使用gcp失败作业的prow作业url,清楚地列出失败的测试名称,并分析日志以了解这些特定测试失败的原因
