cd /news/ai-agents/show-hn-spomory-graph-based-mcp-memo… · home › topics › ai-agents › article
[ARTICLE · art-152348] src=spomory.yliuai.com ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Show HN: Spomory – graph-based MCP memory with an RL-trained forgetting policy

A developer released Spomory, a graph-based memory server built on the Model Context Protocol (MCP) that shares one memory across 24 AI platforms, including Claude Desktop, Cursor, Codex CLI and Doubao. Spomory extracts text into (subject, predicate, object) triples, merges them into a dual-layer entity-and-relation graph, and retrieves context by matching queries against triples and running personalized PageRank for multi-hop recall; a GRPO-trained policy rather than a hardcoded rule decides whether an incoming fact is added, merged or retired. The local-first version stores the memory graph in an encrypted SQLite file on the user's own disk with no account required, and the project publishes its methodology and benchmark results on GitHub.

read6 min views1 publishedOct 18, 2026
Show HN: Spomory – graph-based MCP memory with an RL-trained forgetting policy
Image: source

Never start over — A shared memory across every AI you use. Say it once in any AI. Come back tomorrow in a different one. Your context follows you, wherever you work.

24 AI Platforms verified end-to-end. Works inside the AI tools you already use

See the full list and exact setup →

Every AI tool switch means starting over. #

Switch AI tools, start a new chat, or just come back tomorrow, and you're explaining who you are, what you're working on, and what you already said — all over again. Brief your AI on the project

Repeat it in the next chat, the next AI tool, the next model

Lose time every session to context you've already given

The fix isn't a smarter AI. It's structural: one memory every AI tool can reach.

Say it once. Every AI already knows. #

You say it once:

I'm the lead engineer on the warehouse-automation project at Acme Robotics. I report to Daniel Chen.

Next session, a different app:

Who do I report to on the Acme project?

Daniel Chen — you mentioned this earlier, in Claude Desktop.

Illustrative example, not a screenshot — but the underlying connection is real: write from one client, read from another, verified across 24 clients on the Platforms page. See it on the Platforms page →

Doesn't Claude or ChatGPT already have memory? #

Yes — and it's gotten genuinely good. But it's built to remember you inside that one app. Say something in ChatGPT, and Claude never hears about it. Switch to Cursor, Doubao, or any of the other clients Spomory connects to, and you're starting over — because built-in memory doesn't leave the app it was built into.

How it actually works #

The same example, through all four stages — write, connect, recall, manage — running automatically, every time, from any client.

You tell it something. It becomes structured facts.

add_memory sends your text through an LLM that extracts it into (subject, predicate, object) triples — not a raw text blob, not just an embedding.

Maria joined Acme Robotics as lead engineer. She reports to Daniel Chen.

Maria —works_at→ Acme Robotics

Maria —reports_to→ Daniel Chen

New facts link into what it already knows — nothing gets rebuilt.

New triples are incrementally merged into a dual-layer memory graph (entities, relations) — matching or related facts link up, nothing is ever fully rebuilt.

Ask from any client. It finds the connected facts, not just the one that sounds similar.

search_memory matches your query directly against triples, then runs personalized PageRank over the memory graph to pull in connected, multi-hop context.

Who does Maria report to?

Daniel Chen

It decides on its own whether to keep, update, or retire a memory.

A GRPO-trained policy — not a hardcoded rule — decides whether an incoming fact should be added, merged into an existing one, or should retire an outdated memory.

New message: "Maria now reports to Priya Shah." Full technical methodology on GitHub →

How is this different from a vector database / plain RAG? #

A pure similarity search returns whatever embedding is closest to your query and can't explain why. Spomory matches your query against extracted triples, then walks the memory graph with personalized PageRank — every result traces back to specific facts, and multi-hop connections (A relates to B relates to C) get surfaced even when nothing in the query text is similar to C.

Benchmarks #

Run against a live LLM, not simulated.

See the full numbers and limitations →

Two ways to run it, same engine underneath #

Local-first

For developers and technical users: install the MCP server, point Claude Desktop, Cursor, Codex CLI, or Doubao (豆包) at it, and your memory graph lives in a SQLite file on your own disk — encrypted at rest by default, no account required.

[Get started — local & free](https://spomory.yliuai.com/get-started/local)

Cloud & cross-app

For memory that needs to follow you across more than one client: a hosted MCP endpoint backed by Postgres, reachable over HTTPS with either an API key or OAuth 2.1 — currently for MCP-capable clients (Claude Desktop, Cursor, Codex CLI, Doubao, and similar), not a web app.

[Get started — cloud & cross-app](https://spomory.yliuai.com/get-started/remote)

What's actually different here #

Memory sovereignty, not a compliance checkbox

Export your full memory graph any time in an open JSON-LD-style format, or physically delete it — permanently, with an audit trail, and it's a free-tier feature, not something locked behind a paywall.

Real measured results, limitations included

Published LoCoMo and LongMemEval numbers, run against a live LLM — including the run where a fix traded retrieval recall for a real accuracy gain, and we explained why instead of just reporting the win.

An RL-trained policy decides what to remember

ADD / UPDATE / DELETE / NOOP isn't a set of hand-written if-statements — it's a GRPO-trained policy, evaluated against a rule-based baseline with the comparison published, small sample size and all.

Retrieval you can trace, not just a similarity score

Queries are matched against extracted triples, then expanded across the memory graph with personalized PageRank — every answer traces back to specific facts, not an opaque embedding distance.

What "private by default" actually means here #

You're trusting it with real context about your life and work. Here's exactly what that does and doesn't mean today.

Credentials are hashed

API keys and OAuth tokens are stored as hashes only — a leaked database doesn't leak usable plaintext credentials.

Never sold, never used to train models

Your text passes through an LLM (extraction) and Resend (login email) as named sub-processors, and nowhere else.

Nothing hidden from you

get_graph shows exactly what's stored — entities, relations, source — not an opaque black box.

Export or delete it, for real

export_memory and forget_memory are a real export and a physical delete, not a status flag — free, in both local and cloud modes.

This is a summary, not the whole picture. Read the full Privacy page →

Frequently asked #

Is Spomory open source? #

Yes — Apache 2.0, source on GitHub. The MCP server, retrieval engine, and memory-management policy are all in the open repo.

Does it work with ChatGPT or Gemini? #

ChatGPT: yes — via Developer Mode custom connectors (OAuth 2.1), verified end-to-end. Gemini's consumer web app doesn't support MCP connectors yet; Google's own Gemini CLI does, and that's verified separately.

Is my data used to train models, or shared with anyone? #

No. Local mode never leaves your machine. Cloud mode sends extraction text to the configured LLM provider (currently DeepSeek) and nothing else — full detail on the Privacy page, including the sub-processors involved.

Can I use my own LLM instead of the default? #

Yes — the LLM and embedding providers are pluggable, and any OpenAI-compatible Chat Completions API works (OpenAI, DeepSeek, Qwen, etc.).

What happens to my data if I stop using it? #

You can export your complete memory graph or permanently delete it at any time, for free, in both local and cloud modes — this isn't a premium feature. Details on the Memory Passport page.

Pick your path and see the actual output #

Ten minutes to a working memory graph, either way.

── more in #ai-agents 4 stories · sorted by recency
── more on @spomory 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-spomory-grap…] indexed:0 read:6min 2026-10-18 · —