SaveState as an MCP Memory Provider
Run SaveState as a Model Context Protocol server. Claude Code, Cursor, Codex, and any MCP-compatible client can read your encrypted memory archive in real time — no manual export, no platform silo.
Why MCP changes the framing
Most "AI memory" tools today are either platform silos (ChatGPT Memory, Claude Projects) or unencrypted runtime stores (community MCP memory servers). SaveState ships both halves: an encrypted, portable archive and the runtime tools to query it from any client. Snapshot once, recall everywhere.
Quick install (Claude Code)
Add SaveState to ~/.claude/settings.json:
{
"mcpServers": {
"savestate": {
"command": "npx",
"args": ["-y", "@savestate/cli", "mcp"],
"env": {
"SAVESTATE_MCP_PASSPHRASE": "your-passphrase-here"
}
}
}
}
Then restart Claude Code. The new tools (savestate_search_snapshots, savestate_stats, plus the memory + snapshot toolset) are now available to the model.
Cursor
Add to .cursor/mcp.json or ~/.cursor/mcp.json:
{
"mcpServers": {
"savestate": {
"command": "npx",
"args": ["-y", "@savestate/cli", "mcp"]
}
}
}
Codex CLI / OpenAI Codex
codex mcp add savestate -- npx -y @savestate/cli mcp
Tools exposed
| Tool | What it does |
|---|---|
savestate_snapshot | Create a new encrypted snapshot of the current AI state. |
savestate_restore | Restore a specific snapshot. |
savestate_list | List available snapshots. |
savestate_status | Check SaveState initialization + adapter status. |
savestate_search_snapshots | Full-text search across every snapshot — even on a different platform. The killer feature. |
savestate_stats | Aggregate stats: total snapshots, cadence, adapter mix, top tags. |
savestate_memory_store / _search / _delete | Live memory CRUD against the SQLite-backed memory store. |
add_memories / search_memory / list_memories / delete_memory / delete_all_memories | OpenMemory-compatible API surface, drop-in for any client expecting the OpenMemory protocol. |
Resources
savestate://snapshots— JSON list of all snapshots in the local index.savestate://memories— Live memory entries from the SQLite store.
Passphrase handling
The MCP server can run with or without encryption. If SAVESTATE_MCP_PASSPHRASE is set, the SQLite-backed memory store encrypts content; cross-snapshot search tools always require a passphrase per-call so the user keeps control. Pass the passphrase via the passphrase argument when invoking savestate_search_snapshots or savestate_snapshot.
Why SaveState specifically?
- Encrypted by default — AES-256-GCM with user-controlled keys. Other MCP memory servers store plaintext on disk.
- Cross-platform — One memory archive, six adapters (ChatGPT, Claude, Claude Code, Gemini, OpenAI Assistants, Clawdbot), with more coming. No re-onboarding when you switch tools.
- Open format — The SaveState Archive Format (SAF) is an open spec. Your archive is yours forever, even if SaveState disappears.
- Memory governance — Signal Fitness League scoring + Trust Kernel staged promotion (in progress) means low-quality memory drops out automatically.
- Backup as a side effect — Every MCP interaction is captured into the same encrypted, portable archive. No second tool needed.
Next steps
- CLI Reference — every command, every flag.
- Encryption — how passphrases, scrypt, and GCM fit together.
- SAF Archive Format — the open format spec.