Local-first runtime for controlled Linux host operations with an MCP interface, policy, and auditability.
11 tools with mixed quality. All have descriptions (good), but most lack depth and LLM-optimization guidance. Schemas present but minimal, parameters have types and descriptions, but lack constraints (enums, ranges, patterns). No output schemas documented. Error handling exists but is generic. Tool names follow verb_noun convention (system_info, disk_usage, service_status) but lack clarity on when to use each vs. similar tools. Approval workflow tools (approval_list, approval_get, approval_approve, approval_reject) are well-named but descriptions don't explain the approval lifecycle or prerequisites. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (READ_ONLY vs. WRITE). write_config_file lacks confirmation/dry-run pattern for destructive operations.
Approve a pending tool execution.
Get details of a specific approval.
List pending tool approvals.
Reject a pending tool execution.
Get disk usage information for a specified path.
Get memory and swap usage information.
Correlate a process with its systemd unit.
No output schemas documented. LLMs cannot infer what fields to expect from tool results, forcing them to guess at downstream field names and risk broken tool chains.
write_config_file lacks confirmation/dry-run pattern. Destructive operations should support preview or approval before execution to prevent accidental data loss.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels declared. Annotations help LLMs reason about safety and retry behavior.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2025-06-18+ | v2 |
Get the status of a systemd service.
Retrieve system information including hostname, kernel version, platform, and current user.
Get the top processes by CPU usage.
Write content to a configuration file with approval workflow.
Parameter descriptions lack constraints. 'limit' and 'status' parameters have no min/max or enum values. LLMs may pass invalid values (negative limits, unknown statuses).
Approval workflow descriptions don't explain prerequisites or lifecycle. When should an agent call approval_list vs. approval_get? What states can an approval transition through?