Drive Reminders, Calendar, Notes, Mail, Messages, and Contacts on macOS from an AI agent or the shell. MCP server, agent skill, or CLI.
Server defines 9 tools with complete input schemas and descriptions. Naming follows verb_noun pattern (reminders_tasks, calendar_events, etc.), though compound names like 'reminders_tasks' and 'calendar_events' are less action-oriented than 'get_reminders' or 'create_calendar_event'. All tools have descriptions (10-100 chars), but most are generic action summaries lacking context on WHEN to use them or what they return. Schemas are well-structured with typed parameters and enums for actions, but output schemas are not documented in the visible code. Error handling and recovery guidance are absent. No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinctions.
Read available calendars
Manage calendar events with actions: read, create, update, delete
Manage contacts with actions: read, search, create, update, delete
Manage mail messages with actions: read, create, update, delete
Manage messages with actions: read, create
Manage notes folders with actions: read, create
Manage notes with actions: read, create, update, delete
Manage reminder lists with actions: read, create, update, delete
Tool names use compound noun pattern (reminders_tasks, calendar_events) rather than action verbs (get_reminders, create_calendar_event). LLMs infer intent from verb-first names; compound nouns require reading descriptions to disambiguate.
Descriptions are generic action summaries (e.g., 'Manage reminders with actions: read, create, update, delete') lacking context on WHEN to use each tool, what it returns, or dependencies. Baseline for A+ tools is 50-200 chars with explicit purpose and use case.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
Manage reminders with actions: read, create, update, delete
Output schemas are not documented in visible code. LLMs cannot plan downstream tool calls or extract required fields without knowing what each tool returns. Baseline: 100% of A+ tools document return types.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear read/write distinctions. calendar_calendars is read-only; reminders_tasks, mail_messages, contacts_people are destructive. Annotations enable agents to reason about safety and retry logic.
Error handling and recovery guidance absent. No tool documents what errors can occur, whether they are retryable, or what the LLM should do next. Baseline: error responses must guide recovery (e.g., 'User not found. Try search_users() first.').