프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. Google로 로그인하면 리뷰를 쓸 수 있어요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Apple Notes

제작자: connerkward버전 1.0.2i★ 8i내 컴퓨터에서 실행
레지스트리 이름io.github.connerkward/mcp-apple-notes

설치 방법

What it does

Semantic search + connection-discovery across your own Apple Notes (bridges, synthesis).

  • Connects 내 컴퓨터에서 실행
  • Account or key Needs OPENAI_API_KEY
  • Category 문서, 시트 및 사무 업무

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

검사 3/3 통과 · 내 컴퓨터에서 실행돼요

먼저: 어떤 AI를 쓰시나요?

쓰는 앱을 고르면 아래에 단계가 나옵니다.

Claude에 연결할 수 있지만 먼저 준비가 필요해요

키 필요 없음, 설치 필요 없음 · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요

  1. 제작자 설치 파일 내려받기

    제작자의 .mcpb 파일 다운로드

    .mcpb 파일은 제작자에게서 바로 온 것으로, 우리는 바꾸지 않았어요

  2. 파일을 두 번 클릭한 뒤 컴퓨터용 Claude 앱에서 Install 누르기

  3. 해 보기

    Apple Notes을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐

    ✓ Claude가 Apple Notes을 쓰고 있다고 하거나 답에 Apple Notes 도구 이름이 나오면 연결된 거예요

메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요

ChatGPT는 아직 Apple Notes에 연결할 수 없어요

Apple Notes는 내 컴퓨터에 설치해서 쓰지만 ChatGPT는 웹에서 도는 서버만 연결할 수 있어요

대신 이렇게 할 수 있어요

A · Apple Notes에 연결되는 앱 쓰기

  • 키 필요 없음, 설치 필요 없음 · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요

B · 문서, 시트 및 사무 업무에서 ChatGPT에 연결되는 다른 서버

같은 분류에서 많이 쓰는 것 중 키 없이 주소만으로 연결되는 것을 골랐어요

Claude Code는 아직 Apple Notes에 연결할 수 없어요

제작자가 컴퓨터용 Claude 앱 설치 파일만 제공해요

대신 이렇게 할 수 있어요

A · Apple Notes에 연결되는 앱 쓰기

  • 키 필요 없음, 설치 필요 없음 · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요

Cursor는 아직 Apple Notes에 연결할 수 없어요

제작자가 컴퓨터용 Claude 앱 설치 파일만 제공해요

대신 이렇게 할 수 있어요

A · Apple Notes에 연결되는 앱 쓰기

  • 키 필요 없음, 설치 필요 없음 · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요

VS Code는 아직 Apple Notes에 연결할 수 없어요

제작자가 컴퓨터용 Claude 앱 설치 파일만 제공해요

대신 이렇게 할 수 있어요

A · Apple Notes에 연결되는 앱 쓰기

  • 키 필요 없음, 설치 필요 없음 · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요

Windsurf, Zed, Gemini CLI 같은 다른 MCP 앱은 추가 방법이 저마다 달라요. 앱 목록에서 확인하세요

MCP를 쓰는 앱 모두 보기 →

JSON 설정은 아래 “개발자용”에 있어요

막혔나요? Apple Notes을 쓰는 사람에게 물어보세요💬 토론 →
개발자용: 터미널 명령과 JSON 설정

직접 입력할 값

  • OPENAI_API_KEY 비밀 env
    Only required for synthesis. Set to 'local' when pointing SYNTH_BASE_URL at a local OpenAI-compatible server (LM Studio / Ollama); set to a funded key for real OpenAI. Search, bridges, entities run o…
  • SYNTH_BASE_URL env
    Optional OpenAI-compatible base URL for synthesis (e.g. http://localhost:1234/v1 for LM Studio). Keeps notes on-device.
  • SYNTH_MODEL env
    Optional model id for synthesis when SYNTH_BASE_URL is set (defaults to gpt-4o-mini for real OpenAI).

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

한눈에 보기

주간 다운로드i
npm/PyPI에 없음
연결 방식
내 컴퓨터에서 실행
최신 버전i
1.0.2
레지스트리 공개i
2026년 6월 17일
코드 마지막 변경i
2026년 6월 17일
제작자
connerkward
패키지
mcpb: …/mcp-apple-notes.mcpb
웹사이트
github.com
레지스트리 상태
활성

어떤 앱에서 쓸 수 있나요

이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.

내 컴퓨터에서 실행하는 앱

ClaudeGooseLM StudioMsty StudioCherry StudioVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

모든 앱과 장단점 →

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 12일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 connerkward 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • ✓ 통과

    계속 관리되고 있음

    코드 마지막 변경: 5개월 전

  • ✓ 통과

    라이선스 있음

    MIT 사용

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

토론

질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.

아직 글이 없어요. 처음으로 질문하거나 공유해 보세요.

이곳의 글은 사용자가 쓴 것으로, PopNx 팀의 글이 아니에요.

Google로 로그인하고 글쓰기

사용자 리뷰

아직 리뷰가 없어요

Google로 로그인하고 리뷰 쓰기

문서, 시트 및 사무 업무 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 3780개 중 93%보다 스타가 많아요
  • 이 카테고리의 다른 서버 3780개 중 12%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 3780개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Apple Notes, 안전한가요?

해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: OPENAI_API_KEY

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 5개월 전 변경됐고, 최신 버전(1.0.2)은 5개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 MCPB도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Puter MCP, XcodeBuildMCP, XcodeBuildMCP

같은 카테고리의 다른 것

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Puter MCP

Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more

제작자: HeyPuter널리 사용됨★ 4.4만5개월 전 업데이트

클라우드에서 실행✓ 서비스 회사 · puter.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

제작자: getsentry널리 사용됨↓ 13만/주 공유 패키지 수치★ 6.6천4개월 전 업데이트

내 컴퓨터에서 실행✓ 서비스 회사 · xcodebuildmcp.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

제작자: cameroncooke널리 사용됨↓ 13만/주 공유 패키지 수치★ 6.6천14개월 전 업데이트

내 컴퓨터에서 실행

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

MCP Apple Notes

mcp-apple-notes is an MCP server for semantic search and connection-discovery across your own Apple Notes — hybrid search, Swanson-ABC bridges, entity threads, and cited synthesis over everything you've written.

It traverses your accumulated mass of notes: semantic + BM25 hybrid search, non-obvious bridge connections, entity threads, related-notes, and grounded synthesis across everything you've ever written in Apple Notes. Embeddings, search, BM25, clustering, and bridges run on-device; only synthesis generation calls an LLM (local via LM Studio/Ollama, or cloud via OpenAI — your choice). Built on the Model Context Protocol (MCP).

Forked from RafalWilinski/mcp-apple-notes — this fork reads the SQLite store + protobuf directly and adds bridges, entities, feed, and synthesis.

Install as a Claude Code plugin
/plugin marketplace add connerkward/ckw-skills

/plugin install apple-notes@connerkward

This registers the MCP server and bundles the apple-notes-search agent skill. Or install the MCP server manually — see Installation below (requires macOS + bun + Full Disk Access).

Other MCP Notes servers break at scale. They use JXA (AppleScript automation) to read notes one-by-one — fine for 50 notes, unusable at 500+. At 1,800 notes, JXA takes ~49 minutes just to fetch content. On macOS Sequoia it's worse: Apple silently denies Automation permission to processes without a bundle ID, so JXA-based servers fail entirely. This fork reads the SQLite database directly, decodes the protobuf blobs for real note text, and indexes 1,800 notes in under 5 seconds.

Comparison

FeatureThis forkRafalWilinski (base)disco-troopersirmewsdhravya
Notes accessSQLite (direct)JXAJXASQLiteJXA
Fetch 1800 notes~430ms~49 min (est.)~49 min (est.)fastslow
Sequoia compatible✅⚠️ JXA denied⚠️ JXA denied✅⚠️
Content qualityProtobuf decodedRaw HTMLRaw HTMLPartialRaw
Semantic search✅✅✅❌❌
Auto re-index on search✅❌❌❌❌
Folder-aware search✅ Full path❌✅✅✅
Note chunking✅ 1500 chars❌✅❌❌
Re-ranking (RRF × title × recency)✅RRF onlyRRF only❌❌
Non-blocking index UI✅ Live progress❌❌❌❌
Incremental indexing✅❌✅❌❌
Update existing notes✅❌✅❌❌
Tags + wikilinks✅❌❌❌❌
Related notes✅ Multi-signal❌❌❌❌

JXA on macOS Sequoia: processes without a bundle ID are silently auto-denied Automation permission. This fork reads SQLite directly.

Features

  • 🔍 Semantic search via all-MiniLM-L6-v2 on-device embeddings
  • 📝 BM25 full-text search combined via Reciprocal Rank Fusion
  • 🧠 Re-ranking: RRF × title_boost × recency_factor
  • 📂 Full folder hierarchy — filter by any path segment
  • 🕐 Auto re-index: every search runs ~1ms change detection and, if notes changed, kicks ONE background index job (single-flight) — search itself never blocks on indexing
  • ✂️ 1500-char chunking for long notes
  • 🍎 Direct SQLite + protobuf decode — real note text, not garbled HTML
  • 🏃♂️ On-device — embeddings, search, BM25, clustering, and bridges run locally with no API keys; only optional synthesis generation calls an LLM (local LM Studio/Ollama, or cloud OpenAI — your choice)

Local web app — not just search, but connections & synthesis

Run the server directly and open the browser UI — no MCP client needed:

bun index.ts            # → http://localhost:3741/   (also serves /mcp)

Six modes, building from retrieval toward sensemaking:

  • Feed (default) — one ranked, evidence-first stream mixing three connection kinds: bridges (A ↔ C via B, with the connecting phrase mined from B as plain-text evidence), abstraction pairs (two notes whose LLM-consolidated abstractions from ~/.mcp-apple-notes/consolidated.jsonl make the same underlying move), and entity threads ("X notes across Y folders mention Z", from the entity graph). Every item shows its evidence in plain text. 👍/👎 on any item tunes the ranking: a tiny online logistic regression (pure TS, no deps) takes a few SGD steps per vote; votes append to ~/.mcp-apple-notes/votes.jsonl (with the item's feature vector) and replay on boot, so the ranking survives restarts. Diversity constraints: ≤2 consecutive items of one kind, no note more than twice per page of 20; "show more" paginates. Endpoints: GET /api/feed?offset=&limit=, POST /api/vote {id, vote: 1|-1}.
  • Search — the hybrid semantic + BM25 search, in a paper-themed UI with query highlighting and folder filter.
  • Map — a topic map of every note: spherical k-means clusters (TF-IDF labels) over the embeddings, projected to 2D with PCA. Hover a note for the neighbor-lens — lines to its nearest-by-meaning notes, which often cross clusters (the connection-finding payload). Endpoint: GET /api/clusters?k=.
  • Synthesize — *"what do I think about X across everything I've written?"* Query-expansion → relevance-gated retrieval (no recency bias) → MMR diversification → an LLM writes a grounded answer with inline [n] citations back to the source notes; provenance is post-checked. Endpoint: GET /api/synthesize?q=.
  • Bridges — Swanson-ABC discovery over your own notes: pairs (A, C) that are not directly similar but are both strongly similar to a shared bridge note B — connections the corpus only makes through an intermediary. Pure arithmetic over the embeddings (score = sim(A,B)·sim(B,C)·(1−sim(A,C)); cross-folder, no shared tags/wikilinks; thresholds auto-relax; hub-penalized selection so no note dominates the list). No LLM, $0. Endpoint: GET /api/bridges?limit=40.
  • Entities — *"where else do I talk about Mercedes?"* Ranked entity chips (people, orgs, concepts) → the notes that mention them, by mention weight. Reads an optional sqlite graph db (see below). Endpoints: GET /api/entities?q=&limit=, GET /api/entity-notes?entity=.
Precomputed disk caches (instant bridges & map)

Bridge mining (~2 min of embedding) and clustering are computed once and persisted, keyed by a corpus fingerprint (note count + max modification date):

  • ~/.mcp-apple-notes/bridges_cache.json — the full mined bridge pool
  • ~/.mcp-apple-notes/clusters_cache.json — cluster output per k

Fresh cache → served from disk instantly (<300ms). Stale (notes changed) → the stale copy is served instantly with a "recomputing…" pill in the UI while ONE background job (single-flight) refreshes it. Absent → computed inline once.

Enabling synthesis (needs an LLM)

Embeddings/search/clustering/bridges/entities are fully local. Only synthesis generation needs an LLM. Point at a local OpenAI-compatible server to keep notes private:

# LM Studio / Ollama (zero API cost, notes stay local):

SYNTH_BASE_URL=http://localhost:1234/v1 SYNTH_MODEL= OPENAI_API_KEY=local bun index.ts

…or real OpenAI: set a funded OPENAI_API_KEY (defaults to gpt-4o-mini).

The entity graph (optional)

The entity layer reads ~/.mcp-apple-notes/layered_graph.db (override with LAYERED_DB) — a plain sqlite file produced by the companion exp-notes-indexing benchmark harness (layered_graph.py). No extra dependencies (bun ships bun:sqlite); if the file is absent the entity tools and tab simply report how to generate it.

Installation

  1. Clone and install:
git clone https://github.com/connerkward/mcp-apple-notes

cd mcp-apple-notes bun install

  1. Add bun (~/.bun/bin/bun) to Full Disk Access in System Settings.
  1. Add to claude_desktop_config.json:
{

"mcpServers": { "apple-notes": { "command": "/Users/ /.bun/bin/bun", "args": ["/Users/ /mcp-apple-notes/index.ts", "--stdio"] } } }

  1. Restart Claude Desktop and ask: *"Index my Apple Notes"*.
Claude Code / CLI registration
// .mcp.json (project) or `claude mcp add apple-notes -- bun /path/to/mcp-apple-notes/index.ts --stdio`

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

The same bridges/entities tools power the web UI tabs at the local app (bun index.ts → http://localhost:3741/); the entity graph db is optional, generated by the exp-notes-indexing benchmark harness.

Tools

ToolDescription
index-notesBackground indexing with live progress UI
search-notesSemantic + FTS search; optional folder, modifiedAfter, modifiedBefore
find-notesExact substring search (like Apple Notes built-in); optional folder, date range
get-noteFull note by title; fuzzy fallback on no exact match
list-notesNotes sorted by recency; optional folder, date range, limit
list-foldersAll folders with note counts
list-tagsAll #hashtags across notes, sorted by frequency
search-by-tagNotes containing a specific hashtag
related-notesRelated notes via shared tags, [[wikilinks]], and vector similarity
bridge-notesSwanson-ABC bridges: non-similar note pairs connected via a shared intermediary; optional folder, limit
feedThe ranked evidence-first connection feed (bridges + abstraction pairs + entity threads) as JSON; optional limit
entity-notesNotes mentioning an entity (e.g. "Mercedes"), by mention weight — needs the optional entity graph db
list-entitiesEntities ranked by mention count; optional substring query, limit
get-tablesExtract pipe/tab-separated tables from a note
create-noteCreate a note
update-noteEdit an existing note
check-changesCheck if notes changed since last index (without triggering re-index)
index-healthSync status, last indexed time, note count

Search & Ranking

Every search detects changes (~1ms). If notes changed, ONE background incremental index job is kicked (single-flight — duplicate triggers are dropped) and the search returns immediately from the current index; results catch up when the job lands. The last-indexed watermark persists to ~/.mcp-apple-notes/index_state.json across restarts. Change detection compares the per-title *set* of modification dates (Apple Notes titles are not unique — "TODO" ×10 — and a title→single-date map can never converge for duplicates).

score = RRF(vector, BM25) × title_boost × recency_factor

Temporal queries (recent, latest, today) automatically shift to a 1-day recency half-life at 70% weight. Normal queries use 90-day half-life at 10% so relevance stays primary.

Benchmarks

1,806 notes, Apple Silicon:

ApproachTimeBody included
JXA metadata only4,463msNo
JXA with body~49 minYes
SQLite direct430msYes

Troubleshooting

tail -n 50 -f ~/Library/Logs/Claude/mcp-server-apple-notes.log

Permissions error → ensure bun (~/.bun/bin/bun) has Full Disk Access in System Settings → Privacy & Security.


🧭 [ckw-skills](https://github.com/connerkward/ckw-skills) — part of Conner K. Ward's collection of Claude Code skills & MCP servers.