Manage Apple Notes with hybrid search, semantic indexing, knowledge-graph discovery, and CRUD tools over MCP.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
The install command below didn't complete successfully in our automated test.
npx -y @disco_trooper/apple-notes-mcpnpm notice npm notice New major version of npm available! 10.1.0 -> 12.0.2 npm notice Changelog: <https://github.com/npm/cli/releases/tag/v12.0.2> npm notice Run `npm install -g npm@12.0.2` to update! npm notice npm ERR! code EBADPLATFORM npm ERR! notsup Unsupported platform for @disco_trooper/apple-notes-mcp@1.8.2: wanted {"os":"darwin"} (current: {"os":"linux"}) npm ERR! notsup Valid os: darwin npm ERR! notsup Actual os: linux npm ERR! A complete log of this run can be found in: /home/user
This is an experimental automated check and can have false negatives โ missing environment variables, a slow cold install, etc. It doesnโt necessarily mean somethingโs wrong. Last checked 6d ago.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Apple Notes MCP.
search-notesHybrid vector + fulltext search.
list-notesList notes with sorting and filtering. Without parameters, shows index statistics.
list-foldersList all Apple Notes folders.
get-noteGet note content by title.
get-tablesExtract structured table data from a note.
index-notesIndex notes for semantic search.
disco-trooper/apple-notes-mcp MCP server exposes Apple Notes operations to an MCP-compatible client. It can retrieve notes by title, list folders, filter and sort note listings, extract table data, and search note content. Search supports keyword, semantic, or hybrid modes, with hybrid search combining vector and full-text results.
The server also provides write operations for creating, editing, deleting, moving, and batch-managing notes. Destructive actions require confirmation, and write operations can trigger best-effort synchronization of the search indexes. A read-only mode is available through configuration when write access should be blocked.
Its discovery features include tag counts, tag-based search, related-note lookup based on tags, links, or similarity, and knowledge-graph export. These features are useful for navigating a note library beyond exact-title or keyword matches.
The project runs on macOS and accesses Apple Notes through JXA, so Apple Notes and its notes must be available on the host machine. It maintains local indexes for search and can split long notes into chunks to improve matching. Incremental indexing reprocesses changed notes instead of rebuilding everything, while a full index can be created for broader long-note coverage.
Embedding generation defaults to the local Xenova/multilingual-e5-small Hugging Face model, which downloads approximately 200 MB and does not require a cloud API key. OpenRouter can be selected for cloud embeddings by providing OPENROUTER_API_KEY. Search results may use a current or stale index depending on the refresh configuration and timeout behavior.
For larger libraries, indexing can run as a background job. The client can start a full or incremental job, inspect its progress, list retained jobs, and request cancellation. Cancellation is cooperative, so partial work may remain.
Install the published npm package and run its apple-notes-mcp command. The first-run wizard selects the embedding provider, configures any needed API key, offers Claude Code integration, and starts indexing. The repository also documents a source setup using Bun with bun install followed by bun run start.
Configuration is stored in ~/.apple-notes-mcp/.env. Relevant settings control the embedding model and dimensions, read-only behavior, index refresh timing, search refresh timeout, background-job retention, embedding batch size, and debug logging. INDEX_TTL is optional; when it is not set, searches use the existing index without automatic refresh. The apple-notes-mcp setup command can be used to reconfigure the installation.
The available MCP tools cover these areas:
search-notes, list-notes, list-folders, get-note, and get-tables.index-notes, reindex-note, purge-index, and the asynchronous index-job tools.create-note, update-note, delete-note, move-note, batch-delete, and batch-move.list-tags, search-by-tag, related-notes, and export-graph.get-note accepts a title and can use a folder-qualified title for disambiguation. get-tables returns rows and formatting information for tables found in a note. purge-index requires confirmation and should be followed by indexing to restore search data.
disco-trooper/apple-notes-mcp MCP server is macOS-specific because it relies on Apple Notes through JXA. The project requires the Bun runtime even when installed from npm. Semantic search depends on an index, so newly changed notes may require automatic refresh, manual reindexing, or a full indexing job before they appear in expected results.
OpenRouter embeddings require the user's API key; the local embedding option avoids that requirement but uses local resources and requires the model download. Index refresh during search is bounded by SEARCH_REFRESH_TIMEOUT_MS; if refresh fails or exceeds that limit, the server can return results from the existing index. Index-job cancellation and post-write index synchronization are best effort rather than transactional guarantees.
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/disco-trooper-apple-notes-mcp)<a href="https://allmcps.com/mcp/disco-trooper-apple-notes-mcp"><img src="https://allmcps.com/api/badge/disco-trooper-apple-notes-mcp?style=directory" alt="Apple Notes MCP on AllMCPs" /></a>