Mnem

data-ai MCP Server

Git for AI Agent Knowledge. A persistent, versioned memory layer for AI systems. Hybrid GraphRAG retrieval. Runs entirely offline.

Verified
data-aidata-ai
4 views139 stars35 forksApache-2.0

Why This Matters

Discovered via github-topic:mcp and last synced 3mo ago.

Verified
Source
github-topic:mcp
Stars
139
Last synced
3mo ago
Install
Check source

Install

Install instructions not detected yet

Check the source repository for the latest setup steps.

View source instructions
36
Tools
0
Resources
0
Prompts
Standard I/O
Transport

Available Tools (36)

Tool

Description

mnem_search

Exact-property match with optional edge traversal. Fast and deterministic - no embedding required.

mnem_commit

Add nodes and/or edges as a single commit. Returns the new op-id, commit CID, and created node UUIDs.

mnem_delete_node

Hard-delete: removes the node from the current head commit. Prior commits that referenced it remain addressable. Use only when the goal is to free storage, not memory hygiene.

mnem_recent

Walk the op-log from HEAD backwards. Returns the last N operations with time, author, `agent_id`, `task_id`, and message.

mnem_stats

Repository overview: op-head, head commit, ref summary, known labels. Cheap; call this first to orient an agent to a new graph.

mnem_vector_search

Raw cosine-similarity nearest-neighbour search over stored node embeddings. Pass a model name and query vector; receive top-k matches.

mnem_global_ingest

Same as `mnem_ingest` but writes to the global graph. Use for documents that should be queryable across all sessions and projects.

mnem_retrieve

**Primary retrieval tool.** Hybrid semantic + sparse + graph search. Returns nodes pre-rendered to text plus `tokens_used` / `dropped` / `candidates_seen` metadata. Supports graph-expand, community filter, PPR, and cross-encoder rerank.

mnem_commit_relation

Compound write: resolve-or-create a subject node, resolve-or-create an object node, and connect them with a typed edge - all in one call. Prevents the duplicate-entity problem (see example below).

mnem_list_tags

List all named tags (`refs/tags/*`) in the repository.

mnem_incoming_edges

List all edges pointing to a node (reverse lookup). Equivalent to `mnem blame` in the CLI.

mnem_tombstone_node

Soft-delete: marks a node as forgotten. Hidden from retrieval by default, but the node CID and all prior commits remain intact for auditing. Use when a user says "forget X" or revokes consent.

mnem_global_retrieve

Same as `mnem_retrieve` but always targets the global graph (`~/.mnemglobal/.mnem/`). Use for cross-project, cross-session memory.

mnem_schema

Inspect node labels and edge predicates in the current commit. Use before writing queries or traversals to discover what's in the graph.

mnem_get_node

Fetch a single node by UUID. Returns full props, content size, and outgoing edge count.

mnem_global_add

Write nodes and/or edges directly to the global graph. Use for shared entities (people, orgs, conventions) that appear across multiple projects.

MIT

MIT

mnem_list_nodes

Enumerate nodes at the current head, optionally filtered by label. Returns UUID + label + summary per node.

mnem_traverse

From a start node, list outgoing neighbours reachable via specified edge labels.

mnem_resolve_or_create

Find-or-create a node by a primary-key property. If a matching `(label, anchor-property) == value` exists, its UUID is returned; otherwise a new node is committed.

mnem_community_summarize

Extractive Centroid + MMR (Maximal Marginal Relevance, diversity-promoting selection) summarizer over a caller-supplied set of node UUIDs. No LLM call - picks `k` sentences balancing proximity to the community centroid against diversity. Enabled via the `summarize` cargo feature.

mnem_ingest

Ingest a file path or inline text as a `Doc + Chunk + Entity` subgraph. Accepts `{path: "notes.md"}` or `{text: "...", source: "label"}`. Chunker options: `auto`, `paragraph`, `recursive`, `sentence_recursive`, `session`, `structural`.

mnem_global_tombstone_node

Same as `mnem_tombstone_node` but operates on the global graph.

config-driven

BM25 + SPLADE keyword scoring, fused with vector results. Enabled by `[sparse]` block in `config.toml`.

LongMemEval

500 Q hybrid-v4

MP

mnem

ConvoMem

250 (5x50)

Benchmark

mean retrieve

LoCoMo

1986 Q

mem0

mnem

MemBench

highlevel/movie 100

Command

What it does

Stage

Flag

openai

cohere

Crate

Role