blog · · Mohak Bajaj
I save a lot of small things during the day. An error message from a log. A line from the docs. An idea I had while reviewing a PR. Later, when I am in Claude Code, those notes are exactly the context I want it to have. Pasting them in by hand is slow.
So Jot, my Mac capture app, ships an MCP server. With one command, Claude Code can list, search and read your notes, and add new ones. This post covers the setup for Claude Code, Codex and Cursor, what each tool does, and why there is no delete tool.
What you get #
Jot saves each note as a Markdown file in a folder, ~/Documents/Jot by default. You select text in any app and tap Shift twice to save it, or you add one from the terminal. jot mcp is a local MCP server for that folder. It runs on your Mac over stdio. There is no account and no API key, and the notes do not leave the Mac unless your agent sends them to its model. The Jot app does not need to be running.
Step 1: install Jot and link the CLI #
Download Jot from sayjot.xyz/download and open it once. The CLI lives inside the app, at /Applications/Jot.app/Contents/Helpers/jot. There is no separate package to install.
To run it as jot, link it into /usr/local/bin. Settings → Vault & Agents → Terminal command → Link does it for you. macOS may ask for your password. Or run:
ln -sf /Applications/Jot.app/Contents/Helpers/jot /usr/local/bin/jot
If you skip this step, use the full path inside the app in place of /usr/local/bin/jot in the commands below.
Step 2: add the server to Claude Code #
This adds Jot for all your projects:
claude mcp add --scope user jot -- /usr/local/bin/jot mcp
Start a new Claude Code session and run /mcp. You should see jot in the list, with its tools.
Codex and Cursor #
For Codex:
codex mcp add jot -- /usr/local/bin/jot mcp
Cursor, Claude Desktop and other clients take a JSON config. Settings → Vault & Agents → MCP server → Copy config puts it on your clipboard:
{
"mcpServers": {
"jot": { "command": "/usr/local/bin/jot", "args": ["mcp"] }
}
}
In Cursor, paste it into ~/.cursor/mcp.json for every project, or .cursor/mcp.json in one project.
What the tools do #
| Tool | What it does | Writes? |
|---|---|---|
list_jots |
List jots: id, status, title with #tags, file path. Filter by tag, section, done, archived, limit. | No |
search_jots |
Case-insensitive search of open jots by body, tags, source app and URL. | No |
read_jot |
One whole file, front matter and body, plus absolute paths to its images. | No |
add_jot |
Create a jot. The first line is its title. Optional tags and section. | Yes |
set_done |
Mark a jot done, or open again. | Yes |
archive_jot |
Take a jot out of the inbox. The file stays in the folder. | Yes |
tag_jot |
Add tags. Existing tags stay. | Yes |
Clients that support MCP Apps also get an inbox view, and an eighth tool, jot_image, that the view uses to show a jot's images. Other clients see the seven tools above.
Writes go to the same Markdown files the app shows. The server changes the file with an atomic write, and the app sees the change because it watches the folder. If Claude adds a jot, it shows in your inbox a moment later.
Why there is no delete tool #
An agent can add, tag, finish and archive. It cannot delete. That is on purpose.
Agents make mistakes, and they act fast. A prompt like "clean up my old notes" should never end with files gone. Archive covers the real need: the jot leaves the inbox, and the file stays in the folder. If an agent archives the wrong thing, you can get it back. The worst case is a mess you can see and fix, not lost notes.
Deleting is still easy for you. It is one action in the app, and the file goes to a trash folder first.
Prompts that work well #
You don't need to name the tools. Ask in plain words, and Claude picks the tool:
- "Search my jots for anything about the billing migration and summarize what I saved."
- "List my open jots tagged todo. Which ones are about this repo?"
- "Read the jot I saved from the Postgres docs and apply that fix to db/pool.ts."
- "Add a jot: follow up on the flaky upload test. Tag it todo and work."
- "Go through my open jots from this week, tag each one by project, and mark the ones we finished today as done."
Two tips. Search matches substrings, so short, specific words work better than a long phrase. And search only looks at open jots, so ask for list_jots with archived set to true when you want old ones.
Point it at another folder #
The server reads the folder you set in Jot's Settings. --vault <dir> or the JOT_VAULT environment variable points it somewhere else. If your Jot folder is inside an Obsidian vault, Claude reads the same notes you see in Obsidian. I wrote about that setup in How to save highlights from any Mac app into Obsidian.
No MCP? The folder still works #
Some agents only read files. Jot writes two files for them in the folder. INDEX.md lists the open jots with their titles. SKILL.md explains the layout and the front matter. Settings → Vault & Agents can also install a Jot skill at ~/.agents/skills/jot/SKILL.md, which tells agents how to use the CLI.
More #
The full tool reference is on GitHub at MohakBajaj/jot-mcp. Jot runs on macOS 12 or later, on Apple silicon and Intel. It has a 3-day free trial, then $29 once for 1 Mac, and the first 50 one-Mac licenses are $9. The MCP server is included.