SkillTide Submit
Official description7 sourcesMCP servers8d ago
donggyun112/keymem

donggyun112/keymem

Associative key-graph memory for LLM a
View on GitHub ↗Direct link · no redirect page
Config template (adjust for your client)
claude mcp add keymem -- npx -y keymem
A pasteable skeleton generated from the repository name. Check the project README for the exact package and arguments.
Star count
3 ★ · donggyun112/keymem · read from the repository page · (checked 2026-10-16 20:00:20)
Source
collected from the punkpeye/awesome-mcp-servers list · type: MCP server
Harvest history
first seen 2026-10-09 · last seen 2026-10-16 · seen 32× · listed by 7 sources
Score
score 703 · 3 ★ · 7 sources · mcp
FAQ (answers come from our records)
How do I install it?
We did not find an install command for this repository (our install coverage is only about 4%). Check its README or releases page.
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository donggyun112/keymem;first catalogued 2026-10-09;last seen 2026-10-16。There is no official certification or quality rating here — we record sources and dates only.
Third-party quality signals

keymem

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

**The associative memory layer for LLM agents — recall by association, not just similarity.**
Most agent memory is a vector store. It surfaces what *sounds like* your query — and misses everything your query is *connected to*.
keymem stores memories in a **key graph** instead. A search for **"Newton"** can still reach **"strawberries"** — Newton → apple → fruit → strawberry. The path lives in the graph, not in embedding space. It runs locally as an **MCP server**, so any MCP-compatible agent gets human-like associative recall with no external database.
**Works with:** Claude Desktop · Claude Code · any MCP-compatible LLM agent
---
Why associative memory?
Vector-store memory retrieves by embedding similarity. That works until the thing you need *isn't similar to the words you typed*:
A person makes the leap anyway — Newton reminds them of the apple, apples are fruit, they like strawberries. keymem makes that same leap because the **path exists in the key graph**: Newton → apple memory → fruit key → strawberry memory. No embedding distance connects "Newton" and "strawberry"; a chain of shared keys does.
This is the core idea: memories are not islands ranked by distance. They are nodes in an **N:M key/value graph** that an agent can walk.
---
How it works
Memories live in a **Value Space**, reached through a separate **Key Space** — one memory reachable via many keys, one key leading to many memories.
recall("Newton") returns matching key clusters such as [Newton] and [apple] plus one passive Top-1 memory under the strongest key. That memory carries matched_key, validity, and connected_keys, so the agent can answer immediately or continue through read_key(fruit).
The default MCP flow remains **Key → Memory → Key**, but its first Key → Memory hop is completed in one call. Only one memory enters context automatically; later hops remain deliberate.
The animation at the top shows this on a real store: three recall() calls walk from a profile key to a verification philosophy, loading three memories (~2.4k tokens). The branches the agent skipped are still one call away, and auto-expanding the same 12-memory hub would have cost ~8k tokens. The graph knows the roads; the agent decides the steps. Source: docs/demo/chain-walk.html.
---
Quick Start
> **keymem is an MCP server (a CLI), not a library.** Run it with npx -y keymem (recommended —
> always the latest) or install the command globally with npm i -g keymem. **Do not** add it to
> your app with npm i keymem as a dependency: it bundles openai, zod, and the MCP SDK, so
> inside an existing project it just duplicates those trees (and can clash with your app's zod/
> openai versions). The npm i keymem line npm shows on the package page is for libraries — it
> doesn't apply here.
Claude Desktop
Add to claude_desktop_config.json:
**OpenAI embeddings:**
**Local embeddings (no API key required) — bge-m3 recommended:**
> bge-m3 (multilingual, recommended) **auto-downloads ~570MB on first run**, then caches. Omit LOCAL_EMBEDDING_MODEL for the lighter default (fast-multilingual-e5-large). Cross-encoder reranking is part of the core recall path and downloads a second model on first use; set "KEYMEM_RERANK": "false" only to disable it.
Plugin (recommended — Claude Code & Codex)
The repo is also a plugin marketplace, so one install wires up everything: the MCP server
(daemon-backed shim), the UserPromptSubmit hook that passively surfaces related memories on every
prompt, and the keymem skill carrying the recall/remember protocol.
**Claude Code:**
**Codex CLI:**
Codex prompts once to trust the hook; approve it or the push path stays silent. The plugin defaults
to local bge-m3 embeddings (auto-downloads ~570MB on first run, no API key). For OpenAI
embeddings, use the manual setup below instead — plugin MCP servers only see the env they declare.
The synchronous hook waits up to 9 seconds for /inject (set KEYMEM_HOOK_TIMEOUT_MS to tune it);
local embedding and reranking can add several seconds to prompts that trigger recall.
Claude Code (manual)
Codex CLI (manual)
Use the keymem-shim entry point (not bare keymem): it runs the shared daemon the push-path hook
talks to. For the hook, add to ~/.codex/config.toml:
Codex only forwards the env vars declared in its MCP entry, so pass every KEYMEM_* /
SUPER_MEMORY_* override with --env.
That's it — recall and remember work immediately. The agent calls recall before its first reply, navigates with read_key/read_memory, and saves with remember.
Source
awesome · https://github.com/donggyun112/keymem
Browse by field
MCP servers
Traction
3 ★
added
yesterday

More in MCP servers

All 5,525 in MCP servers →

Filed under

Every tag opens the full list for that filter. Counts are the live catalogue figures.

Browse all fields →

← Back to index