ACMS is a Model Context Protocol (MCP) server that provides programmatic access to Apple's container CLI tool on macOS.
ACMS provides 7 tools with explicit fastmcp registration, each with a description and input schema. However, quality is uneven: tool names follow verb_noun convention and are reasonably clear, but parameter descriptions are often generic and lack actionable constraints. Output schemas are completely undocumented, there is no visible specification of what each tool returns, only what it accepts. Error handling is absent from the visible code; no guidance on retryability, user-fixable vs fatal errors, or recovery paths. Parameter defaults exist but lack documentation of why they were chosen. The server targets Apple's container CLI, a niche domain, but the tool interface does not fully leverage Arcade patterns for clarity and LLM reasoning.
Remove the BuildKit builder container
Start the BuildKit builder container
Show the current status of the BuildKit builder
Stop the BuildKit builder
Build an OCI image from a local build context
Authenticate with a registry
Log out of a registry
No output schemas documented for any tool. LLMs cannot plan downstream tool calls or extract results without knowing what fields to expect.
Parameter descriptions lack actionable constraints: no enum values for 'format', 'scheme', 'platform'; no min/max for numeric params (cpus, memory, vsock_port); no regex or length limits for paths/tags.
Destructive operations (acms_builder_delete, acms_container_build) lack confirmation or dry-run support. Agents may delete builder or overwrite images without explicit user approval.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 13 | - | v1 |
Error handling is not visible in tool definitions. No guidance on retryability, user-fixable errors, or recovery paths. Agents cannot self-correct on failures.
Parameter type mismatches: 'memory' is declared as string but lacks format specification. LLMs will pass invalid values like '2' instead of '2048MB'.
Many parameter descriptions fall below 20 characters minimum, violating pattern:tool-description. E.g., 'Build context path' (19 chars), 'Build arguments' (15 chars), 'scheme' description (29 chars).
Tool descriptions are sparse and lack actionable context. E.g., 'Log out of a registry' (38 chars) does not explain side effects or what it returns. 'Stop the BuildKit builder' (27 chars) omits impact on in-flight builds.