mcp-apple-notes
This server allows you to manage Apple Notes on macOS through an LLM agent, enabling CRUD operations and search. Here's what you can do:
List notes: Retrieve note IDs, titles, and modification dates (no body), with an optional limit (default 50, max 200). Excludes Recently Deleted.
Read a note: Fetch full content by ID, returned in Markdown.
Create a note: Create a new note from Markdown, where the first line becomes the title. Optionally specify a folder (defaults to "Notes").
Update a note: Replace all content of an existing note by ID with new Markdown; the first line becomes the new title.
Delete a note: Move a note to Recently Deleted by ID, recoverable for ~30 days.
Search notes: Case-insensitive substring search across titles and content, with an optional limit (default 50, max 200). Excludes Recently Deleted.
Provides tools to list, read, create, update, delete, and search notes in Apple Notes on macOS, with Markdown content conversion and support for folders and iCloud accounts.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-apple-notes search my notes for meeting notes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-apple-notes
An MCP (Model Context Protocol) server that exposes Notes.app on macOS as tools for LLM agents — list, read, create, update, delete, and search notes.
Requirements
macOS (uses JXA/
osascriptto automate Notes.app — there's no other public API for Notes)Node.js 18+
A single iCloud account in Notes.app (multi-account is not supported)
Related MCP server: mcp-apple-notes
Install
npm install
npm run buildTools
Tool | Description |
| List notes ( |
| Read a note's full content (Markdown) by |
| Create a note from Markdown |
| Replace a note's entire |
| Delete a note by |
| Case-insensitive substring search over title + content. Optional |
Notes:
Content is exchanged as Markdown, not HTML. Notes.app stores bodies as HTML internally; this server converts both ways.
Images embedded in a note's body are replaced with a
[imagen adjunta]placeholder instead of being inlined as base64 — attachments are out of scope."Recently Deleted" is excluded from
list_notes/search_notesresults.
Running it from Claude Desktop
Add it to your Claude Desktop MCP config with a local path (this package isn't published to npm):
{
"mcpServers": {
"apple-notes": {
"command": "node",
"args": ["/absolute/path/to/mcp-apple-notes/dist/index.js"]
}
}
}The first call that touches Notes.app triggers a macOS Automation permission prompt. If it's denied or the process runs non-interactively, grant access manually in System Settings → Privacy & Security → Automation, then retry.
Development
npm run build # compile TypeScript (tsc) to dist/
npm test # run unit tests (node --test) against dist/**/*.test.js
npm start # run the compiled server directly (stdio transport)Only pure logic (Markdown↔HTML conversion, error formatting) has automated tests. Anything that touches Notes.app itself is verified manually, since it requires real macOS automation and mutates real data.
See CLAUDE.md for architecture notes.
License
GNU AGPLv3 — see LICENSE for details.
Available Tools
6 toolscreate_noteA
Crea una nueva nota en Notes.app. El contenido es Markdown; la primera línea se convierte en el título de la nota (así es como Notes.app deriva el título del cuerpo).
Inputs: content (required), folder.
delete_noteA
Elimina una nota de Notes.app. Igual que borrar desde la UI: la nota se mueve a 'Recently Deleted' y es recuperable ahí por ~30 días, no se borra instantáneamente.
Inputs: id (required).
list_notesA
Lista las notas de Notes.app (id, título y fecha de modificación), sin el contenido completo. No incluye notas en Recently Deleted.
Inputs: limit.
read_noteA
Lee el contenido completo de una nota de Notes.app por su id, en formato Markdown.
Inputs: id (required).
search_notesA
Busca notas por texto (case-insensitive, substring) en título y contenido. No incluye notas en Recently Deleted.
Inputs: query (required), limit.
update_noteA
Reemplaza el contenido completo de una nota existente. El contenido es Markdown; la primera línea se convierte en el título.
Inputs: id (required), content (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool has a clear and distinct purpose: create, delete, list, read, search, and update notes. No overlapping functionalities.
All tool names follow a consistent verb_noun pattern (e.g., create_note, list_notes), with only a minor variation in pluralization (list_notes vs others singular).
6 tools is well-scoped for a note-taking server, covering basic CRUD operations plus search without unnecessary redundancy.
Covers all core note operations (create, read, update, delete, list, search). Missing a tool to restore from 'Recently Deleted' or manage folders, but not critical for basic usage.
Maintenance
Related MCP Connectors
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
Agent-native notes, tasks, dev-docs, vaults, sync & handoffs. MCP + OpenAPI dual surface.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI assistants like Claude to access and manipulate Apple Notes on macOS, allowing for retrieving, creating, and managing notes through natural language interactions.84MIT
- AlicenseAqualityDmaintenanceMCP server for Apple Notes with semantic search (on-device embeddings via all-MiniLM-L6-v2), full-text search, complete CRUD operations, folder management, and fuzzy title matching. 10 tools. Runs fully locally on macOS — no API keys required.1020 npm14MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server for Apple Notes that enables semantic search and full CRUD operations through natural language.38 npm7MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for macOS that enables creating, reading, and searching Apple Notes programmatically through tools like find, get by title or ID, and create.4,261 npmMIT