Open-source causal memory for AI agents: persistent, explainable, MCP-native memory (13 tools).
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Genesys Memory.
memory_storeStore a new memory. Use `related` for writer-specified **typed** edges (`{id, type}`); `related_to` is legacy and always creates `caused_by`. Optional `category`. May return `possible_conflicts` (heuristic hints).
memory_amendRecord a correction: creates a new memory that **supersedes** an existing one. The old memory is kept (decayed in recall), not deleted.
memory_recallRecall memories by natural language query (vector + keyword + graph spreading activation). Supports `verbosity: "concise"` for lightweight payloads.
memory_searchFiltered vector search by status, category, date (`since`), last-active date (`active_since`), or entity. Pass an **empty query** to enumerate by recency instead (no embedder needed) β with `since`/`active_since` this answers "what's new since I last looked" without knowing what to query for.
memory_traverseWalk the causal graph from a node. Returns reachable **nodes and the edges** of the induced subgraph (`source/target/type/weight/created_by`) β a superset of the BFS tree, so paths can be reconstructed. Honors `edge_types`.
memory_explainExplain a memory's score. Includes a `score_model` block (formula + live per-force breakdown + staleness note) and `removal_impact`.
The intelligence layer for AI memory.
Papez doesn't just remember what happened; it remembers why. A scoring engine + causal graph + lifecycle manager for AI agent memory. Speaks MCP natively.
| System | Score | Protocol |
|---|---|---|
| Papez | 85.55 Β± 0.37 | Frozen: gpt-4o-mini answerer + judge, temp 0, n=1,540, cats 1β4, 10 runs (July 2026) |
| Zep | 75.14 | Comparable published setup |
| Mem0 | 66.9 | Comparable published setup (Mem0 paper) |
Self-reported vendor figures above ~90 use different answerers/judges and are not comparable β the oracle retrieval ceiling under this frozen protocol is 94.9. Reproduce it yourself: Astrix-Labs/locomo-harness Β· full methodology Β· per-run results.
Hosted product: papez.ai β your personal memory for AI, carried across ChatGPT, Claude, and every MCP app Β· Pricing Β· Developer docs Β· Benchmark methodology (85.55 on LoCoMo, certified over 10 runs, receipts published)
Papez is a scoring engine, causal graph, and lifecycle manager for AI memory. Memories are scored by a multiplicative formula (relevance Γ connectivity Γ reactivation), connected in a causal graph, and actively forgotten when they become irrelevant.
This package (papez) is the core library: an in-memory causal graph engine with optional JSON persistence, plus a stdio MCP server. It has no database dependency and no REST API. A hosted product built on top of this library β with Postgres, additional storage backends, and a REST/HTTP MCP API β is available separately at api.papez.ai; it is not part of this package.
Your AI remembers everything but understands nothing. Papez fixes that.
Requires Python 3.11 or newer.
Install the package. The base install has zero database dependencies β state lives in memory and is optionally persisted to a JSON file.
Optional extras:
Run the stdio MCP server directly:
Add to your claude_desktop_config.json:
The stdio server is a single local process. Under load β or during a restart or redeploy of a hosted transport in front of it β a tool call can transiently fail or the connection can briefly go unresponsive. Memory writes and reads are not worth crashing an agent turn over, so clients should degrade gracefully rather than treat a memory call as fatal:
{"error": "...", "retryable": bool} payload instead of a protocol-level
MCP failure, so a memory hiccup never crashes the transport. The
retryable flag encodes the guidance below β true only for read tools.memory_recall, memory_search, memory_traverse,
memory_explain, memory_stats) with a short bounded backoff (e.g. 2β3
attempts). These have no side effects worth worrying about beyond reactivation
bookkeeping.memory_store / memory_amend on an ambiguous timeout
β a silent success followed by a retry creates a duplicate node. Prefer to
continue the turn and reconcile on the next memory_recall, or pass a stable
source_session so duplicates are easy to spot.| Tool | Description |
|---|---|
memory_store | Store a new memory. Use related for writer-specified typed edges ({id, type}); related_to is legacy and always creates caused_by. Optional category. May return possible_conflicts (heuristic hints). |
memory_amend | Record a correction: creates a new memory that supersedes an existing one. The old memory is kept (decayed in recall), not deleted. |
memory_recall | Recall memories by natural language query (vector + keyword + graph spreading activation). Supports verbosity: "concise" for lightweight payloads. |
memory_search | Filtered vector search by status, category, date (since), last-active date (active_since), or entity. Pass an empty query to enumerate by recency instead (no embedder needed) β with since/active_since this answers "what's new since I last looked" without knowing what to query for. |
memory_traverse | Walk the causal graph from a node. Returns reachable nodes and the edges of the induced subgraph (source/target/type/weight/created_by) β a superset of the BFS tree, so paths can be reconstructed. Honors edge_types. |
memory_explain | Explain a memory's score. Includes a score_model block (formula + live per-force breakdown + staleness note) and removal_impact. |
memory_stats | Get memory system statistics |
pin_memory | Pin a memory so it's never forgotten |
unpin_memory | Unpin a previously pinned memory |
delete_memory | Permanently delete a memory |
list_core_memories | List core memories, optionally filtered by category |
set_core_preferences | Set user preferences for core memory categories |
promote_to_org | Promote a private memory to org visibility |
memory_store's related argument lets the writer set edge semantics instead of
guessing. Each entry is {"id": "<node-id>", "type": "<edge-type>"}, directed
new_node --type--> target (so supersedes means the new node supersedes the
target). Invalid types are rejected before the node is created β explicit
writes never half-succeed. related_to still exists but always creates
caused_by; prefer related.
To correct a fact, use memory_amend(node_id, content, reason=...): it stores the
new version, links it SUPERSEDES β old, and keeps the old memory for audit.
Recall automatically deprioritizes superseded hits and tags them with
superseded_by.
When you memory_store something that lexically disagrees with an auto-link
candidate (a changed number, a negation), the result may include
possible_conflicts β heuristic hints, not verified contradictions, and never
materialized as edges. Use them to decide whether to memory_amend.
memory_recall(query, verbosity="concise") skips the causal-chain enrichment and
returns only id / summary / status / score / activation / is_core (plus
superseded_by when set) per hit β much cheaper on tokens for high-frequency
lookups. verbosity="full" (the default) is unchanged. Reactivation writes still
occur in both modes (they are governed by read_only, not verbosity).
See docs/scoring.md for what activation / decay_score
actually mean β in short, it is a retention weight that rises when a memory is
recalled, not a countdown to deletion.
Every memory is scored by three forces multiplied together:
Because the formula is multiplicative, a memory must score on all three axes to survive. A highly connected but never-accessed memory still decays. A frequently recalled but causally orphaned memory still fades.
Factual signals from GitHub, npm, and our automated checks β not a rating.
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/genesys-memory)<a href="https://allmcps.com/mcp/genesys-memory"><img src="https://allmcps.com/api/badge/genesys-memory?style=directory" alt="Genesys Memory on AllMCPs" /></a>