MCP server providing AI-native awareness and control of Bazzite OS
Server has 7 tools with mixed quality. Tool names follow verb_noun convention (audit, docs, packages, ujust, manage_distrobox, manage_podman, manage_quadlet), which is good. However, descriptions are present but generic (10-50 chars for most), and critical parameter descriptions are missing or incomplete. Three tools (audit, docs, packages, ujust) lack visible input schemas in the provided source. manage_distrobox, manage_podman, and manage_quadlet have partial schemas visible but parameter descriptions are minimal. No output schemas documented. Error handling guidance is absent. Security-critical tools (packages, ujust, manage_podman) lack permission gates or audit trail integration despite being WRITE-risk operations.
Query and manage audit logs of tool executions
Search and retrieve Bazzite documentation and knowledge resources
Manage distrobox containers: create, list, enter, stop, remove, exec, or export apps.
Run podman container operations with dangerous flag blocking.
Manage Quadlet units for persistent containerized services.
Manage system packages using rpm-ostree, flatpak, brew, and other package managers
Execute ujust recipes for Bazzite system tasks
Four tools (audit, docs, packages, ujust) have no visible input schemas in source code. Cannot verify parameter types, constraints, or descriptions.
Tool descriptions are too short (40-65 chars) to guide LLM selection. Baseline for A+ tools is 194 chars. E.g., 'Query and manage audit logs' lacks context on when to use audit vs other tools, what it returns, or prerequisites.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. E.g., does audit.query() return action_id, timestamp, rollback_command? Unknown.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
WRITE-risk tools (packages, ujust, manage_podman, manage_quadlet) lack error handling guidance, confirmation steps, or dry-run support. No recovery paths documented. Agents cannot self-correct on failure.
Parameter descriptions in manage_distrobox, manage_podman, manage_quadlet are minimal (5-20 chars). E.g., 'Container image to use' lacks format guidance (full URI vs short name?), valid values, or examples. LLMs will guess.