Give Claude persistent memory across sessions. Single SQLite file. 29 tools. Zero LLM dependency.
Give Claude persistent memory across sessions. Single SQLite file. 29 tools. Zero LLM dependency. The cpersona mcp server wraps that behind the Model Context Protocol, so an assistant can use it through 14 defined tools rather than through you.
Everything the assistant can do here goes through one of these:
store — Store a message in agent memoryrecall — Recall relevant memories (vector + FTS5 + keyword, RRF merge)recall_with_context — Recall with external conversation context (auto-dedup)get_contents — Expand recall preview refs (mem: / ep:) to full contentget_profile — Get current agent profileupdate_profile — Save pre-computed agent profileget_operating_context — Read the operator-owned operating context served to every client (read-only; edited on the filesystem)archive_episode — Archive conversation episode with summary and keywordslist_memories — List recent memorieslist_episodes — List archived episodesupdate_memory — Update memory content (rejects if locked)lock_memory — Lock memory to prevent deletion/editingYou will need 6 environment variables: CPERSONA_DB_PATH, EMBEDDING_MODE, EMBEDDING_HTTP_URL, CPERSONA_AUTH_TOKEN, CPERSONA_EMBEDDING_URL, CPERSONA_HTTP_HOST. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Installation goes through your MCP client rather than a global install: point it at cpersona on PyPI and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.
Plenty of knowledge and memory servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Cpersona's toolset — store, recall, recall_with_context and 11 more — is a fair guide to whether it matches your workflow. It is maintained by cloto-dev; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| store | Store a message in agent memory |
| recall | Recall relevant memories (vector + FTS5 + keyword, RRF merge) |
| recall_with_context | Recall with external conversation context (auto-dedup) |
| get_contents | Expand recall preview refs (mem:<id> / ep:<id>) to full content |
| get_profile | Get current agent profile |
| update_profile | Save pre-computed agent profile |
| get_operating_context | Read the operator-owned operating context served to every client (read-only; edited on the filesystem) |
| archive_episode | Archive conversation episode with summary and keywords |
| list_memories | List recent memories |
| list_episodes | List archived episodes |
| update_memory | Update memory content (rejects if locked) |
| lock_memory | Lock memory to prevent deletion/editing |
| unlock_memory | Unlock memory to allow deletion/editing |
| delete_memory | Delete a single memory (ownership enforced) |
{
"mcpServers": {
"cpersona": {
"command": "uvx",
"args": ["cpersona"],
"env": {
"CPERSONA_DB_PATH": "your-value",
"EMBEDDING_MODE": "your-value",
"EMBEDDING_HTTP_URL": "your-value",
"CPERSONA_AUTH_TOKEN": "your-value",
"CPERSONA_EMBEDDING_URL": "your-value",
"CPERSONA_HTTP_HOST": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| CPERSONA_DB_PATH | Filesystem location the server is allowed to use. | Optional |
| EMBEDDING_MODE | Configuration value read at startup. | Optional |
| EMBEDDING_HTTP_URL | Endpoint or connection string the server talks to. | Yes |
| CPERSONA_AUTH_TOKEN | Credential the server authenticates with. | Yes |
| CPERSONA_EMBEDDING_URL | Endpoint or connection string the server talks to. | Yes |
| CPERSONA_HTTP_HOST | Endpoint or connection string the server talks to. | Optional |
A knowledge graph your assistant keeps between sessions — entities, relations and observations that persist.
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Your workspace, on speaking terms with AI — search, read and write Notion pages and databases.
A structured scratchpad for hard problems — stepwise reasoning with revisions, branches and visible logic.
Symbol-level code navigation, refactoring and memory for coding agents — the IDE brain your assistant has been missing.
Chat with your second brain — search, read and write vault notes through the Local REST API.