The MCP server
Let Claude and other agents search what you exported.
Exporter runs an MCP server inside the app. It serves your export folders to Claude, Cursor, VS Code and any other MCP client, read-only and on your Mac only. For the skills and the command line an agent can use too, see For agents.
Start it
- Export at least one app as Markdown (get started). The server reads Markdown files only.
- On the MCP Server card, press “start”. The card then shows
localhost:8744and a “connect” row.
The endpoint is http://localhost:8744/mcp (Streamable HTTP), on a fixed port. The server lives in the app: it answers while Exporter runs, window open or closed, and stops when you quit. If it was running when you quit, it starts again with the app. curl -s http://127.0.0.1:8744/health answers OK while it is up.
Connect Claude Code
claude mcp add --transport http exporter http://localhost:8744/mcp
Add --scope user to have it in every project. The card’s “claude code” button copies this command.
Claude Desktop, Cursor and VS Code
- Claude Desktop: press “claude desktop” on the card. It copies an entry that runs
npx -y mcp-remote http://localhost:8744/mcp(npxcomes with Node.js). Paste it insidemcpServersunder Settings > Developer > Edit Config, save, then quit Claude and open it again - Cursor or VS Code: press “cursor” or “vs code” on the card. The editor opens with the server ready to install; confirm there
Which folders it serves
The export folders that sit in the same parent folder as the Apple Notes export folder (without one, the first export folder it finds). An export folder anywhere else is invisible to agents, and the MCP Server card says which ones they can see.
| export folders | served |
|---|---|
~/Documents/notes, ~/Documents/messages |
both |
~/Documents/notes, ~/Dropbox/messages |
notes only |
To bring a folder in, press “change…” on that app’s export to row, pick a folder in the same parent, then “full resync” on that card. The server reads its folder list when it starts, so press “stop” and “start” after any change. Each source is named after its folder, like notes or messages.
The six tools
| tool | what it does | parameters |
|---|---|---|
get_stats |
per source: file count, newest and oldest dates, size. Call it first to learn the source names | source (optional) |
search |
ranked full-text search | query, source (optional), limit (20) |
read |
one item: its Markdown, front matter, modified date and size | source, id (the file name without .md) |
list |
the items of one source | source, limit (50), offset (0) |
get_recent |
the most recently changed items | sources (comma-separated, optional), limit (20) |
get_metadata |
counts and last sync times | source (optional) |
search ranks Apple Notes, Contacts and Messages over the app’s index: a name finds the conversation, and a note hit carries a link that opens it in Apple Notes. Bear, Logseq, Screen Time and Documents are served too, but search does not rank them while the index answers; reach them with list, get_recent and read. While the index is still empty, search scans the Markdown of every source.
Answers are only as complete as the export: on the free allowance that is your first 100 notes, 100 contacts and 10 most recent conversations, 10 days and 10 documents.
Privacy
The server listens on 127.0.0.1, so nothing outside your Mac can reach it, and it only reads. What a tool returns becomes part of your conversation with the AI and goes to its model, like anything you paste.
When it does not work
No export folders configured. Set an export folder first.: choose an export folder on any cardNo exported notes found. Run an export first.: press “sync now” on a card, then “start”- a system error on “start”: another program uses port 8744. Quit it and start again
- a source is missing: it sits outside the parent folder, was exported as HTML only, appeared after the server started, or is past the free allowance