MCP.Market

Keymem MCP server

by donggyun112·io.github.donggyun112/keymem·v0.17.0·3 stars

Associative key-graph memory for LLM agents — recall by association, not vector similarity.

A92/100grade A
What users say
No reviews yet
Be the first
Safety scan
A92/100

full report

Adoption
Growing

3 stars404 downloads/wk

Reviews

Write one

Nobody has reviewed Keymem yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Keymem tools (14, 2 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • cleanup_expiredwrite action

    Delete all memories past their ttl. Returns count of deleted memories. Call periodically to keep memory clean.

  • correctwrite action

    Update outdated information. Use when user corrects you or info changes (e.g. moved cities, changed job). Old version is preserved but weakened — never lost. Omit keys to keep the same search terms. related_to links the updated memory to other memory IDs.

  • forget

    Permanently delete a memory. Only use for completely wrong information. For outdated info, use correct() instead — it preserves history.

  • get_conversation

    Load the original conversation turns for a past session when a recalled memory lacks the detail you need and you want the verbatim exchange. Reads the host coding agent's own on-disk transcript (Claude Code, Codex) — call list_sessions first to find a session_id. Falls back to keymem's own conversation log if a host integration wrote one. Pass turn to fetch a focused ±2-turn window (5 turns total)

  • list_memories

    List all stored memories. namespace filters by project/context. Expired memories are excluded. Prefer recall() for normal retrieval.

  • list_sessions

    List recent conversation sessions recorded by host coding agents (Claude Code, Codex) on this machine, most recently modified first. Use this to discover a session_id (and its working directory) before calling get_conversation to read the verbatim transcript. Returns [{agent, session_id, cwd, modified, preview}] where preview is the first user message. Returns an empty array if no agent transcript

  • memory_stats

    Get counts of keys, memories, and links in the system.

  • read_key

    List the memories stored under one key (concept), ranked. Returns the canonical key, its aliases, and hub metadata plus ranked memory IDs and metadata — never memory content. Call read_memory on promising handles. Use limit/offset to page through hub keys without flooding context. Pass the original query: handles are then ranked by content relevance to it, which is essential for hub keys so the ta

  • read_memory

    Read the full content of one stored memory (selected via read_key). Returns the memory and all connected key clusters so exploration can continue Key → Memory → Key. Pass via_key_id from the selected key: only that traversed edge is Hebbian-reinforced, and depth/access count increase only when this full read occurs.

  • recall

    Search long-term memory for what is already known about the user, project, or topic — call this before your first reply and whenever the topic shifts. Returns matching key clusters only (not memory content): canonical concept, aliases, key type, match score, linked-memory count, hub status, and specificity. Follow up with read_key(key_id) then read_memory(memory_id, via_key_id) to read a stored fa

  • recall_memories

    Optional compatibility mode: directly return ranked memories using BM25+dense+RRF and graph expansion. Disabled unless KEYMEM_DIRECT_RECALL=true. Prefer recall → read_key → read_memory for agent-driven navigation.

  • related

    Find other memories associated with a memory you already have (by ID). Returns neighboring memories connected by shared keys or explicit links. For normal agent-driven navigation prefer read_memory(), inspect its returned keys, then call read_key().

  • remember

    Save important information to memory. Keys are search terms — think 'what would I search to find this later?' Use 3-6 diverse keys. Before coining new keys, recall() the topic and reuse returned canonical concepts or aliases. Semantically merged synonyms become aliases in one key cluster; shared broad keys become navigable hubs. CROSS-LINGUAL: add keys in both languages. namespace groups memories

  • remember_batch

    Save multiple memories in one call. Each item: {content, keys, key_types?, namespace?, ttl_seconds?, related_to?}. Returns list of saved IDs. More efficient than multiple remember() calls.

Public scan report

scanner v0.1.9 · 2026-09-25 · same rubric, same numbers if you re-run it

no findings
  • Code scan29 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 5 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 92/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Keymem compares

Against every graded AI and agents MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
92/100
higher than 90% of 4,461 AI and agents servers
Tools
14
the typical AI and agents server has 6
Tools that change things
14%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
3
more than 75% of 2,713 AI and agents servers
Downloads a week
404
more than 84% of 1,554 AI and agents servers with a package

What its tools let an agent do: 12 read · 2 change

Install Keymem in Claude Code, Cursor or VS Code

Runs npx -y keymem on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add keymem -- npx -y keymem
Add to Cursor

What the publisher says

From the Keymem repository's README, as published. We do not edit it. Read it on GitHub

keymem

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:

Query: "Newton"
Similarity search finds: "Newton discovered gravity"  ✅
Similarity search misses: "user likes strawberries"   ❌

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

Key Space (concepts)         Value Space (memories)
[apple]   ────────┬─────────→      ↑ same memory
[gravity] ────────┘
                  │
[apple]   ────────┼─────────→ "apples are red fruit"
[fruit]   ──────┬─┘
[red]     ──────┤
                │
[fruit]   ──────┼─────────→ "user likes strawberries"
[strawberry]────┘

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 matchedkey, validity, and connectedkeys, 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.

# Optional global install (npx needs none). This puts a `keymem` command on PATH that
# MCP clients can spawn. Run bare, it starts a stdio MCP server and waits for a client —

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Keymem: common questions

Is Keymem MCP server safe?
Yes, by our scan: it is graded A (92/100). Read the Keymem safety report
How do I install Keymem?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Keymem need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Keymem maintained?
The last commit was 46 days ago (2026-09-20). The latest release is v0.17.0.
What can I use instead of Keymem?
Servers from other publishers that do the same job: MCP AutoMem MCP server, Total Agent Memory MCP server and Mnemoverse Memory MCP server. Compare all Keymem alternatives.
How does Keymem compare with other AI and agents MCP servers?
safety score 92/100 (higher than 90% of 4,461 AI and agents servers); tools 14 (the typical AI and agents server has 6); tools that change things 14% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Keymem

Same job from other publishers: the closest match first, then the best rated.

All Keymem alternatives →
  • MCP AutoMem
    Graph-vector memory for AI assistants using FalkorDB and Qdrant
    C
  • Total Agent Memory
    Persistent local memory for coding agents: temporal knowledge graph, procedural and episodic recall
    A
  • Mnemoverse Memory
    Hosted agent memory that learns from outcomes, with shared rooms. No key: mcp.mnemoverse.com/mcp
    A
  • Agent Recall
    Correction-first agent memory. Precision KPI tracks if agents heed warnings. 5 layers, local-only.
    A
  • Basic Memory
    Local-first knowledge management with bi-directional LLM sync via Markdown files.
    B