Governed MCP runtime for the Apple ecosystem, available on macOS for Notes, Mail, Calendar, Reminders, Shortcuts, and more.
AirMCP demonstrates consistent naming conventions and reasonable parameter documentation across 29 tools, but exhibits moderate gaps in output schema documentation and error handling guidance. All tools follow verb_noun patterns (list_calendars, calendar_create_event, health_today_steps, etc.). Input schemas are present and properly typed with descriptions for most parameters. However, output schemas are not documented in the provided source, only tool descriptions and input parameters are visible. Error handling is minimal; there are no recovery guides or categorized error responses. The server is STDIO-only, which caps protocol readiness at 50. Definition quality places this in the 'fair' range (C grade, 60-69) due to missing output documentation and error guidance.
Create a new calendar event
List events within a date range, optionally filtered by calendar name
Read full details of a calendar event by its ID
Search events by text query within a date range
Update an existing calendar event by its ID
Create a new contact with name and optional details.
Permanently delete a contact by ID.
Output schemas not documented. Tool descriptions and input parameters are visible, but return types and response field structures are not documented in the provided source. LLMs cannot determine what fields to expect or plan downstream tool chains.
No error handling guidance. Tools declare READ_ONLY, WRITE, and DESTRUCTIVE risks but provide no recovery instructions or error categorization. When a tool fails, LLMs cannot determine whether to retry, ask the user, or abandon the plan.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
List all contact groups.
Read full details of a single contact by ID.
Update an existing contact's fields by ID.
Check the current location authorization status.
Get medication adherence percentage over a given number of days (default 7)
List current medications (names only — no dosage details for privacy)
Get average resting heart rate over the last 7 days (bpm)
Get total sleep hours for a given date (defaults to last night)
Get a combined health dashboard with aggregated steps, heart rate, sleep, active energy, and exercise minutes
Get aggregated step count for today
List all calendars available on the device
List contacts with pagination (limit/offset).
List all reminder lists with their reminder counts
List reminders, optionally filtered by list name and completion status
Get the device's current GPS location (latitude, longitude, altitude, accuracy).
Mark a reminder as completed or incomplete
Create a new reminder
Read full details of a reminder by its ID
Update an existing reminder by its ID
Search contacts by name, organization, email, or phone.
Search reminders by text query across title and notes
List all events scheduled for today
Destructive operations lack confirmation or dry-run support. contacts_delete and reminders_update (with clearDueDate) are irreversible but do not support a confirmation step. Agents may accidentally delete or modify data without explicit user consent.
Tool descriptions are brief (mostly 30-80 characters). While compliant with the 10-1024 char baseline, most fall into the lower quartile (p10=34) and lack context on when to use the tool vs. similar alternatives. E.g., 'List all calendars available on the device' could specify what data structure is returned or whether it includes event counts.
Ambiguous parameter types in some read operations. 'contacts_read' and 'calendar_read_event' both accept an 'id' string but do not explain how IDs are formatted, where to obtain them, or whether human-readable names are also accepted. This forces extra lookup calls.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Although risk levels are declared (READ_ONLY, WRITE, DESTRUCTIVE), these are not present in the tool registration. Without formal annotations, LLMs cannot reliably infer safety properties during planning.
Limited pagination documentation. 'calendar_list_events' and 'list_reminders' accept limit and offset but do not document the default limit, maximum page size, or whether a total count is returned. Without this, LLMs cannot plan pagination strategies efficiently.