total-recall in Cursor¶
Status¶
- MCP support: yes (stdio, via
~/.cursor/mcp.jsonglobal or<repo>/.cursor/mcp.jsonper-project) - Hook support: no
- Session storage:
~/.cursor/projects/<projHash>/agent-transcripts/*.jsonl(v1 / current CLI),state.vscdb(v2 / planned) - Adapter complexity: ~370 LOC (JSONL only at v1)
Install the MCP server¶
- Install total-recall and make sure
python -m mcp_serverresolves (the example uses the in-tree module name;total-recall mcpworks equivalently if the console script is on$PATH).
pip install total-recall
- Drop this into
~/.cursor/mcp.jsonfor global config, or<repo>/.cursor/mcp.jsonfor per-project:
{"mcpServers":{"total-recall":{"command":"python","args":["-m","mcp_server"],"env":{"TOTAL_RECALL_DB_DIR":"${userHome}/.total-recall"}}}}
- Restart Cursor (or use the in-app MCP reload).
- Verify: Cursor's Settings → MCP panel should show
total-recalland its tools.
What you get¶
- 26 MCP tools (recall, get_operator_context, check_banned, ...).
- No hooks — Cursor exposes no lifecycle hook surface.
Session ingest¶
total-recall autodetects Cursor agent-transcripts. Verify:
total-recall sources test cursor
Caveats¶
- v1 only ingests the newer
agent-transcripts/*.jsonltree (~70% of present-day usage). The legacy SQLite (state.vscdb) parser is v2 / planned. - Cursor names project directories by an opaque SHA of the absolute workspace path. The v1 adapter stores the hash itself as the
cwdsurrogate and marksextra["unresolved_cwd"] = True. A future helper will let you patch in real cwds. ${userHome}is Cursor's own variable expansion; outside Cursor you must expand it yourself.