MCP server for read-only Linux system administration, diagnostics, and troubleshooting
Linux MCP server has 25 tools with consistent naming (verb_noun pattern: get_*, list_*, read_*, run_*) and descriptions present for all tools. However, descriptions are uniformly terse (15-40 chars), falling below the 50-200 char baseline for LLM-optimized descriptions. Input schemas are visible and properly typed, but lack depth: most parameters have minimal descriptions (e.g., 'Optional remote host to execute on via SSH' repeated 50+ times). Output schemas are not documented. Error handling is minimal, no recovery guidance, no categorization of retryable vs fatal errors. Security model is sound (read-only tools, validation gate for scripts), but parameter descriptions don't explain constraints or expected formats. Tool composition is good (single responsibility), but the SSH host parameter is overloaded across all tools without clear guidance on when/how to use it.
Execute a validated script (internal tool for MCP app)
Get active network connections
Get CPU information and statistics
Get disk usage information
Get the system hostname
Get systemd journal logs with optional filters
Get kernel version and information
Get listening ports and associated processes
Descriptions uniformly terse (15-40 chars), far below 50-200 char baseline. Examples: 'Get the system hostname', 'Get OS release information'. LLMs cannot distinguish when to call similar tools or understand prerequisites.
Output schemas not documented. Tools return structured data (JSON), but LLMs have no visibility into field names, types, or which fields enable chaining (e.g., does get_process_info return a process_id for downstream tools?).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2025-06-18+ | v2 |
Get memory and swap information
Get OS release information
Get detailed information about a process
Get journal logs for a systemd service
Get status of a systemd service
Get system uptime
List block devices
List files and directories in a path
List network interfaces and their statistics
List running processes
List systemd units with their state
Read a file from the filesystem
Read a log file from the allowlist
Reject a script execution (internal tool for MCP app)
Run a validated read-only script
Run a validated script that modifies the system
Validate a Python or Bash script via an external gatekeeper for security and policy compliance
Parameter descriptions lack constraint details. 'Optional remote host to execute on via SSH' repeated 50+ times, no guidance on format (hostname, IP, user@host?), when to use it, or how it affects tool behavior. LLMs cannot validate input.
No error handling guidance. Tools lack descriptions of failure modes, recovery steps, or categorization (retryable vs fatal). E.g., read_file could fail due to permission denied, file not found, or path traversal block, LLM has no guidance on what to do next.
Pagination not implemented. list_processes, list_systemd_units, list_network_interfaces, list_directory have no limit/offset/page parameters. Large result sets will blow context window and degrade LLM reasoning.