Explainable graph-retrieval memory engine with an RL-trained management policy.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
English | δΈζ
Spomory gives Claude Desktop, Cursor, Codex CLI, and Doubao (θ±ε ) a memory that persists across sessions β and is shared between all of them. Tell one of them something once (a project detail, a preference, a fact about yourself) and any of them can recall it later, without you repeating yourself.
It runs as an MCP server, either
locally on your own machine (free, nothing leaves your computer) or as a
hosted cloud service (free signup, memory follows you across devices) β
every client above supports both. The rest of this README walks through
the local path (that's what "Get started" below covers); the fastest way
into the cloud path is the web app at
spomory.yliuai.com/get-started/remote.
Exact local/cloud configuration for each individual client lives in
docs/mcp_quickstart.en.md (organized one
section per client β Claude Desktop/Cursor/Codex CLI/Doubao β each
covering both connection methods).
Curious what it looks like before installing anything? There's a no-signup demo at spomory.yliuai.com β paste in some text, see the entities and relations it extracts.
Requires Python 3.11+.
1. Install
2. Give it an LLM. Spomory uses an LLM to turn what you tell it into structured facts. Any OpenAI-compatible API works β OpenAI, DeepSeek, Qwen, etc.:
3. Connect it to your client. Claude Desktop, Cursor, and Codex CLI
each need a few lines added to a config file, pointing at the
spomory-mcp command. The exact steps, a config file example for each
client, and a real gotcha we hit (macOS blocking a venv that lives under
~/Documents) are in
docs/mcp_quickstart.en.md.
Clients without a config file β Doubao (θ±ε ), Coze, ModelScope β connect instead through a point-and-click "custom connector" form (URL + headers, or command + args + env for a local process); see the Doubao section in the same doc (each client β Claude Desktop, Cursor, Codex CLI, Doubao β now has its own section there, with STDIO/HTTP/OAuth grouped underneath it).
The one thing that trips people up: the config needs the absolute path to
spomory-mcp(runwhich spomory-mcpto find it) β the client doesn't necessarily launch it with your shell'sPATHset.
That's it. Data lives locally in ~/.memory-core/ by default (override
with MEMORY_CORE_DATA_DIR). A Dockerfile is also
included, for MCP directories/hosts that deploy from a container image
instead.
Want the LLM calls local too, instead of a cloud API? Point LLM_BASE_URL
at any local OpenAI-compatible server β vLLM, Ollama, llama.cpp, or MLX
all work β and set EMBEDDING_PROVIDER=openai_compatible to route
embedding the same way instead of the local sentence-transformers
model, dropping the torch dependency entirely. Details and per-engine
examples in
docs/mcp_quickstart.en.md.
Once connected, six tools become available inside the client:
| Tool | What it does |
|---|---|
add_memory | Remembers something you tell it |
search_memory | Recalls whatever's relevant to a question |
forget_memory | Deletes the one thing that best matches what you asked to forget |
forget_all_memory | Wipes the entire memory graph in one call |
get_graph | Shows the memory graph around something, for inspection |
export_memory | Exports everything you've stored, as JSON β your data, portable |
All six are verified working end-to-end against real Claude Desktop,
Cursor, Codex CLI, and Doubao sessions, both local and remote β see
docs/mcp_quickstart.en.md for what
"verified" means for each client.
You don't need any of this to use Spomory β it's here for people who want to know what's actually happening underneath.
sentence-transformers (default bge-m3, bilingual Chinese/English).LocalGraphStore
(networkx + SQLite); a PostgresGraphStore cloud implementation also
exists, and both share the same behavioral contract test suite.RuleBasedPolicy) and a full GRPO training
pipeline (memory_manager/train_grpo.py, actually run and verified on
a real GPU).Real runs against DeepSeek on 84 QA pairs from LoCoMo-10 (conv-26, first 150 turns) β not cherry-picked, and not competitive with the bigger players' published numbers yet:
| Metric | Value |
|---|---|
| Recall@10 (did the right evidence turn make it into context) | 52.4% |
| Accuracy β strict substring match | 19.0% |
| Accuracy β LLM-judged (looser, wording-tolerant) | 44.0% |
A prior run (before a fix that folds dates into extracted predicates so
"when" questions are answerable) scored lower on accuracy but higher on
recall (62.0%) β the fix traded some retrieval recall for a real
+14.3-point accuracy gain, and we went and found out exactly why instead
of just reporting the accuracy number: the date-folding instruction
sometimes misfires on content-free small talk ("Thanks!" β "thanked on
2023-07-03"), and those extra low-value triples crowd out relevant ones
out of the fixed top-10 retrieval window. Full numbers, per-category
breakdown, and the side-by-side extraction comparison that found this are
in docs/benchmark_smoke_test.md.
LongMemEval (xiaowu0162/longmemeval-cleaned oracle variant, first 10
of 500 questions):
| Metric | Value |
|---|---|
| Recall@10 | 100% (10/10) |
| Accuracy β strict substring match | 30% |
| Accuracy β LLM-judged | 80% |
The limitations here matter as much as the numbers:
temporal-reasoning type β the dataset also has
a multi-session type; load_longmemeval(limit=10) takes the first 10
entries in file order with no stratified sampling, so this sample isn't
representative of the dataset as a whole.Raw data:
benchmarks/results/longmemeval_oracle_subset.json;
the run script is
benchmarks/run_longmemeval_subset.py.
Everything below is for people who want to hack on the internals, run the test suite, or reach dependency groups beyond what running the MCP server needs (GPU training, the cloud API skeleton, multimodal verification). If you just want to use Spomory, you don't need any of this β see "Get started" above.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/spomory)<a href="https://allmcps.com/mcp/spomory"><img src="https://allmcps.com/api/badge/spomory?style=directory" alt="Spomory on AllMCPs" /></a>