Skip to content

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.

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 day
  • activity://<id> — full row by ID
  • timeline://<period> — period grammar matches the devrecall timeline CLI

3 prompts the user invokes as slash commands:

  • devrecall-recall <query> — search + cite-the-source
  • devrecall-context [days] — inject a recent-activity brief
  • devrecall-log <text> — capture a note via log_event

Local-only. The server reads ~/.devrecall/devrecall.db directly and never opens a network listener.

Terminal window
brew install --cask pavelpilyak/devrecall/devrecall

The cask installs both the GUI and the CLI. Confirm the binary is on your PATH:

Terminal window
which devrecall # → /opt/homebrew/bin/devrecall (Apple Silicon) or /usr/local/bin/devrecall
devrecall mcp --help

The desktop app doesn’t need to be running — the MCP server is a separate subprocess each editor spawns.

The cleanest install is via the first-party plugin, which also adds slash commands:

Terminal window
/plugin marketplace add pavelpilyak/devrecall-claude-plugin
/plugin install devrecall@devrecall

Then /mcp shows the server connected and /devrecall:recall <query> returns search results. Source for the plugin lives at github.com/pavelpilyak/devrecall-claude-plugin.

If you’d rather skip the plugin and wire the MCP server only, add to ~/.claude.json:

{
"mcpServers": {
"devrecall": {
"command": "devrecall",
"args": ["mcp"]
}
}
}

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 reads MCP servers from ~/.codex/config.toml:

[mcp_servers.devrecall]
command = "devrecall"
args = ["mcp"]

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"]
}
}
}
}

Tell the client to run:

Terminal window
devrecall mcp

No 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.

“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:

Terminal window
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.

  • 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.