Notes MCP Server
Allows reading and analyzing notes from the macOS Notes app, including listing folders and notes, fetching note content, and searching notes.
Click on "Install 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., "@Notes MCP Serversearch my notes for "project plan""
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.
Notes MCP Server
An MCP (Model Context Protocol) server that lets Claude read and analyze notes from the macOS Notes app, with fully configurable access control.
Features
list_folders— list all accessible folder nameslist_notes— list notes (title, folder, modified date) with optional folder filterget_note— fetch the full content of a specific note by title (partial match)search_notes— search note bodies for a keyword and get matching titles + snippets
All access is controlled from a single file: config.json. No code changes
are needed to change which folders or notes Claude can see.
Related MCP server: Apple Notes MCP Server
Requirements
macOS (this server relies on AppleScript, which only works on macOS)
Node.js 18 or later
The Notes app, with at least one note in it
Setup
Install dependencies and build:
cd notes-mcp-server npm install npm run buildConfigure access by editing
config.json(see "Configuration" below). You do not need to rebuild after editingconfig.json— it is read at runtime.Find the absolute path to the built server. From inside the project folder, run:
pwdYou'll use
<that path>/build/index.jsin the next step.Register the server with Claude Desktop. Open (or create) this file:
~/Library/Application Support/Claude/claude_desktop_config.jsonAdd an entry like this (replace the path with your actual path from step 3):
{ "mcpServers": { "notes": { "command": "node", "args": ["/Users/yourname/notes-mcp-server/build/index.js"] } } }Restart Claude Desktop completely (Cmd+Q, then reopen). You should see a tools icon in the chat input indicating the server connected successfully.
Grant automation permission. The first time a tool runs, macOS will ask for permission to let the server control the Notes app. Approve it. If the prompt doesn't appear, go to System Settings → Privacy & Security → Automation and enable access manually.
Configuration (config.json)
Access modes
The access.mode field controls how restrictions are applied:
Mode | Behavior |
| No restrictions — every folder and note is accessible. |
| ONLY folders/notes listed in |
| Everything is visible EXCEPT folders/notes listed in |
Example: only allow two folders
"access": {
"mode": "allowlist",
"allowedFolders": ["Work", "Journal"],
"allowedNotes": [],
"blockedFolders": [],
"blockedNotes": []
}Example: allow everything except sensitive folders
"access": {
"mode": "denylist",
"allowedFolders": [],
"allowedNotes": [],
"blockedFolders": ["Private", "Passwords"],
"blockedNotes": ["Bank Details", "Secret"]
}Note title matching for allowedNotes / blockedNotes is partial and
case-insensitive by default (controlled by behavior.caseSensitiveSearch).
For example, "Secret" in blockedNotes will block any note whose title
contains the word "Secret".
Other settings
limits.maxNotesPerListing— safety cap forlist_notesresultslimits.maxSearchResults— safety cap forsearch_notesresultslimits.maxNoteBodyLength— truncates very long notes (0 = no limit)behavior.includeSnippetsInSearch— show text previews in search resultsbehavior.snippetLength— how many characters of context to show per snippetbehavior.caseSensitiveSearch— whether keyword/title matching is case-sensitive
After editing config.json, just restart Claude Desktop (or reconnect the
server) for changes to take effect — no rebuild required.
Troubleshooting
"AppleScript execution failed" / "Not authorized" — grant Automation permission in System Settings as described in step 6 above.
Notes app must be running (or macOS will launch it automatically the first time a tool is called — this is normal and may cause a short delay).
Tool returns "No accessible note found" — check that the note isn't blocked by your
config.jsonrules, and that the title spelling is close enough for a partial match.
Project Structure
notes-mcp-server/
├── config.json ← Edit this to control access (folders/notes)
├── package.json
├── tsconfig.json
└── src/
├── index.ts ← MCP server entry point, tool definitions
├── config.ts ← Loads & validates config.json, access-control logic
├── applescript.ts ← Safe AppleScript execution helper
└── notes-service.ts ← Builds AppleScript queries, parses Notes dataThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/misdarmanto/apple-notes-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server