safe-apple-notes-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| APPLE_NOTES_MCP_E2E | No | Set to '1' to run the real-Notes.app smoke test. | |
| APPLE_NOTES_MCP_TIMEOUT_MS | No | Timeout for each osascript call, in milliseconds. | 30000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_foldersA | List every Notes.app folder across every account. |
| list_notesA | List notes, most recently modified first. Optionally restrict to one folder. Password-protected notes are skipped. Limit defaults to 50, max 200. |
| search_notesA | Case-insensitive search over note title and plaintext body. Password-protected notes are skipped. Limit defaults to 20, max 100. |
| get_noteA | Fetch one note by id or by exact title, rendered as markdown, plaintext, or raw html. Exactly one of id or title must be given. A title match is case-insensitive; if it matches more than one note, the tool reports the candidates instead of guessing. Fails with a clear error if the note is password protected. |
| create_noteA | Create a new note from a plain-text body. Each line becomes its own paragraph; the title is rendered as a heading. |
| append_to_noteA | Append plain text to an existing note's body. Never replaces existing content. Fails with a clear error if the note is password protected. |
| delete_noteA | Delete one note by id. Notes.app moves it to Recently Deleted, where it stays recoverable for 30 days — this never permanently destroys it. There is no batch or title-based variant. |
| update_noteA | Replace an existing note's body, and optionally its title. Unlike append_to_note, this overwrites the note's existing content; the previous body is returned as undo material. Fails with a clear error if the note is password protected. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a distinct action: listing folders, listing notes, searching, fetching, creating, appending, deleting, and updating. Even the closely related append_to_note and update_note are clearly separated by replace vs. non-destructive append semantics.
All tool names follow a consistent verb_noun pattern in snake_case: list_, search_, get_, create_, append_to_, delete_, update_. The naming is predictable and makes the intent of each tool immediately clear.
Eight tools is well-scoped for an Apple Notes MCP server. The set covers the core note lifecycle plus listing and searching without unnecessary redundancy or bloat.
The core note lifecycle is well covered: create, read, update, append, delete, list, and search. Minor gaps exist around folder management, such as no create/move/restore operations, but these do not block primary note workflows.