Sponsored by Deepsite.site

Apple Notes Mcp

Created By
disco-troopera month ago
Content

apple-notes-mcp

MCP server for Apple Notes with semantic search and CRUD operations. Claude searches, reads, creates, updates, and manages your Apple Notes through natural language.

Features

  • Semantic Search - Find notes by meaning, not keywords
  • Hybrid Search - Combine vector and keyword search for better results
  • Full CRUD - Create, read, update, delete, and move notes
  • Incremental Indexing - Re-embed only changed notes
  • Dual Embedding Support - Local HuggingFace or OpenRouter API
  • Claude Code Integration - Works with Claude Code CLI

Requirements

  • macOS (uses Apple Notes via JXA)
  • Bun runtime
  • Apple Notes app with notes

Installation

npm install -g @disco_trooper/apple-notes-mcp

From source

git clone https://github.com/disco-trooper/apple-notes-mcp.git
cd apple-notes-mcp
bun install

Quick Start

Run the setup wizard:

bun run setup

The wizard:

  1. Chooses your embedding provider (local or OpenRouter)
  2. Configures API keys if needed
  3. Sets auto-indexing preferences
  4. Adds to Claude Code configuration
  5. Indexes your notes

Configuration

Store configuration in .env:

VariableDescriptionDefault
OPENROUTER_API_KEYOpenRouter API key (enables cloud embeddings)-
EMBEDDING_MODELModel name (local or OpenRouter)Xenova/multilingual-e5-small
EMBEDDING_DIMSEmbedding dimensions4096
READONLY_MODEBlock all write operationsfalse
INDEX_TTLAuto-reindex interval in seconds-
DEBUGEnable debug loggingfalse

Embedding Providers

Local (default): Uses HuggingFace Transformers with Xenova/multilingual-e5-small. Free, runs locally, ~200MB download.

OpenRouter: Uses cloud API. Fast, requires no local resources, needs API key from openrouter.ai.

See docs/models.md for model comparison.

Tools

Search & Discovery

search-notes

Search notes with hybrid vector + fulltext search.

query: "meeting notes from last week"
folder: "Work"           # optional, filter by folder
limit: 10                 # default: 20
mode: "hybrid"            # hybrid, keyword, or semantic
include_content: false    # include full content vs preview

list-notes

Count indexed notes.

list-folders

List all Apple Notes folders.

get-note

Get a note's full content by title.

title: "My Note"          # or "Work/My Note" for disambiguation

Indexing

index-notes

Index all notes for semantic search.

mode: "incremental"       # incremental (default) or full
force: false              # force reindex even if TTL hasn't expired

reindex-note

Re-index a single note after manual edits.

title: "My Note"

CRUD Operations

create-note

Create a note in Apple Notes.

title: "New Note"
content: "# Heading\n\nMarkdown content..."
folder: "Work"            # optional, defaults to Notes

update-note

Update an existing note.

title: "My Note"
content: "Updated markdown content..."
reindex: true             # re-embed after update (default: true)

delete-note

Delete a note (requires confirmation).

title: "My Note"
confirm: true             # must be true to delete

move-note

Move a note to another folder.

title: "My Note"
folder: "Archive"

Claude Code Setup

Automatic (via setup wizard)

Run bun run setup and select "Add to Claude Code configuration".

Manual

Add to ~/.claude.json:

{
  "mcpServers": {
    "apple-notes": {
      "command": "bun",
      "args": ["run", "/path/to/apple-notes-mcp/src/index.ts"],
      "env": {}
    }
  }
}

Usage Examples

After setup, use natural language with Claude:

  • "Search my notes for project ideas"
  • "Create a note called 'Meeting Notes' in the Work folder"
  • "What's in my note about vacation plans?"
  • "Move the 'Old Project' note to Archive"
  • "Index my notes" (after adding notes in Apple Notes)

Troubleshooting

"Note not found"

Use full path format Folder/Note Title when multiple notes share the same name.

Local embeddings download the model on first use (~200MB). Subsequent searches run fast.

"READONLY_MODE is enabled"

Set READONLY_MODE=false in .env to enable write operations.

Run index-notes to update the search index. Use mode: full if incremental misses changes.

JXA errors

Ensure Apple Notes runs and contains notes. Grant automation permissions when prompted.

Development

# Type check
bun run check

# Run with debug logging
DEBUG=true bun run start

# Watch mode
bun run dev

Contributing

PRs welcome! Please:

  • Run bun run check before submitting
  • Add tests for new functionality
  • Update documentation as needed

License

MIT

Server Config

{
  "mcpServers": {
    "apple-notes": {
      "command": "npx",
      "args": [
        "-y",
        "@disco_trooper/apple-notes-mcp"
      ],
      "env": {
        "EMBEDDING_PROVIDER": "local",
        "EMBEDDING_MODEL": "Xenova/all-MiniLM-L6-v2"
      }
    }
  }
}
Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
Serper MCP ServerA Serper MCP Server
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Amap Maps高德地图官方 MCP Server
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
CursorThe AI Code Editor
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
ChatWiseThe second fastest AI chatbot™
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
DeepChatYour AI Partner on Desktop
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
WindsurfThe new purpose-built IDE to harness magic
Tavily Mcp
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Playwright McpPlaywright MCP server
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code