MCP server
MCP memory server for Claude Code, Cursor and Windsurf (now Devin Desktop)
hippo mcp runs a memory server over stdio. Any MCP client can use it, including Claude Code, Cursor,
Windsurf, Cline and Claude Desktop. Memories are stored in SQLite on your machine, with no account and no API key.
The agent gets 13 tools to recall and store memories, mark what it recalled as helpful or wrong, and see where memories contradict each other.
Add it to your client
In Claude Code, one command:
$ claude mcp add hippo-memory -- hippo mcp
Other clients take a config block. Cursor reads it from .cursor/mcp.json and Claude Desktop from
claude_desktop_config.json; Windsurf and Cline take the same mcpServers block in their
own MCP settings.
{
"mcpServers": {
"hippo-memory": {
"command": "hippo",
"args": ["mcp"]
}
}
}
No global install? "command": "npx", "args": ["-y", "hippo-memory", "mcp"] works too. With no store
anywhere, the first tool call creates the global store in ~/.hippo, and hippo init in a
project adds a project store. hippo doctor checks the install.
The 13 tools
| Tool | What it does |
|---|---|
| hippo_ | Memories that match a query, ranked by relevance, strength and recency within a token budget. |
| hippo_ | A session's context in time order within a token budget; over budget, the weakest older items go first. |
| hippo_ | Opens a topic summary that recall returned and lists the memories under it. |
| hippo_ | Stores a memory. Errors get twice the half-life, and pinned memories never decay. |
| hippo_ | Reports whether the recalled memories helped: good ones get stronger, bad ones weaker. |
| hippo_ | Works out the current task from git and returns the matching memories plus the saved task snapshot. |
| hippo_ | Counts, strengths, memories at risk of fading, and when the store was last consolidated. |
| hippo_ | Scans recent git commits for fixes, reverts, bugs, refactors and performance changes, and stores the lessons. |
| hippo_ | Lists open conflicts: memories that contradict each other. |
| hippo_ | Settles a conflict by keeping one memory and weakening or deleting the other. |
| hippo_ | Shares a memory to the global store for use in other projects, with a transfer score. |
| hippo_ | Lists the projects that have added memories to the global store. |
| hippo_ | Base-rate stats for past predictions in a class, such as effort estimates, to check a new one against. |
Choosing an MCP memory server in 2026
The main question is where the memories live and who runs the server. Here is what the other options say about themselves, checked 2026-09-28.
- The reference memory server
- In its README's words, "a basic implementation of persistent memory using a local knowledge graph", kept in a memory.jsonl file. No account. Facts are added and deleted by explicit tool calls; the README describes no decay or contradiction detection. (README (opens in new tab))
- Basic Memory
- Knowledge kept as Markdown files on your disk that you and the agent both read and edit, with an optional paid cloud. AGPL-3.0. (README (opens in new tab))
- Mem0
- A hosted MCP server that needs a Mem0 Platform account and API key. Memories stored this way "live in your Mem0 account, not on your computer." (mem0 MCP docs (opens in new tab))
- Zep
- A hosted Memory MCP Server. It needs sign-in through an identity provider and a Zep project, and uses per-account MCP seats. (Zep docs (opens in new tab))
- Letta
- A hosted MCP endpoint, used with a Letta API key, that lets an MCP agent create and message stateful Letta agents. (Letta docs (opens in new tab))
The reference server, Basic Memory and hippo store memories on your machine. The MCP servers from Mem0, Zep and Letta are hosted services.
Can I use hippo as an MCP memory server?
Yes. hippo mcp runs the server over stdio, and npx -y hippo-memory mcp runs it without a global install. Add it to the MCP config of Claude Desktop, Cursor, Windsurf (now Devin Desktop), Cline or any other client (example above); in Claude Code, run claude mcp add hippo-memory -- hippo mcp. The agent gets tools such as hippo_recall, hippo_remember and hippo_outcome.
Where does hippo keep my data?
On your machine, in SQLite: .hippo/hippo.db in each project, plus a global store in ~/.hippo/ for lessons shared across projects, with markdown mirrors you can read and commit. Recall makes no network call by default. Text goes to an outside provider only through features that use one: an API embedder, the Jev or LLM reranker, hippo refine, and the fact extraction hippo sleep runs through Anthropic's API whenever ANTHROPIC_API_KEY is set in its environment. To turn that last one off, set {"extraction":{"enabled":false}} in .hippo/config.json.
Does it need embeddings?
No. Recall runs on BM25 out of the box, with no model and no network call, and a default install has no embedder. Embeddings are an optional install for hybrid search. On LongMemEval-S, where each question gets its own haystack, the benchmark scripts (not hippo recall) fuse BM25 with the free local MiniLM embedder and reach 98.0% recall@5, counting a hit when any answer session is in the top five. On LongMemEval's oracle split with one pooled store, BM25 alone scored 74.0% recall@5 in v0.11. The two runs use different setups, so they are not a before and after.