SkillAgentSearch skills...

apple-notes-search

Semantic + keyword search and connection-discovery across the user's own Apple Notes via the apple-notes MCP server

Install / Use

npx skills add sickn33/agentic-awesome-skills --skill apple-notes-search

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

88/100

Supported Platforms

Claude Code

Our assessment of apple-notes-search

apple-notes-search scores 88/100 on our quality scale, 485th of 1,947 Development & Engineering skills we index (top 25%).

Its SKILL.md is 7.9 KB long, well organised into 9 sections and no code examples: a thorough specification that gives an agent plenty to work with.

With 46,875 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
29/30
Structure
13/20
Description
12/15
Adoption
20/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated yesterday, so apple-notes-search is actively maintained.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.

Automated pattern scan on 2026-09-26. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

apple-notes-search compared with similar skills

All 4 of these similar skills score higher than apple-notes-search; compare them before choosing.

SkillScoreStarsUpdatedFormat
apple-notes-search (this skill)by sickn338846.9k1d agoSKILL.md
Agent-Reachby Panniantong10085.5k10d agoCLAUDE.md
headroomby headroomlabs-ai10073.8ktodayCLAUDE.md
rufloby ruvnet10073.3k1d agoCLAUDE.md
CowAgentby zhayujie10047.1ktodayCLAUDE.md

Frequently asked questions

How do I install apple-notes-search?
Run npx skills add sickn33/agentic-awesome-skills --skill apple-notes-search. The install tabs above show the steps for each supported agent.
Which AI agents does apple-notes-search work with?
It is written for Claude Code, as a SKILL.md file. Other agents that read the same format can often use it too.
Is apple-notes-search safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is apple-notes-search still maintained?
The repository was last updated yesterday, so apple-notes-search is actively maintained.

name: apple-notes-search description: "Semantic + keyword search and connection-discovery across the user's own Apple Notes via the apple-notes MCP server. Use when the user wants to find, recall, or synthesize something from their notes, or surface non-obvious bridges/related notes. macOS, on-device." risk: critical source: community source_repo: connerkward/mcp-apple-notes source_type: community date_added: "2026-06-16" author: connerkward tags: [apple-notes, search, mcp, macos, semantic-search, knowledge] tools: [claude-code] license: "MIT" license_source: "https://github.com/connerkward/mcp-apple-notes/blob/main/LICENSE" plugin: targets: codex: blocked claude: blocked setup: type: manual summary: "Requires third-party MCP setup and macOS Full Disk Access; keep out of plugin-safe bundles." docs: SKILL.md

Apple Notes search & connection-discovery

apple-notes is an MCP server for semantic search and connection-discovery across the user's own Apple Notes — hybrid search, Swanson-ABC bridges, entity threads, and cited synthesis over everything they've written. Embeddings, search, BM25, clustering, and bridges run on-device; only synthesis generation calls an LLM (local OR cloud, the user's choice).

This skill covers (1) the one-time setup you must walk the user through, and (2) which tool to reach for, since the server exposes many.

When to Use This Skill

  • Use when the user wants to find, recall, or look up something from their own Apple Notes ("search my notes for X", "what did I write about X", "did I ever note Y").
  • Use when the user wants to surface non-obvious connections across their notes ("find bridges/connections across my notes", "what links X and Y", "show related notes").
  • Use when the user wants to synthesize a position from their notes ("summarize what I think about X from my notes", "pull together everything I've written on X").
  • Also use for "index my Apple Notes", tag/folder queries, and "what's connected to X".
  • Do not use for creating reminders, or for non-Apple-Notes note systems.

First: is the MCP connected?

If apple-notes tools are not available, the server isn't registered yet — do the Setup below before anything else. If tools exist but a search returns "not indexed" or empty, run index-notes first (see Ranking caveats).

Setup (walk the user through this — it's the skill's real value)

The server reads Apple Notes' SQLite store directly, so the bun binary needs Full Disk Access. Steps, in order:

  1. Install bun (if absent): brew install oven-sh/bun/bun
  2. Clone + install deps:
    git clone https://github.com/connerkward/mcp-apple-notes
    cd mcp-apple-notes
    git checkout <reviewed-tag-or-commit>
    bun install
    
  3. Grant Full Disk Access to bun. Run which bun, then open System Settings → Privacy & Security → Full Disk Access, click +, and add that exact bun binary path (commonly /opt/homebrew/bin/bun or /usr/local/bin/bun). Without this the server cannot read NoteStore.sqlite and every call fails with a permissions error. (bun install's postinstall tries to open this pane automatically.)
  4. Register the MCP server (pick the user's client):
    • Claude Code: claude mcp add apple-notes -- bun /absolute/path/to/mcp-apple-notes/index.ts --stdio
    • Claude Desktop: add to claude_desktop_config.json:
      { "mcpServers": { "apple-notes": {
          "command": "/Users/<you>/.bun/bin/bun",
          "args": ["/Users/<you>/mcp-apple-notes/index.ts", "--stdio"] } } }
      
    • As a Claude Code plugin (bundles this skill too): /plugin marketplace add connerkward/ckw-skills then /plugin install apple-notes@connerkward.
  5. Restart the client, then tell the user to ask "Index my Apple Notes" (or call index-notes). First index of ~1,800 notes takes a few seconds.

Tool map — which tool for which job

| Tool | Use when | |------|----------| | index-notes | First run, or to force a rebuild. Background job with live progress. | | search-notes | Default search. Hybrid semantic + BM25, re-ranked. Optional folder, modifiedAfter, modifiedBefore. "What did I write about X." | | find-notes | Exact substring match (like the Apple Notes search box). Use when the user wants a literal string, not meaning. Optional folder, date range. | | get-note | Fetch one full note by title (fuzzy fallback). | | list-notes | Notes by recency. Optional folder, date range, limit. | | list-folders | All folders + note counts. | | list-tags / search-by-tag | #hashtag inventory / notes carrying a given tag. | | related-notes | Notes related to a given one via shared tags, [[wikilinks]], and vector similarity. "Show me related notes." | | bridge-notes | Swanson-ABC bridges — non-obvious connections: pairs (A, C) not directly similar but both strongly tied to a shared intermediary B. "Find non-obvious connections across my notes." Optional folder, limit. No LLM. | | feed | Ranked evidence-first connection stream (bridges + abstraction pairs + entity threads) as JSON. Optional limit. | | entity-notes / list-entities | "Where else do I talk about Mercedes?" Entity chips → notes by mention weight. Needs the optional entity graph db (~/.mcp-apple-notes/layered_graph.db); if absent these report how to generate it. | | get-tables | Pull pipe/tab tables out of a note. | | create-note / update-note | Create or edit a note. | | check-changes | Did notes change since last index? (does not trigger re-index) | | index-health | Sync status, last-indexed time, note count. Run this if results seem stale. |

For "synthesize what I think about X" the synthesis lives in the web app endpoint (GET /api/synthesize?q= at http://localhost:3741/ when run with bun index.ts), which writes a grounded answer with inline [n] citations back to source notes.

Ranking caveats (state these when results look off)

  • Index before the first search. No index → empty/garbage results; run index-notes.
  • Auto re-index: each search does ~1ms change detection and kicks ONE background incremental index if notes changed — search returns immediately from the current index and catches up when the job lands. If a just-edited note is missing, it's the catch-up lag; re-run the search.
  • Score: score = RRF(vector, BM25) × title_boost × recency_factor.
  • Temporal queries (recent, latest, today) auto-shift to a 1-day recency half-life at 70% weight; normal queries keep relevance primary (90-day half-life, 10%).
  • Synthesis is the only cloud-capable part. It needs an LLM: local via LM Studio / Ollama (SYNTH_BASE_URL=http://localhost:1234/v1 SYNTH_MODEL=<model> OPENAI_API_KEY=local, notes stay on-device) or real OpenAI (funded OPENAI_API_KEY, defaults to gpt-4o-mini). Everything else — embeddings, search, BM25, clustering, bridges, entities — is on-device.

Example

User request:

Use @apple-notes-search for this task: Semantic + keyword search and connection-discovery across the user's own Apple Notes via the apple-notes MCP server.

Limitations

  • macOS and Apple Notes only; it does not search Obsidian, Notion, Google Docs, or other note stores.
  • The MCP server needs local filesystem permissions to read Apple Notes data, so setup cannot be completed purely inside a remote shell.
  • Search quality depends on a fresh local index. Recently edited notes may require check-changes, index-health, or a rerun after background indexing catches up.
  • Entity tools require the optional layered graph database; without it, use hybrid search, exact search, related notes, or bridges instead.

Credits

Fork of RafalWilinski/mcp-apple-notes; this fork reads SQLite + protobuf directly and adds bridges, entities, feed, and synthesis. Authored by Conner K Ward. License MIT.

Related Skills

View on GitHub
GitHub Stars46.9k
CategoryDevelopment
Updated1d ago
Forks6.8k

Languages

Python

Trust signals

100/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

No cautions