macOS DevOps Toolkit Pro — disk cleanup & system monitoring. CLI for macOS that covers disk cleanup (11 domains) and system monitors (battery, CPU, memory, network). Exposes tools via MCP (Model Context Protocol) for AI chat integration.
mac-toolkit has 11 tools with clear verb-noun naming (mac_analyze, mac_battery, mac_system, etc.) and reasonable descriptions (avg ~120 chars). However, critical gaps undermine quality: most tools lack input parameter descriptions entirely. mac_analyze and mac_clean_preview accept a 'domain' parameter with a description, but mac_battery, mac_system, mac_processes, mac_network, mac_status, mac_docker_compact have empty input schemas ({}). mac_docker_cleanup and mac_clean_batch have parameters with descriptions, but no output schemas are documented anywhere. Error handling is absent, no guidance on what happens if a tool fails or how to recover. The codebase shows sophisticated internal logic (ApprovalEngine, multiple analyzers) but this complexity is not exposed to the LLM via tool definitions. Risk annotations (READ_ONLY, DESTRUCTIVE) are present in metadata but not formalized as toolAnnotations in the MCP schema.
Analyze disk usage across macOS domains (browser caches, dev tools, Docker, Ollama, logs, downloads, etc). Returns structured JSON with size, severity, risk, and per-item details.
Get battery health, cycle count, temperature, voltage, charge status, and time remaining.
Clean multiple domains at once. Only deletes safe_to_delete items. Returns preview by default (dry_run=true). Domains: browser, dev_caches, logs, trash, xcode, ollama, downloads, appsupport.
Preview what would be cleaned (dry-run). Returns list of items with size, risk, and safe_to_delete flag. Never deletes anything.
Backup a Docker container's database. Auto-detects postgres/mysql from image, finds the DB user from env vars, runs pg_dumpall/mysqldump, verifies the dump. Container must be running.
Remove all Docker resources except specified containers and their images/volumes. Returns preview by default (dry_run=true). Set dry_run=false to execute deletions.
Six tools (mac_battery, mac_system, mac_processes, mac_network, mac_status, mac_docker_compact) have empty input schemas ({}).
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract fields without knowing what the response contains. mac_analyze returns 'structured JSON with size, severity, risk, and per-item details' but the schema is not formalized.
No error handling or recovery guidance. Tools do not document what happens on failure (e.g., if a Docker container is not running, if a domain does not exist). LLMs receive no actionable error messages.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Analyze Docker.raw virtual disk size vs actual usage. Returns current size, actual usage, recommended disk limit, and step-by-step instructions to reclaim space via Docker Desktop Settings.
Get network status: WiFi SSID/signal, bytes sent/received, active connections, online check.
Get top 10 processes by CPU and top 10 by memory usage, plus memory pressure.
List all registered analyzer domains with their risk levels (safe/warn/danger).
Get system info: CPU usage, memory/swap stats, thermal state, hardware model and chip.
Risk annotations (READ_ONLY, DESTRUCTIVE) are metadata but not formalized as MCP toolAnnotations (readOnlyHint, destructiveHint). LLMs cannot reliably infer which tools are safe to retry or have side effects.
mac_docker_cleanup and mac_clean_batch accept a 'dry_run' boolean parameter with default true, but no confirmation or approval workflow is exposed via MCP. The internal ApprovalEngine (seen in approval.go) is not accessible to the LLM.