节点信息查询服务

该服务通过Kubernetes部署,提供OpenShift节点的低级信息查询功能,适用于需要此类信息进行故障排除的LLMs。

  • by javierpena
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 javierpena/lowlevel-mcp

使用说明

低级MCP服务器

此MCP服务器旨在从OpenShift中公开某些低级信息 节点,由需要此类信息的LLM使用 故障排除目的。

部署

MCP服务器通常部署为Kubernetes部署,具有 服务。请参阅 deploy/ 清单目录。

A. Makefile 为了方便起见,提供了构建/推动容器的工具 映像,然后部署/取消部署MCP服务器。

在本地运行

pip install -r requirements.txt
python lowlevel.py

工具

MCP服务器公开了以下工具:

find_cpu_intersections

查找属于不同cgroup的具有交叉CPU亲和性的进程。 这对于检测Kubernetes Pod之间的CPU亲和性冲突非常有用, 例如共享同一节点的服务器、systemd服务或容器。

参数:

名称 类型 必填 描述
cpus string 否 按CPU列表过滤(例如。, "0,1,2")
ignore_cgroups string 否 C要忽略的组名,逗号分隔
ignore_procs string 否 要忽略的进程名称,逗号分隔

退货: 一份列出具有重叠CPU集的cgroup对的报告,包括 PID、进程名称、c组标识符和每个进程的共享CPU 矛盾的一对。

list_processes_for_cpu

列出所有CPU亲和性允许它们在指定CPU上运行的进程。

参数:

名称 类型 必填 描述
cpu int 是 CPU编号(从0开始)

退货: 允许运行的每个进程的PID和进程名称列表 在给定的CPU上。

list_irqs_for_cpu

列出所有CPU相关性允许其在指定CPU上运行的IRQ。

参数:

名称 类型 必填 描述
cpu int 是 CPU编号(从0开始)

退货: 允许运行的每个IRQ的IRQ编号和进程名称列表 在给定的CPU上。如果找不到进程名称,它将被列为 <undefined>.

read_msr_register

从给定的CPU读取型号特定寄存器(MSR)。需要 rdmsr (/usr/sbin/rdmsr)在主机上可用。

参数:

名称 类型 必填 描述
register string Yes 要读取的MSR的十六进制地址(例如。, "0x1a0")
cpu int 否 要从中读取寄存器的CPU(从0开始,默认为0)

退货: 以十六进制表示的寄存器值。

query_ethtool

从接口运行ethtool查询。它要求 ethtool 二进制 在主机上可用 /usr/sbin.

请注意,只有某些 ethtool 支持查询,所有这些查询都是只读的 并且不会改变任何网络接口配置。

参数:

名称 类型 必填 描述
interface string Yes 网络接口名称(例如。, "ens1f0")
query Literal Yes 查询类型:必须是显示合并、显示环、驱动程序、显示卸载、统计、显示通道之一

退货: 原始ethtool命令输出。

测试

端到端测试

测试低级mcp与OpenShift Lightspeed的集成:

cd test && ./test-e2e.sh

看 测试/E2-test.md 了解详情。

依赖项

  • FastMCP (>=3.0.0b2)--MCP服务器和客户端框架