MCP server providing low-level server information from an OpenShift node
This server provides 5 low-level system tools with reasonable naming and basic descriptions. All tools follow verb-noun convention (find_, list_, read_, query_) which aids discoverability. However, descriptions are terse (30-70 chars), lacking depth on use cases and prerequisites. Parameter descriptions are present but minimal. Output schemas are not documented in the visible code, only input schemas are defined. Tool annotations are correctly declared (all READ_ONLY risk), which is a plus. Error handling is not visible. Overall, the server exhibits moderate quality, functional definitions suitable for internal/admin use, but falling short of production-grade LLM-agent readiness.
Find processes with intersecting CPU affinity from different cgroups.
List all IRQs that are allowed to run on specified CPU.
List all processes allowed to run on specified CPU.
Query ethtool for network interface information.
Read an MSR register from the specified CPU.
Tool descriptions are too brief (30 - 70 characters). The rubric baseline is 194 chars; descriptions under 100 chars lack context for LLM selection. Missing WHEN to use each tool and what it returns.
Output schemas are not documented. The tools have input parameter schemas, but return types and fields are not visible in the code or docstrings. LLMs cannot plan downstream operations or extract fields they expect.
No error handling guidance in tool descriptions. Tools reading /proc files may fail (PermissionError, FileNotFoundError visible in cpu_intersect.py), but no descriptions explain what happens or how to recover.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 69 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Parameter descriptions lack format/constraint details. E.g. 'cpus' parameter accepts 'comma-separated' list but description does not specify format or example. 'register' expects hexadecimal but only says 'Hexadecimal number' without format rules.
query_ethtool uses enum constraint properly (show-coalesce, show-ring, etc.) but descriptions for other multi-value fields (cpus, ignore_cgroups, ignore_procs) use free-form strings instead of formal constraints.