MCP (Claude Code, Cursor, Codex, …)
DevRecall ships an MCP server out of the
box — devrecall mcp. Any MCP-compatible coding tool (Claude Code, Cursor,
Codex CLI, Continue, Zed, …) can spawn it and gain memory of everything
you’ve shipped: commits, PRs, Jira tickets, Confluence docs, Slack threads,
manual notes — all searchable and citeable from inside the editor.
What the agent gets
Section titled “What the agent gets”15 tools, including: keyword + semantic search across activities, date-filtered timelines, get-by-id, ticket-key joins across sources, person filters, decisions surfacing, meeting prep, and a write tool for capturing notes.
3 resources (URI-addressed views):
standup://YYYY-MM-DD— all activity from a dayactivity://<id>— full row by IDtimeline://<period>— period grammar matches thedevrecall timelineCLI
3 prompts the user invokes as slash commands:
devrecall-recall <query>— search + cite-the-sourcedevrecall-context [days]— inject a recent-activity briefdevrecall-log <text>— capture a note vialog_event
Local-only. The server reads ~/.devrecall/devrecall.db directly and never
opens a network listener.
Prerequisites
Section titled “Prerequisites”brew install --cask pavelpilyak/devrecall/devrecallThe cask installs both the GUI and the CLI. Confirm the binary is on your PATH:
which devrecall # → /opt/homebrew/bin/devrecall (Apple Silicon) or /usr/local/bin/devrecalldevrecall mcp --helpThe desktop app doesn’t need to be running — the MCP server is a separate subprocess each editor spawns.
Claude Code
Section titled “Claude Code”The cleanest install is via the first-party plugin, which also adds slash commands:
/plugin marketplace add pavelpilyak/devrecall-claude-plugin/plugin install devrecall@devrecallThen /mcp shows the server connected and /devrecall:recall <query>
returns search results. Source for the plugin lives at
github.com/pavelpilyak/devrecall-claude-plugin.
Auto-log your sessions
Section titled “Auto-log your sessions”The plugin ships two optional hooks that are enabled but dormant — each stays off until you set its environment variable, so installing the plugin changes nothing until you opt in. Add the exports to your shell profile and restart Claude Code:
export DEVRECALL_SESSION_CONTEXT=1 # inject a 7-day brief at session startexport DEVRECALL_AUTOLOG=1 # log what changed (and why) at session endDEVRECALL_AUTOLOG captures the thing Git can’t: why. When a session ends,
if it actually modified files, a detached one-shot claude -p reads the
transcript, writes a 2–4 sentence note about the decisions, tradeoffs, and
dead-ends, and records it with devrecall log (tagged session). Read-only
and Q&A sessions are skipped, so the index stays high-signal. The notes are
first-class activities — they surface later through /devrecall:recall and
search like commits and tickets.
The note is written by a separate headless Claude run (--bare, locked to
Read and the devrecall log CLI), so it can’t re-trigger the hook or touch
anything else. It needs jq and the claude CLI on your PATH, and spends a
small amount of tokens per logged session — which is why it’s opt-in.
If you’d rather skip the plugin and wire the MCP server only, add to
~/.claude.json:
{ "mcpServers": { "devrecall": { "command": "devrecall", "args": ["mcp"] } }}Cursor
Section titled “Cursor”Add to ~/.cursor/mcp.json (create if missing):
{ "mcpServers": { "devrecall": { "command": "devrecall", "args": ["mcp"] } }}Restart Cursor. The 15 tools become available to chat/agent automatically.
Codex CLI
Section titled “Codex CLI”Codex reads MCP servers from ~/.codex/config.toml:
[mcp_servers.devrecall]command = "devrecall"args = ["mcp"]Continue
Section titled “Continue”Add under the mcpServers key in ~/.continue/config.json:
{ "mcpServers": [ { "name": "devrecall", "command": "devrecall", "args": ["mcp"] } ]}In Zed’s settings.json:
{ "context_servers": { "devrecall": { "command": { "path": "devrecall", "args": ["mcp"] } } }}Any other stdio MCP client
Section titled “Any other stdio MCP client”Tell the client to run:
devrecall mcpNo flags, no config files. Transport is newline-delimited JSON-RPC 2.0 on stdio; stderr is reserved for logs and never pollutes the protocol stream.
Troubleshooting
Section titled “Troubleshooting”“unknown command mcp” — your installed devrecall predates v0.1.15.
brew upgrade devrecall and restart the client.
Server connects but tools return empty — the index might be sparse for that source. Run:
sqlite3 ~/.devrecall/devrecall.db "SELECT source, COUNT(*) FROM activities GROUP BY source;"Backfill older history with devrecall backfill --since 90d if a source
only has the last 7 days.
Stuck stale results after a sync — the MCP server reads SQLite live, so fresh syncs are visible immediately. If you’re not seeing them, restart the client to force the server to re-spawn (some clients cache tool descriptors aggressively).
MCP server crashes silently — run devrecall mcp in a terminal and
paste JSON-RPC frames manually to reproduce. Logs print to stderr.
What it doesn’t do
Section titled “What it doesn’t do”- No remote access. Stdio only, no listener, no auth model needed.
- No writes other than
log_event. The agent can capture notes but can’t delete activities, change tokens, or modify settings. - No streaming responses. Tool results land as a single text block.