Apple Notes MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_foldersA | List every Apple Notes folder, with its full path and how many notes it holds. This is where folder_ids come from. Folders nest, and two can share a name,
so Returns everything rather than a page: the whole point is to see the shape of the archive, and a folder list is small. |
| list_notesA | List notes as summaries, pinned first, without fetching their bodies. Each entry carries the note_id that get_note and the write tools need, plus the folder it lives in and when it changed. Use get_note to read one. |
| get_noteA | Read one note in full, with its body as Markdown. Checklists come back as "- [x]" / "- [ ]" with their real ticked state, and attachments as "[attachment: type]" placeholders -- the files themselves are not read, so this says an image is there, not what is in it. |
| search_notesA | Search note titles and full note bodies, case-insensitively. The entire archive is searched, not a recent window, so a total of 0 means
the text is genuinely not in any note. Body matches come back with an
excerpt around the hit; each result says whether it matched on |
| create_noteA | Create a note. The first line of
|
| update_noteA | Replace a note's entire body. The first line of This is a whole-note replacement, not an edit -- Apple's scripting interface
offers no way to change part of a note. Anything not in Refuses when the note holds attachments or checklists, because neither can be rebuilt from Markdown. |
| append_to_noteA | Add text to the end of a note, keeping what is already there. The existing note is read from the database and re-sent with the new text on the end, because Notes has no append operation -- so this is a whole-note rewrite underneath, and it refuses on attachments and checklists for the same reason update_note does. |
| move_noteC | Move a note to a different folder. |
| delete_noteA | Move a note to Recently Deleted. Not a purge. Notes keeps it for 30 days and the operator can restore it from the app, which is the only way back -- this server cannot undo it. |
| create_folderB | Create a folder, optionally nested inside another. |
| delete_folderA | Move a folder, and every note in it, to Recently Deleted. Refuses a folder that still has notes unless |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/duanefields/notes-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server