notesMCP
Gives read/write access to Apple Notes, allowing agents to list folders and notes, retrieve and search notes, and create, update, or delete notes.
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., "@notesMCPcreate a note titled Groceries with milk, eggs, and bread"
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.
notesMCP
An MCP server that gives Claude read/write access to Apple Notes on macOS.
Apple Notes has no public API, so this shells out to osascript -l JavaScript
(JXA) to drive Notes.app directly — the same approach every other Apple Notes
integration uses.
Tools
Tool | Description |
| List all Notes folders |
| List notes, optionally scoped to a folder |
| Get a note's full body by id or exact title |
| Search titles/bodies for a substring |
| Create a note (title, body, optional folder) |
| Replace or append to a note's body |
| Delete a note (moves to "Recently Deleted") |
Related MCP server: Apple Notes MCP Server
Prerequisites
macOS with Notes.app
Node.js 18+
The first time a tool runs, macOS will prompt for permission to let your terminal/Claude Code automate Notes — grant it in System Settings → Privacy & Security → Automation.
Install
git clone https://github.com/niranjhan-si/notesMCP.git
cd notesMCP
npm installRegister with Claude Code
claude mcp add --scope user notesmcp -- node "$(pwd)/src/index.js"--scope user makes it available in every Claude Code session, not just this
project. Verify with claude mcp list.
Test
npm testCreates a real throwaway note, runs it through create/get/search/update/list/delete, then leaves it in "Recently Deleted" (Notes.app's normal soft-delete).
Error handling
Every failure returns a specific message instead of a generic crash: permission not granted, Notes.app not reachable, note/folder not found, a password-locked note, or a timeout on a very large library.
Errors fall into two kinds:
User-fixable (permission, not found, locked note) — the message tells you what to do; nothing more happens.
Everything else (an actual bug in this tool) — the message includes a link that opens a pre-filled GitHub issue. Nothing is ever sent automatically; you review and submit it yourself, or not.
Notes on the design
Plain Node.js, no build step — the whole server is three files (
notes.js,errors.js,index.js).Notes are matched by
id(preferred) or exact title. Duplicate titles resolve to the first match; that's a known limitation, not a bug.delete_notemirrors Notes.app's own behavior: it moves the note to "Recently Deleted" rather than purging it immediately.osascript's default output mangles JSON-looking strings (see build log), so every JXA call runs with
-s sand gets parsed twice.
See docs/BUILD_LOG.md for how this was built.
This server cannot be deployed
Maintenance
Related MCP Connectors
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Search, read, create and edit your Memol notes from Claude. Team note-taking with AI search.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Personal CRM for Claude. Contacts live as plain-text files in your own Google Drive.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables interaction with Apple Notes on macOS through AppleScript, allowing users to list, search, read, create, update, and delete notes across accounts and folders.71-
- AlicenseAqualityDmaintenanceEnables AI assistants to read, create, search, update, and delete Apple Notes through natural language conversation, using JXA to communicate directly with the Notes app.82,008 npm28MIT
- AlicenseAqualityDmaintenanceEnables AI clients to search, read, create, update, move, and delete Apple Notes on macOS via AppleScript automation.102,008 npm2MIT
- FlicenseNot gradedqualityBmaintenanceEnables Claude to read and analyze notes from the macOS Notes app, with configurable access control via allowlist/denylist modes.5 npm-