An MCP server for secure, read-only access to Apple Notes with guarded write operations requiring multi-factor authorization.
Strong naming conventions (verb_noun pattern: list_, search_, read_, plan_, apply_, rollback_). All 9 tools have descriptions (avg 95 chars, within 10-1024 range). Input schemas present with typed parameters and descriptions. However, output schemas are not documented in the visible code, LLMs cannot predict return structure. Error handling is mentioned in descriptions but recovery guidance is minimal. Security model is sophisticated (snapshot-based authorization, arm files) but not exposed as tool annotations (readOnlyHint/destructiveHint). Tool composition is excellent: snapshot→plan→apply pattern prevents accidental mutations. Pagination implemented (limit/offset in personal_notes_inventory). No secrets in parameters.
Execute a planned batch of note moves after authorization. Requires a valid arm file created by arm-moves.mjs.
Paginated inventory of notes in an Apple Notes account, with optional folder filtering.
List all Apple Notes accounts available on this Mac.
List all folders in an Apple Notes account, with optional filtering by parent folder.
Plan a batch of note move operations within an Apple Notes account. Returns a plan requiring review and authorization before execution.
Read plaintext content from multiple notes in a single batch operation.
Rollback a previously executed batch of note moves to their original locations. Requires authorization via arm file.
Output schemas not documented. LLMs cannot predict return structure (fields, types, pagination format). Visible code shows constants for limits but no explicit response schema definitions.
Tool annotations missing. Destructive tools (personal_notes_apply_batch, personal_notes_rollback_batch) and read-only tools lack destructiveHint/readOnlyHint/idempotentHint annotations. LLMs cannot infer safety properties.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Search for notes by plaintext content across an Apple Notes account.
Create a snapshot of note metadata and content for use in planning write operations.
Error recovery guidance incomplete. Descriptions mention 'requires authorization' and 'arm file' but do not explain what to do if authorization fails, arm file is missing, or plan expires. No actionable error messages visible.
Parameter constraints not fully specified in descriptions. personal_notes_plan_moves accepts 'moves' array (max 100) and 'createFolders' array (max 20), but descriptions do not state these limits or what happens if exceeded.
Pagination return format unclear. personal_notes_inventory accepts limit/offset but response structure (total count, next_cursor, has_more) is not documented. LLMs cannot determine when to stop paginating.