@plur-ai/mcp
Give your AI agent persistent memory. One line in your MCP config — corrections, preferences, and conventions persist across sessions. No workflow changes, no cloud, no API costs for search.
Part of PLUR — where, in our tool-routing and local-knowledge benchmark, Haiku with memory outperformed Opus without it at 10x less cost.
Setup (30 seconds)
Claude Code
One command — sets up storage, MCP config, and hooks:
npx @plur-ai/mcp init
Restart Claude Code. Done. Your agent now has persistent memory with automatic injection.
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"plur": { "command": "npx", "args": ["-y", "@plur-ai/mcp"] }
}
}
Windsurf / any MCP client
Same pattern — point it at npx -y @plur-ai/mcp.
That's it. Your agent now has memory. Use your tools as usual — corrections accumulate automatically.
What happens
You correct your agent → engram created → YAML on your disk
Next session starts → relevant ones injected → agent remembers
You rate the result → engram strengthens → quality improves
Knowledge is stored as engrams — small assertions that strengthen with use and decay when irrelevant. Search is fully local (BM25 + embeddings), so memory recall costs nothing and works offline. Benchmark methodology →
Tools
Your agent gets these tools automatically:
plur_session_start | Start a session — injects relevant engrams for your task |
plur_learn | Store a memory — correction, preference, convention, or decision |
plur_recall_hybrid | Best default — BM25 + embeddings merged via RRF. Zero cost. |
plur_recall | Keyword search (BM25 only, instant) |
plur_inject_hybrid | Load relevant memories for the current task |
plur_feedback | Rate a memory — trains relevance over time |
plur_forget | Retire a memory (history preserved) |
plur_session_end | End a session — captures summary and new learnings |
plur_capture | Record a session event |
plur_timeline | Query session history |
plur_ingest | Extract learnings from text |
plur_sync | Sync memory across machines via git |
plur_packs_install | Install a shareable memory pack |
plur_packs_list | List installed packs |
plur_status | System health |
Sync across machines
Your agent can sync memory to any git remote:
Agent: plur_sync({ remote: "git@github.com:you/plur-memory.git" })
→ "Initialized and pushed."
# On another machine, same remote:
Agent: plur_sync()
→ "Synced. Pulled 12 remote commits."
Works with GitHub, GitLab, Gitea, any git host. Your data, your repo.
Configuration
Custom storage path:
{
"mcpServers": {
"plur": {
"command": "npx",
"args": ["-y", "@plur-ai/mcp"],
"env": { "PLUR_PATH": "/path/to/storage" }
}
}
}
Default: ~/.plur/. Everything is plain YAML — open it, read it, edit it.
Benchmark
| LongMemEval overall | 86.7% |
| A/B win rate vs no memory | 89% |
| House rules accuracy | 100% |
Full methodology →
Related packages
License
Apache-2.0 · GitHub · plur.ai