Command-line interface and MCP server for Apple Passwords (iCloud Keychain) on macOS
Six tools with basic descriptions and partial schemas. Tool names follow verb_noun convention (status, start_pairing, submit_pin, get_otp, save_password, get_password), which is good. However, descriptions are minimal (10-60 chars), parameter descriptions are sparse or missing, and output schemas are not documented. No error handling guidance, no parameter constraints (enums, ranges), and no indication of idempotency or retry safety. The server exposes sensitive operations (save_password, get_password) without documented permission gates or confirmation patterns. Parameter types are present but descriptions are often absent or trivial.
The current one-time code(s) for a site.
Plaintext password(s) for a site (enabled by --allow-passwords).
Create or update a credential in Apple Passwords.
Begin pairing: macOS displays a 6-digit PIN on the user's screen.
Daemon, browser-extension, and pairing state.
Complete pairing with the PIN the user read from the macOS dialog.
Descriptions are too short (10-60 chars) to guide LLM tool selection. Baseline is 194 chars. Missing context on WHEN to use each tool and WHAT it returns.
Output schemas are not documented. LLMs cannot plan downstream calls or extract required fields (e.g., what does status return? What fields does get_password include?).
Sensitive operations (save_password, get_password) lack permission gates, confirmation patterns, or dry-run support. No documented access control or audit trail.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Parameter descriptions are missing or trivial. 'pin' is described as 'The 6-digit PIN displayed by macOS' (good), but 'url' in get_otp and save_password lacks format guidance (is it a domain, full URL, regex pattern?).
No error handling guidance. If pairing fails, if a URL is not found, or if password retrieval is denied, what should the LLM do? No recovery hints or error classification.