
Ariel Memory
io.github.Cipher208Published by GitHub account Cipher208v1.0.0Updated Oct 24, 2026
Two-layer memory MCP server for AI agents with 37 tools, RAG, graphs, wiki, auth
The publisher's own server: Memory.fit
Overview
Local SQLite-backed memory server giving AI agents persistent multi-layer memory, hybrid search, and a knowledge graph.
- What you can do
- Ariel Memory stores agent memory in plain SQLite files on the local machine. Agents see six default tools: think routes content into the right layer (facts, episodes, wiki, or graph), dream runs hybrid search across all layers and returns a token-budgeted digest, forget deletes with archival, evolve records agent personality and rules, project tracks per-project decisions and artifacts, and memory_hook supports push-model ingestion. Additional opt-in tiers expose up to 65 fine-grained operations, including a knowledge graph with typed nodes and edges, wiki pages, provenance tracking, and hourly self-maintenance.
- When to use it
- Worth adding when an assistant needs memory that persists across sessions without sending data to a cloud API or running a separate vector database. It suits agents that should remember user preferences, prior decisions, and project context, and environments where data must stay on the local network or air-gapped.
- Requirements
- Runs as a local stdio process, installed via npm package mcp-ariel-memory or PyPI a-memory. No accounts, API keys, or environment variables are declared. Optional spaCy NER models for the privacy gate and graph miners are installed separately with the a-memory-ner command; skipping them degrades the gate safely. An HTTP transport with dashboard is available via command-line flags.
Installation
In SourceWeft
- Open Ariel Memory in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
a-memory
Your AI agents forget. a-memory makes them remember. 4-tier agent memory with hybrid search and a real knowledge graph — all in plain SQLite files. Zero cloud. Zero external APIs.
[CI] [codecov] [License: MIT] [Python 3.11+] [Ruff] [MCP Compatible] [Docs] [Release]
Also available on PyPI:
pip install a-memory— optional extras:a-memory[embeddings]for real multilingual embeddings.
Why SQLite?
Every other memory server sends your agent's data through a cloud API or requires a separate vector database.
a-memory stores everything in SQLite files on your machine.
- Zero infrastructure. No Docker, no database server, no embedding API keys.
- Zero data leaving your network. Works air-gapped.
- Layer-isolated by design. User facts and agent identity never share a namespace.
- One directory = entire memory. Back up with
cp, sync with rsync.
Why this exists
Three problems a-memory solves:
① Agent self-evolution — your AI stops repeating mistakes between sessions. It remembers decisions, errors, and corrections in a dedicated agent layer, and an hourly consolidation sweep promotes what matters into long-term facts.
② User persona persistence — your agent knows who it's talking to even after weeks of silence. Preferences, history, emotional context live in the user layer, isolated from agent identity.
③ Project continuity — project tracks per-project context: decisions with rationale and outcomes, artifact maps, a graphify-powered code index — so a fresh session picks up where the last one left off.
Get started
The server runs without these, but the privacy gate (hooks ingest) and the graph
miners need two spaCy NER models. Neither is on PyPI — en-core-web-sm 404s there and
ru-core-news-sm is an unrelated placeholder — so they can only be installed by wheel URL,
and a wheel URL cannot be a dependency: PyPI rejects any distribution whose metadata
carries a direct URL. One command installs them from the URLs the package already knows:
From a source checkout, python scripts/install_ner_models.py is the same command.
Skipping them is safe: the gate falls back and reports degraded instead of failing.
Point your MCP client at it:
HTTP transport with dashboard:
Or run from source:
The seven primitives
Agents see exactly seven tools — one verb per intent, plus the event bridge (6 verbs + memory_hook), no tool-choice paralysis:
Quick demo — Python MCP client:
66 fine-grained operations exist in total, grouped into coherent opt-in tiers: the 7 primitives are exposed by default; add context (recall protocol, /new session recap, smart context budget, steering hints, tool-output compression), insight (Memory Query DSL, provenance fact-blame, quality loop, reflections, stats), write (typed memory schemas, declarative rules engine, scratchpad, counterfactuals, episodes), plus wiki and review (staged mutations, memory_report_card, daily_brief). The usual live-agent surface is one preset — ARIEL_EXPOSE=agent (59 tools), equivalent to primitives,context,insight,write,wiki,review. The remaining 7 are admin-tier: ARIEL_EXPOSE=operator (66) or all.
Tier history, because older guides still name a
brieftier: it was dissolved on 2026-09-07 —daily_briefnow ridesreview. If a doc tells you to passbrief, it is pre-1.10 and the token is simply ignored.
⚠️ Env sanitization gotcha (stdio): MCP clients pass a sanitized environment to stdio servers — setting
ARIEL_EXPOSEin your shell profile does nothing. Define the tier set in your MCP client config (theenvblock of the server entry — see configuration guide). The server logs its resolved surface at startup (tool exposure: N/M tools) — if your agent reports seeing only the primitives, check that line first, then restart the client session (tool lists are cached per session).
Features
Architecture
Comparison
Notes (Sep 2026): mem0 now ships a self-hosted Docker image and a managed cloud with hybrid BM25+entity search; chroma is 29k★ and added hybrid+FTS5 to its Cloud tier (OSS server remains vector-only). What still differentiates a-memory: zero-infra SQLite (no Docker), NaCl-encrypted auth/saga secrets, layer isolation, hourly self-maintenance, and the temporal graph timeline.
Roadmap
- 4-layer memory hierarchy with layer isolation
- Hybrid search (FTS5 + MIB binary embeddings)
- Knowledge graphs (epistemic + temporal)
- Hourly consolidation sweep + DB self-maintenance
- mcp 2.x native SDK
- Repo renamed to
Cipher208/a-memory; PyPI package live (pip install a-memory) - Temporal timeline wired end to end (think/evolve/project events + dream recent digest)
- Dream-cycle inject + auto-generated CONTEXT.md snapshot (curated context + 6 wiki perspectives + recent episodes, per-layer, per-agent)
- Phase C — auto-hooks keystone (push-model memory: per-agent conversation daemons, external event dispatcher, importance-gated auto-save, staged mutations with review/revert, dream markers, session-start inject, gap reports; guide)
- Phase D — compaction-aware rehydrate (drift log + salvage into the summarizer + one-shot rehydrate blocks; MiMoCode plugin / Hermes native MemoryProvider / CowAgent hooks — integration guide)
- Phase D — /recall protocol (multi-axis proportional recall: markers → session → semantic → expand → day; drives Hermes per-turn prefetch)
- Phase D — Skill = Memory (Markdown skills as a first-class wiki type, progressive disclosure
wiki_list → wiki_search → wiki_read, 4KB lint cap, promotion pipeline, shared SSOT sync, usage-driven evolution — skills guide) - Phase D — working memory + meta-memories (agent scratchpad re-injected at session start, deterministic reflections, smart context budget with weighted floors, counterfactual notes, was_useful quality feedback loop)
- Phase D — memory tools D1.2-D1.9 (session continuity recap + steering hints, tool-output compression + recall verification, provenance fact-blame, Memory Query DSL, typed memory schemas, declarative rules engine; coherent
ARIEL_EXPOSEtiers: context / insight / write) - Phase E — hardening & closure (18 items across 3 waves): durability — atomic L1 persistence (temp→fsync→os.replace) + per-instance ring files, a circuit breaker guarding the embedding model path (3 failures → open 30s → hash-fallback keeps recall serving), least-privilege wiki roots + traversal-safe backup restore; operations —
memory_diagnose/memory_heal(DB/migrations/L1-files/breaker checks + remigrate/reset-breakers/purge), integrity score in the report card,<cache:break>markers + stable-first inject ordering for provider prompt caches; retrieval — faceted tag queries (dimension:value, same-dim OR / cross-dim AND), memory-kind weights in ACT-R scoring, disclosure triggers («when X, surface Y» recall-side rules); wiring — realcontext_threshold/memory_pressureemitters (Hermes plugin + autohooks daemon),on_turn_endevent,wiki_writestaged mutations with revert, transition-level consolidation revert, causal-link producer onmemory_graph_add; validation — DREAM markers anchored to message start (document-fragment false positives eliminated), post-compaction semantic audit (episode coverage by the L4 set) - Phase F — L0→L4 pipeline (bi-temporal fact intervals, hot/warm/cold L0 tiers with CLACK export, SHA-256 capture dedup, hash-chained journal, provenance drill-down)
- Phase G — self-wiring graph (12 deterministic miners: sessions, markers, provenance, co-retrieval, entities, zero-result questions, wiki↔fact bridges)
- Phase H closeout — EDM/ITS dual-route rerank + eval harness (NDCG@5, drift score, negative-control protocol, LongMemEval-S adapter)
- S17 Stage-1 tail — deterministic retrieval mode, ENGRAM procedural kind, AdaptiveRAG pre-gate (27 LLM-free query features), EMA importance gate, counter-signal aliases, SHA-256 L0 dedup, zero-result miner, ru-NER privacy gate
- S18-19 wave (15 items) — global is_current view +
changed_sincedelta mode, per-query ACT-R min-max, per-block max_chars, semantic dedup gate, channel-granular sources, 3-option conflict contract (supersede/retain/annotate), orphan-anchor GC, nightly gap-registry, per-agent harness breaker, provenance edge filter, wiki↔fact metadata backlinks,wiki_readrelated-facts hydration, RU lemma keys (pymorphy3), 2-class textcat pilot (flag-gated), S17 supplements 8-11 (cold-archive drill-down, confirming layer, junk-vector detector, HDBSCAN clusters), B6 anti-hub degree cap - S20 eval — №11 ablation on MINI + LongMemEval-S (50-question stride): full dual-route arm wins on both datasets, published-baseline comparison (GPT-4o long-context league, above ChatGPT-memory); dense e5-small run 3: no parity gain over hash on this split — hash stays prod
- Hardening wave (1.12.0) — the speaker-layer defect fixed at the writer (
distill_and_routeread a kind where it needed the speaker) plus a provenance-based purge of the 65 rows it had already mislabelled; a kind classifier that no longer hands a permanent label to harness boilerplate or to compound words (pre-commit,mergeCommit); the gap registry getting the reader S18 planned but never built; the L4 expectation measured against the L4 bar instead of the L3 one (71% of thediff_gapbacklog was that one wrong number); and aqualitygate that could not fail now failing correctly — an unpinned scanner had silently moved its JSON schema out from under it - Screenshot / asciinema demo in README
- LLM-assisted consolidation on top of the deterministic sweep
- Stage 2 — tool-surface redesign (slot system, URI keys, inject/key consolidation — planned with the A-remainder)
- LongMemEval full 500-question split + dense-aware threshold retraining (e5-small parity shown, not a win on the 50-question stride)
Contributing
PRs welcome! See CONTRIBUTING.md.
License
MIT © Cipher208
⭐ If this project helps you, star it on GitHub.
Source: README.md at commit d882df7
Tools
0Version history
1- v1.0.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Memory integrations

Memory.fit
fit.memoryOfficial publisher
Hosted Memory.fit server that lets an AI read your training, sleep, recovery and nutrition data and write back weekly plans, targets and meal plans.
pg.ddx.io: the PostgreSQL community's memory
io.ddx.pgOfficial publisher
pg.ddx.io: the PostgreSQL community's memory's hosted MCP server, published by pg.ddx.io; no sign-in required; Streamable HTTP; 29 tools.
var.gg Naming Memory
gg.varOfficial publisher
Remote MCP server that suggests and searches code identifier names from domain concepts in Korean, Japanese, Chinese, Vietnamese and English, and exposes ERD…

Counterparts
ai.counterparts
Local-first long-term memory for Claude Code and Claude Desktop: the assistant writes notes about you and your projects and recalls them in later sessions.

LAHZE - Persian AI Memory Platform
Published by GitHub account pedramgholizadeh
LAHZE - Persian AI Memory Platform's hosted MCP server; no sign-in required; Streamable HTTP; 13 tools.