A collection of bash utility scripts for system management, web app installation, and hardware configuration on Linux systems (subfracOS)
This bash-based MCP server has severe definition quality gaps. While 19 tools are registered with names and basic descriptions, the vast majority lack proper input schemas, parameter descriptions, and output documentation. Tool names use inconsistent prefixes (subfrac-, fix-, limine-) and many lack clear action verbs. Descriptions are present but often vague (e.g., 'Handle zoom:// and zoommtg:// URLs' without explaining when to use it vs alternatives). Most critically, input schemas are either empty objects {} or minimally specified, parameters lack type constraints, enums, ranges, or validation guidance. No tool documents its output schema. Error handling is absent from descriptions. Security-sensitive tools (fix-apple-t2, limine-snapper) lack permission gates or audit trail guidance. This server would not pass code review for production use.
Detect MacBook models that need SPI keyboard modules and install support
Fix NVMe suspend issues on MacBook models to prevent NVMe drives from failing to wake from sleep
Detect T2 MacBook models and install support items including kernel, audio config, and firmware
Configure Limine bootloader with Snapper snapshot support and system configuration
Monitor battery level and send notifications if battery is low (designed to be run by systemd timer every 30 seconds)
Returns the battery percentage remaining as an integer
Adjust Apple Display Brightness by passing +5000 or -5000 (or any range from 0-60000)
Switch to the next available audio output device
Most tools with parameters lack proper input schema definitions. Parameters like 'brightness_adjustment', 'window_pattern', 'url_and_flags' have descriptions but no type constraints, enums, ranges, or validation rules. LLMs cannot infer valid values.
No tool documents its output schema or return type. LLMs cannot plan downstream tool calls or extract required fields (e.g., does subfrac-battery-remaining return an integer or a string?).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Execute first-run setup tasks including battery monitor, firewall, DNS resolver, and theme configuration
Check if any of the specified commands are missing from the system
Check if all specified commands are present on the system
Launch or focus a web application window matching a pattern, with optional URL and flags
Launch a web application in the default browser with specified URL
Copy and sync icon files and .desktop declarations for applications
Kill and restart an application by name
Handle mailto: URLs and launch HEY web application
Handle zoom:// and zoommtg:// URLs and launch Zoom web application
Create a new web app that can be started with the app launcher
Remove one or more web apps from the system
Destructive and security-sensitive tools (subfrac-webapp-remove, fix-apple-t2, fix-apple-suspend-nvme, limine-snapper) lack confirmation steps, permission gates, or audit trail guidance. An agent could delete all web apps or modify bootloader without safeguards.
Tool naming is inconsistent and lacks clear action verbs. Prefixes vary (subfrac-, fix-, limine-), and names like 'subfrac-cmd-apple-display-brightness' are verbose. Names like 'fix-apple-t2' are vague, does it detect, install, or configure? LLMs struggle to disambiguate.
Descriptions are present but often vague and under 50 characters. E.g., 'Handle zoom:// and zoommtg:// URLs and launch Zoom web application' lacks context on when to use it vs other tools, what it returns, or error cases. Baseline for A+ tools is 50-200 chars with clear WHAT/WHEN/RETURN guidance.