Cursor speaks MCP, so it can read and write the same Unforgetter memory as Claude Code. One entry in ~/.cursor/mcp.json, and a User Rule to make it automatic.
Unforgetter configures Claude Code and Codex on its own. Cursor is not wired automatically yet, but it speaks MCP, so it takes one entry in a JSON file and gets exactly the same memory - the same folder, the same four tools, the same nightly consolidation.
Two agents pointed at one folder stay in sync by definition. Decide something in Cursor at eleven, and the Claude Code session you open at three already knows.
Or hand this page to your agent. Everything below is written out in full, but you do not have to do it by hand. Paste this page’s URL into Cursor or Claude Code and ask it to set Unforgetter up for you. It can read the steps, edit
~/.cursor/mcp.jsonand check the tools came back. Install the app first - the agent cannot do that part.
You need Unforgetter installed and pointed at a vault. If you have not done that yet, install it first - the app creates the folder and wires up your CLI agents, and this guide only adds Cursor on top.
You also need the path to the bundled MCP binary and the path to your vault. The binary ships inside the app:
/Applications/Unforgetter.app/Contents/MacOS/unforgetter-mcp
Your vault path is whatever folder you picked on first run. It is shown in the app’s title bar.
Open ~/.cursor/mcp.json. If the file does not exist, create it. If it does,
add unforgetter alongside whatever is already in mcpServers - do not replace
the object, or you will drop your other servers.
{
"mcpServers": {
"unforgetter": {
"command": "/Applications/Unforgetter.app/Contents/MacOS/unforgetter-mcp",
"env": {
"UNFORGETTER_VAULT": "/Users/you/Memory"
}
}
}
}
Replace /Users/you/Memory with your own vault path. Cursor does not expand
~, so write it out in full.
Restart Cursor, then open Settings → MCP. unforgetter should be listed
with four tools: get_current_state, list_open_threads, search and
append_daily_log.
If you would rather see it from the outside, this prints the running server:
ps -ef | grep unforgetter-mcp | grep -v grep
Cursor keeps a log per server, which is the fastest way to see what went wrong if the tools do not appear:
tail -f ~/Library/Application\ Support/Cursor/logs/*/mcp-server-user-unforgetter.log
A healthy start ends with Successfully connected to stdio server.
At this point Cursor can read your memory, but only when it decides to call a tool. The thing that makes Unforgetter feel like memory rather than a lookup is the agent reading the current state at the start of every session, before you ask anything.
Claude Code and Codex get that from a block Unforgetter writes into their global instructions file. Cursor keeps its equivalent in the app rather than in a file on disk, so this one is a paste: open Cursor Settings → Rules → User Rules and add this.
You have a durable, always-on memory vault at /Users/you/Memory
At the start of every session, before anything else:
- Read current-state.md, the snapshot of what is true now.
- If work is in flight, also read open-threads.md.
- For the full conventions, read AGENTS.md and follow it.
When something durable is decided, learned, or changed, append one line to
daily/YYYY-MM-DD.md (create it if missing): "HH:MM -- what happened".
You also have the unforgetter MCP tools (get_current_state, list_open_threads,
search, append_daily_log) to read and update this memory from any folder.
Keep it lightweight: do not narrate this, and do not record trivia. The memory
is the user's, in plain markdown, on their machine.
User Rules apply everywhere, which is the point - the memory should not depend on which folder you happened to open.
Unforgetter’s session-end summariser hooks into Claude Code’s SessionEnd
event. Cursor has no equivalent hook, so a Cursor session will not be summarised
automatically when you close it. The rule above asks the agent to log as it goes,
which covers most of it, and nightly consolidation still folds everything into
the current state.
If you use both, Claude Code remains the one with the tighter loop.
The tools do not show up. Nine times out of ten the JSON is invalid - a
trailing comma after the last entry is the usual culprit. Run
python3 -m json.tool ~/.cursor/mcp.json and it will point at the line.
“No such file or directory”. The command path is wrong. Check the binary
is where you think it is with ls -l on the exact string you pasted.
It connects but the memory is empty. UNFORGETTER_VAULT is pointing
somewhere without a current-state.md. Open the Unforgetter app and copy the
path from the title bar.
Something here out of date? These guides are checked by hand against a real install, so if your client changed its config format, tell us and we will re-run it.