UserNotifications-backed macOS notification MCP server
Server has 7 tools with complete input schemas and descriptions. Naming follows verb_noun convention (notify_send, notify_withdraw, etc.). Descriptions are present but brief (avg ~60 chars, below the 194-char baseline). Parameters are typed and described, but lack constraints (enums, ranges, formats). Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance. Tools are well-scoped (single responsibility), but composition could be stronger, no batch operations despite multiple write tools.
Check the current notification authorization status
Configure quiet hours for notifications
List all currently delivered notifications and recent user actions
Send a simple macOS notification
Send a macOS notification with interactive actions
Set or clear the application dock badge
Withdraw a previously sent notification
Output schemas not documented. LLMs cannot predict response structure for any tool. notify_list_delivered and notify_check_authorization lack visible return type definitions.
Parameter constraints missing. 'sound' accepts free-form strings (should enumerate valid macOS sounds). 'start'/'end' in notify_configure_quiet_hours lack format specification (HH:MM not enforced). No min/max for numeric fields.
Descriptions are brief (avg 60 chars vs 194-char baseline). notify_list_delivered (50 chars), notify_check_authorization (55 chars), notify_configure_quiet_hours (50 chars) lack context for when/why to call them. No dependency hints (e.g., 'Call notify_check_authorization first to verify permissions').
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No error handling guidance. Tools return success/failure but do not guide LLM on recovery. E.g., if notify_send fails due to missing authorization, no suggestion to call notify_check_authorization or request user permission.
No confirmation/dry-run for destructive operations. notify_withdraw and notify_configure_quiet_hours modify state without confirmation. Agents cannot preview changes before committing.