VeraMem
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@VeraMemremember that I moved to Lisbon, then ask where I live"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
VeraMem
Long-term memory for AI agents that you can verify, that uses task outcomes to rank memories, and that is safe to share.
One SQLite file, no servers to run.
Works fully offline with Ollama, or with OpenAI / Anthropic.
Python SDK, REST API with a web UI, and an MCP server for Claude Desktop, Cursor and Claude Code.
pip install "veramem[mcp]"
veramem init # finds Ollama / OpenAI / Anthropic and sets everything up
veramem add "I'm vegetarian and I moved to Lisbon last week"
veramem ask "where do I live?"
veramem serve # web UI on http://127.0.0.1:8765from veramem import Memory
mem = Memory() # auto-detects your model provider
mem.add("I moved to Lisbon last week", user_id="priya")
mem.answer("Where does Priya live?", user_id="priya")
# Answer(answer='Lisbon', citations=['mem_…'], abstained=False, trace_id='tr_…')Why another memory system?
Today's memory layers (Mem0, Letta, Graphiti/Zep, MemOS, TencentDB-Agent-Memory) have three gaps. VeraMem fills each one with techniques from recent research:
The gap | What VeraMem does | |
A | Memories are kept or dropped by heuristics. Whether a memory actually helped is never recorded. | Outcome-informed ranking: |
B | Extracted "facts" lose the link to what was said. A tool's claim quietly becomes "the user's preference". | Every memory points to a verbatim, verified quote in an immutable, hashed source message. Each carries a source-authority label (user / assistant / tool) that consolidation can never raise. Updates are versioned and time-travel queryable. Every write goes into a hash-chained ledger. Answers cite or abstain, and |
C | Sharing is all-or-nothing. Private data leaks through shared pools, dedup, or other users' preferences. | Access rules are compiled into SQL before ranking. Revocable user↔agent and agent↔resource grants apply retroactively. Preferences can never be shared. Experiences are shared through a two-stage pipeline with de-identification plus a deterministic PII/canary gate. Erasure is physical. (ShareMem, Collaborative Memory, AIM) |
The paper-by-paper mapping is in docs/RESEARCH.md, and the design is in docs/ARCHITECTURE.md.
Related MCP server: CP Memory
Benchmarks
Measured head-to-head on the same machine, with the same local model (qwen3.6:35b,
thinking off, temperature 0) and the same embedder (nomic-embed-text) for every system.
The full method and raw outputs are in docs/BENCHMARKS.md.
Head-to-head with mem0 2.2.1 (its best OSS setup), both on the same local model.
Raw results: docs/results/.
What is measured | VeraMem | mem0 |
Cross-user leakage over 336 adversarial queries | 0% | 0% |
Tool, document or assistant claims stored as the user's own (all 7 AuthMem-Bench transitions) | 0.0% | 2.9% |
Those claims still retained, with attribution (Ret⁻) / user statements retained (Ret⁺) | 100% / 94% | 97% / 89% |
Machine-checkable authority to block risky actions | yes | no |
Current value ranked first after three changes | 75% | 50% |
Wrong top answer fixed by feedback within 5 rounds (synthetic) | 0% → 100% | no feedback API |
Feedback improves retrieval on unseen task families (LoCoMo, 5 seeds, placebo-controlled) | +2.1 pts Hit@3 [+1.1, +3.1]; a tuned static weighting gets +3.4 without feedback | no feedback API |
Feedback teaches source authority on unseen attributes (synthetic, 5 seeds) | Hit@1 0.14 → 1.00 | no feedback API |
Revoking an agent's access hides its memories | yes | not supported |
Tampering with stored memories detected | yes | not supported |
User's secret left in plaintext on disk after deleting the user | no | yes ( |
Search latency p50 | 4 ms | 40 ms |
Status: these are the guarantee tests in
benchmarks/guarantees.py, which follow the protocols of the cited papers on synthetic data. Accuracy on the standard LoCoMo and LongMemEval benchmarks is being measured and will be published here, wins or losses included.
Reproduce:
python -m benchmarks.guarantees --systems veramem,mem0
python -m benchmarks.locomo --systems veramem,mem0 --convs allWhat you get
Feature | API | CLI |
Remember chats, tool results, documents (role sets authority) |
|
|
Hybrid search (dense + BM25 + entity, routed by granularity) |
|
|
Grounded answers with citations and abstention |
|
|
Outcome-informed ranking |
|
|
Evidence and version history |
|
|
Authority gate for actions |
| |
Teams, grants, revocation |
| |
Safe sharing |
| |
Tamper check |
|
|
Right to be forgotten / data export |
|
|
Training data for your own memory model |
|
|
Maintenance (archive, dedupe, summarise) |
|
|
Use it from any app
Python SDK:
MemoryandAsyncMemory.TypeScript SDK:
sdk/typescript, with no runtime dependencies; works in Node 18+ and browsers.Agent frameworks: LangChain, LangGraph (long-term
BaseStore), LlamaIndex and CrewAI adapters, plus plain tool schemas for OpenAI and Anthropic tool calling. See docs/guide/frameworks.md.MCP (Claude Desktop, Claude Code, Cursor, VS Code):
veramem mcp-configprints the config to paste. See examples/mcp_clients.md.REST:
veramem serveserves interactive docs at/docs. SetVERAMEM_API_KEYto require a bearer token; the CLI refuses to listen publicly without one.Docker:
VERAMEM_API_KEY=… docker compose upstarts VeraMem plus Ollama, fully local.Multi-user deployments: per-user API keys or OIDC/JWT, PostgreSQL for many replicas, rate limits, and a web UI for sharing, access and key management. See docs/guide/deployment.md.
Configuration
veramem init writes ~/.veramem/config.json. You can override any setting with an
environment variable:
Variable | Meaning |
|
|
| e.g. |
|
|
| Path of the SQLite file |
| Bearer token for the REST API |
With no model at all, VeraMem still works. It stores and searches raw messages, with the same access control and ledger.
Security and trust
No telemetry, ever. The only network calls go to the model provider you configure.
Releases are built in CI with SLSA provenance, signed with Sigstore, and published to PyPI with OIDC trusted publishing.
Contributions follow a vouched-contributor model: open an issue first. See CONTRIBUTING.md, SECURITY.md and GOVERNANCE.md.
License
Apache-2.0. Some prompts are adapted from mem0 and AMA (both Apache-2.0); see NOTICE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
A second brain for your AI agent. Shared memory for your team's AI agents, plus public and private knowledge bases — works with ChatGPT, Claude, Cursor and any MCP client.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides persistent long-term memory and local RAG document search for Claude Desktop, fully offline. Enables memory save/search and document retrieval via MCP.MIT
- AlicenseCqualityAmaintenanceLocal-first, governable long-term memory for AI agents. Provides SQLite-backed storage, cross-session recall, and traceable memory corrections through a standard MCP interface.401MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to store and recall durable facts, decisions, and lessons over MCP using hybrid semantic and keyword search, typed memories, graph relations, sessions, and time-travel queries. Runs locally with no server process or API key, persisting everything to files that both agents and a CLI can share.14 npmMIT
- FlicenseNot gradedqualityAmaintenanceEnables AI coding agents to store, search, and retrieve persistent local-first memory — project-specific decisions, preferences, error patterns, and research plus cross-project guidelines — so context survives across sessions without any external API calls. Optionally also exposes a task queue for autonomous execution and GitHub issue resolution in MCP clients such as Claude Code, OpenCode, and Goose.-