@cardmagic/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., "@@cardmagic/notessearch my notes about project ideas"
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.
@cardmagic/notes
CLI and MCP server to search and browse Apple Notes with fuzzy matching.
Features
Fuzzy search - Find notes even with typos using MiniSearch
Full-text search - Searches note titles, snippets, and body content
Create & delete notes - Manage notes via AppleScript automation
PDF text extraction - Automatically extracts and indexes text from PDF attachments
Folder browsing - List and filter notes by folder
Fast indexing - SQLite FTS5 + MiniSearch for quick searches across thousands of notes
Dual mode - Use as CLI tool or MCP server for Claude Code integration
Related MCP server: mcp-apple-notes
Installation
Homebrew
brew install cardmagic/tap/notesnpm
npm install -g @cardmagic/notesClaude Code Plugin (recommended)
Install as a plugin to get skills (auto-invoked) and slash commands:
# Add the marketplace
claude plugin marketplace add cardmagic/ai-marketplace
# Install the plugin
claude plugin install notes@cardmagicThis gives you:
Skill: Claude automatically searches notes when you ask about notes
Slash commands:
/notes:search,/notes:recent,/notes:folders, and more
MCP Server
For direct MCP tool access without the plugin:
claude mcp add --transport stdio notes -- npx -y @cardmagic/notes --mcpOr install globally first:
npm install -g @cardmagic/notes
claude mcp add --transport stdio notes -- notes --mcpFrom source
git clone https://github.com/cardmagic/notes.git
cd notes
make install
# Then add as plugin OR MCP server:
claude plugin marketplace add cardmagic/ai-marketplace
claude plugin install notes@cardmagic
# OR
claude mcp add --transport stdio notes -- notes --mcpRequirements
macOS - Reads from Apple Notes database
Full Disk Access - Terminal/IDE needs access to
~/Library/Group Containers/pdftotext (optional) - For PDF text extraction
# Install pdftotext for PDF support
brew install popplerGranting Full Disk Access
The tool needs to read your Notes database at ~/Library/Group Containers/group.com.apple.notes/:
Open System Settings > Privacy & Security > Full Disk Access
Click + and add your terminal app (Terminal.app, iTerm, Warp, etc.)
Restart your terminal
CLI Usage
Search notes
# Fuzzy search
notes search "recipe chocolate"
# Filter by folder
notes search "taxes" --folder "2024"
# Limit results
notes search "meeting" --limit 5
# Filter by date
notes search "project" --after 2024-01-01Browse notes
# Recent notes
notes recent
notes recent --limit 10
# List all folders
notes folders
# Notes in a specific folder
notes folder "Recipes"
notes folder "Work" --limit 20Read a note
# Get note ID from search results, then read full content
notes read 12345Create a note
# Create a new note in the default "Notes" folder
notes create "Meeting Notes" --body "Agenda items for today..."
# Create in a specific folder
notes create "Shopping List" --body "Milk, eggs, bread" --folder "Personal"Delete a note
# Delete a note by title
notes delete "Old Meeting Notes"
# Delete from a specific folder (useful if multiple notes have the same title)
notes delete "Draft" --folder "Work"Manage index
# Show index statistics
notes stats
# Update index (incremental - only processes changed notes)
notes index
# Force full rebuild
notes index --forceThe index uses incremental updates by default:
Tracks modification timestamps to detect changed notes
Only reprocesses notes modified since last index
Detects and removes deleted notes
Much faster than full rebuild for small changes
Claude Code Plugin
When installed as a plugin, you get:
Skill (auto-invoked): Claude automatically searches notes when you ask things like:
"What's in my notes about recipes?"
"Find my notes about the project"
"Create a note about the meeting"
"Delete my draft notes"
Slash Commands:
Command | Description |
| Fuzzy search with optional filters |
| Show recently modified notes |
| List all folders with note counts |
| List notes in a specific folder |
| Read full note content by ID |
| Create a new note |
| Delete a note by title |
MCP Server
Run as an MCP server for Claude Code integration:
notes --mcpAvailable Tools
Tool | Description |
| Fuzzy search through notes |
| Get recently modified notes |
| Read full note content by ID |
| List all folders with note counts |
| List notes in a specific folder |
| Get index statistics |
| Create a new note |
| Delete a note by title |
Manual MCP Configuration
For Claude Desktop or VS Code, add to your MCP configuration:
{
"mcpServers": {
"notes": {
"command": "npx",
"args": ["-y", "@cardmagic/notes", "--mcp"]
}
}
}PDF Text Extraction
PDF attachments in Notes are automatically extracted and indexed when:
pdftotext is installed -
brew install popplerPDF has been viewed - Notes caches PDFs locally when opened
The extracted text is appended to the note body, making PDF content fully searchable.
How it works
PDFs are cached at
~/Library/Group Containers/group.com.apple.notes/Library/Caches/Paper/Each PDF bundle contains the file in
Assets.bundle/Text is extracted using
pdftotextand indexed with the parent note
Limitations
PDFs stored only in iCloud (never opened locally) won't be indexed
Password-protected PDFs cannot be extracted
Scanned PDFs without OCR won't have searchable text
Data Locations
Data | Path |
Notes database |
|
PDF cache |
|
Search index |
|
Fuzzy index |
|
Stats |
|
Development
# Clone and install
git clone https://github.com/cardmagic/notes
cd notes
pnpm install
# Build
pnpm build
# Watch mode
pnpm dev
# Link globally for testing
pnpm link --global
# Type check
pnpm typecheck
# Lint
pnpm lintProject Structure
src/
├── index.ts # Entry point - routes to CLI or MCP
├── cli.ts # Commander-based CLI
├── mcp.ts # MCP server implementation
├── applescript.ts # AppleScript automation for create/delete
├── indexer.ts # Builds search indexes from Notes database
├── searcher.ts # Query engine with fuzzy matching
├── attachments.ts # PDF text extraction
├── formatter.ts # Terminal output formatting
└── types.ts # TypeScript types and utilitiesPrivacy
This tool accesses your local Notes database for reading and uses AppleScript to create/delete notes. No data is sent externally. The search index is stored locally in ~/.notes/.
License
MIT
Author
Lucas Carlson
This 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.
Related MCP Servers
- Alicense-qualityDmaintenanceA production-ready MCP server for macOS that provides async, cache-backed access and background queued writes to Apple Notes. It enables seamless integration for reading, creating, and managing notes through standard tools like ScriptingBridge while supporting background service execution.MIT
- AlicenseAqualityBmaintenanceMCP 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.10812MIT
- Alicense-qualityDmaintenanceComprehensive Apple Notes MCP server for local macOS note management.2,462MIT
- Alicense-qualityDmaintenanceMCP server for macOS that enables creating, reading, and searching Apple Notes programmatically through tools like find, get by title or ID, and create.2,462MIT
Related MCP Connectors
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.
MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/cardmagic/notes'
If you have feedback or need assistance with the MCP directory API, please join our Discord server