AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Notes

mcp-cardmagic-notes · by cardmagic

CLI and MCP server to search and browse Apple Notes

No reviews yet
0 installs
37 views
0.0% view→install

Install

$ agentstack add mcp-cardmagic-notes

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-cardmagic-notes)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
29d ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Notes? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

@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

Installation

Homebrew

brew install cardmagic/tap/notes

npm

npm install -g @cardmagic/notes

Claude 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@cardmagic

This 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 --mcp

Or install globally first:

npm install -g @cardmagic/notes
claude mcp add --transport stdio notes -- notes --mcp

From 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 --mcp

Requirements

  • 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 poppler

Granting Full Disk Access

The tool needs to read your Notes database at ~/Library/Group Containers/group.com.apple.notes/:

  1. Open System Settings > Privacy & Security > Full Disk Access
  2. Click + and add your terminal app (Terminal.app, iTerm, Warp, etc.)
  3. 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-01

Browse 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 20

Read a note

# Get note ID from search results, then read full content
notes read 12345

Create 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 --force

The 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 | |---------|-------------| | /notes:search | Fuzzy search with optional filters | | /notes:recent | Show recently modified notes | | /notes:folders | List all folders with note counts | | /notes:folder "Name" | List notes in a specific folder | | /notes:read | Read full note content by ID | | /notes:create | Create a new note | | /notes:delete | Delete a note by title |

MCP Server

Run as an MCP server for Claude Code integration:

notes --mcp

Available Tools

| Tool | Description | |------|-------------| | search_notes | Fuzzy search through notes | | recent_notes | Get recently modified notes | | read_note | Read full note content by ID | | list_folders | List all folders with note counts | | notes_in_folder | List notes in a specific folder | | get_note_stats | Get index statistics | | create_note | Create a new note | | delete_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:

  1. pdftotext is installed - brew install poppler
  2. PDF 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 pdftotext and 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 | ~/Library/Group Containers/group.com.apple.notes/NoteStore.sqlite | | PDF cache | ~/Library/Group Containers/group.com.apple.notes/Library/Caches/Paper/ | | Search index | ~/.notes/index.db | | Fuzzy index | ~/.notes/fuzzy.json | | Stats | ~/.notes/stats.json |

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 lint

Project 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 utilities

Privacy

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

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.