低级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上。如果找不到进程名称,它将被列为 ``.
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服务器和客户端框架
