McpEngramMemory.Core 1.4.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package McpEngramMemory.Core --version 1.4.0
                    
NuGet\Install-Package McpEngramMemory.Core -Version 1.4.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="McpEngramMemory.Core" Version="1.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="McpEngramMemory.Core" Version="1.4.0" />
                    
Directory.Packages.props
<PackageReference Include="McpEngramMemory.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add McpEngramMemory.Core --version 1.4.0
                    
#r "nuget: McpEngramMemory.Core, 1.4.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package McpEngramMemory.Core@1.4.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=McpEngramMemory.Core&version=1.4.0
                    
Install as a Cake Addin
#tool nuget:?package=McpEngramMemory.Core&version=1.4.0
                    
Install as a Cake Tool

<p align="center"> <img src="images/banner.svg?v=1.4.0" alt="MCP Engram Memory" width="900"/> </p>

<p align="center"> <a href="https://dotnet.microsoft.com/"><img src="https://img.shields.io/badge/.NET-8%20%7C%209%20%7C%2010-512BD4" alt=".NET"/></a> <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"/></a> <a href="https://www.nuget.org/packages/McpEngramMemory.Core"><img src="https://img.shields.io/nuget/v/McpEngramMemory.Core" alt="NuGet"/></a> <img src="https://img.shields.io/badge/tests-1154%20non--live-brightgreen" alt="Tests"/> </p>

The local-first cognitive memory kernel for AI agents

Memory physics, not just storage. Most agent memory systems store context. Engram evolves context — topology-driven decay, consolidation, and contradiction handling, all running locally with zero external API.

<p align="center">

<img src="images/memory-graph.gif" alt="Engram memory graph clustering during a consolidation cycle: STM (amber) nodes migrating into LTM (blue) clusters, with pulse-highlight on retrieval" width="900"/> </p>

<p align="center"><em>The memory graph consolidating in real time — short-term (amber) memories cluster and promote to long-term (blue) during a sleep cycle.</em></p>

  • Context Control — graph-Laplacian diffusion decays trivial chats so your context window doesn't choke on noise. Important, well-connected knowledge stays sharp; transient chatter fades.
  • Contradiction Management — auto-detects when goals or architecture change, then archives the stale logic so the agent stops acting on decisions you already reversed.
  • 100% Privacy-First — local ONNX embeddings + local SQLite. Your memory never leaves your machine. Zero external API, zero cloud, zero telemetry.

See the cold-start scorecard · Get started in 5 minutes

Quickstart

# Windows — clones, builds, and wires up your AI assistant automatically
irm https://raw.githubusercontent.com/wyckit/mcp-engram-memory/main/setup.ps1 | iex
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/wyckit/mcp-engram-memory/main/setup.sh | bash

First run downloads a ~5.7 MB embedding model (bge-micro-v2) — subsequent starts are instant.

<details> <summary>Other install options (manual clone · Docker · NuGet)</summary>

Manual clone

git clone https://github.com/wyckit/mcp-engram-memory.git
cd mcp-engram-memory && dotnet restore

Add to your MCP client config:

{
  "mcpServers": {
    "engram-memory": {
      "command": "dotnet",
      "args": ["run", "--project", "/path/to/mcp-engram-memory/src/McpEngramMemory"],
      "env": { "MEMORY_TOOL_PROFILE": "minimal" }
    }
  }
}

Docker

docker build -t mcp-engram-memory .
docker run -i -v memory-data:/app/data mcp-engram-memory

NuGet library (embed the engine in your own .NET app)

dotnet add package McpEngramMemory.Core --version 1.4.0

See examples/ for ready-to-use config files.

</details>

Memory Graph Visualizer

The built-in D3.js graph viewer lets you explore your memory graph interactively.

Generate a snapshot (call this MCP tool from any AI assistant):

get_graph_snapshot   →   save the JSON   →   open visualization/memory-graph.html

<p align="center"> <img src="images/graph-overview.png" alt="Memory graph overview — 1,207 nodes, 375 edges, 178 clusters" width="860"/> </p>

<p align="center"> <img src="images/graph-detail.png" alt="Memory graph connected-only detail view" width="860"/> </p>

Features:

  • Force-directed layout — related memories cluster together, typed edges (elaborates, contradicts, depends_on, …) shown in distinct neon colors
  • Lifecycle colors — STM nodes amber, LTM nodes blue; cluster summaries marked with a dashed ring
  • Convex-hull cluster overlays — cluster membership visible at a glance
  • Search & highlight — type in the search bar to instantly dim non-matching nodes and pulse-highlight matches in gold; ‹ › buttons or Enter / Shift+Enter to cycle through results
  • Zoom / pan / rotate+ / / buttons; scroll to zoom; right-click drag to rotate the whole graph
  • Fractal density overlay — zooms out reveal a quadtree density map color-coded by lifecycle state
  • Connected-only filter — hide isolated nodes to focus on the linked knowledge graph
  • Drag-and-drop JSON loading — drop a snapshot file directly onto the viewer

The snapshot file is not committed (it's personal memory data). Generate a fresh one any time with get_graph_snapshot.

Tool Profiles

Control how many tools are exposed with MEMORY_TOOL_PROFILE:

Profile Tools What's included
minimal 17 Core CRUD + composite + admin + multi-agent — recommended starting point (default)
standard 39 Adds graph (+auto-link), lifecycle (+consolidation), clustering, intelligence, memory-diffusion kernel, spectral retrieval
full 62 Everything including expert routing, debate, synthesis, benchmarks

At a Glance

Metric Value
MCP tools 62 (profiles: 17 / 39 / 62)
Retrieval Hybrid BM25 + vector with synonym expansion, cascade retrieval, MMR diversity, auto-PRF
Embedding bge-micro-v2 (384-dim, ONNX, MIT license, runs locally, concurrent inference)
Best recall 0.792 realworld dataset, 0.771 scale dataset (hybrid mode)
Search latency ~2.7 ms production, ~0.04 ms benchmark
Storage JSON (default) or SQLite (WAL mode)
Frameworks net8.0, net9.0, net10.0
Tests 1154 tests per target framework (net8/9/10) across 85 files
CI/CD GitHub Actions: build + test on push, nightly MSA benchmarks

System Layers

Layer Stability Components
Core Stable Storage, Embeddings, Retrieval, Lifecycle, Graph
Advanced Stable Clustering, Multi-Agent Sharing, Intelligence
Orchestration Maturing Expert Routing (HMoE), Debate, Benchmarks

<p align="center"> <img src="images/how-it-works.svg?v=1.2.0" alt="How It Works — store, search, link, route, with automatic diffusion subsystem and lifecycle transitions" width="900"/> </p>

<p align="center"> <img src="images/retrieval-pipeline.svg?v=1.2.0" alt="9-stage retrieval pipeline including v0.9.0 spectral re-ranking" width="900"/> </p>

AI Assistant Setup

Model execution belongs to the host harness, not the Engram server: expert profiles route to persona-backed memory namespaces, while the host model reasons over the retrieved evidence. See Model and Reasoning Routing for canonical task tiers, the current Codex model mapping, reasoning escalation rules, and ready-to-use profiles.

Copy the reference harness for your tool — each includes recall/store/routing patterns:

Tool Harness File MCP Config
Claude Code examples/CLAUDE.md~/.claude/CLAUDE.md examples/claude-code.json
GitHub Copilot examples/copilot-instructions.md.github/ examples/vscode-copilot.json
Google Gemini GEMINI.md → workspace root Gemini CLI config
OpenAI Codex examples/AGENTS.md → project root Codex config

Claude Code users: Route memory sub-agents to Sonnet (model: "sonnet") and utility sub-agents to Haiku (model: "haiku") to maximize your subscription. See the harness for details.

For step-by-step setup prompts, see AI Assistant Setup.

Cost-Optimized Usage (Claude Code)

Tier Model What runs here
Main thread Opus Coding, architecture, reasoning, decisions
Memory sub-agents Sonnet (model: "sonnet") All engram MCP tool calls: search, store, dispatch, link, merge
Utility sub-agents Haiku (model: "haiku") Codebase exploration, file searches, grep research, simple lookups

Opus thinks, Sonnet remembers, Haiku explores.

MCP Tools (62)

Group Tools Description
Core Memory store_memory, store_batch, search_memory, delete_memory Vector CRUD with namespace isolation, batch import, and lifecycle-aware search
Composite remember, recall (with spectralMode), reflect, get_context_block High-level wrappers with auto-dedup, auto-linking, expert routing, context assembly, and graph-aware spectral re-ranking on recall (default auto)
Knowledge Graph link_memories, unlink_memories, get_neighbors, traverse_graph Directed graph with 7 relation types and multi-hop BFS; similarity-based auto-link densification runs as a 6-hour background sweep
Clustering create_cluster, update_cluster, store_cluster_summary, get_cluster, list_clusters Semantic grouping with auto-computed centroids
Lifecycle promote_memory, memory_feedback, deep_recall, configure_decay State transitions (STM/LTM/archived) and per-namespace decay configuration; spectral decay diffusion and sleep consolidation run automatically as background services
Memory Diffusion compute_diffusion_basis, diffusion_stats, invalidate_diffusion, spectral_recall Graph-Laplacian eigenbasis primitive shared by decay, consolidation, and retrieval; standalone graph-aware retrieval
Intelligence detect_duplicates, find_contradictions, merge_memories, uncollapse_cluster, list_collapse_history Dedup, contradiction detection, merge, collapse reversal
Expert Routing dispatch_task, create_expert, get_domain_tree, link_to_parent HMoE semantic routing with 3-level domain tree
Multi-Agent cross_search, share_namespace, unshare_namespace, list_shared, whoami Namespace sharing, permissions, cross-namespace RRF search
Debate consult_expert_panel, map_debate_graph, resolve_debate, purge_debates Multi-perspective analysis with debate tracking
Synthesis synthesize_memories Map-reduce synthesis via a local SLM served by Ollama. For fully in-process generation, embed McpEngramMemory.Core and add the optional McpEngramMemory.Synthesis.Onnx package
Accretion get_pending_collapses, collapse_cluster, dismiss_collapse DBSCAN cluster detection and two-phase summarization (the density scan runs as a 30-min background sweep)
Admin get_memory, cognitive_stats, engram_status, get_metrics, reset_metrics Inspection, system-wide statistics, background-worker health, and latency metrics
Maintenance rebuild_embeddings, compression_stats Re-embed entries and storage diagnostics
Benchmarks run_benchmark, run_agent_outcome_benchmark, run_live_agent_outcome_benchmark, compare_live_agent_outcome_artifacts, check_for_regression, run_mrcr_benchmark, compare_mrcr_artifacts IR quality validation, proxy and live memory-condition benchmarking, artifact diffing, CI regression gating, and MRCR v2 long-context A/B
Visualization get_graph_snapshot Memory-graph JSON snapshot (nodes, typed edges, clusters) for the built-in D3 viewer (visualization/memory-graph.html)

Full tool documentation: MCP Tools Reference

Environment Variables

Variable Default Description
MEMORY_TOOL_PROFILE minimal Tool profile: minimal (17), standard (39), full (62)
AGENT_ID default Agent identity for multi-agent namespace sharing
MEMORY_STORAGE json Storage backend: json, sqlite, or sqlserver
MEMORY_SQLITE_PATH data/memory.db SQLite database path (when MEMORY_STORAGE=sqlite)
MEMORY_SQLSERVER_CONNECTION required SQL Server connection string (when MEMORY_STORAGE=sqlserver)
MEMORY_SQLSERVER_SCHEMA dbo SQL Server schema name (when MEMORY_STORAGE=sqlserver)
MEMORY_MAX_NAMESPACE_SIZE unlimited Max entries per namespace
MEMORY_MAX_TOTAL_COUNT unlimited Max total entries across all namespaces

NuGet / GitHub Packages

The server ships as a dotnet global tool, and the core engine as a library you can embed in your own .NET applications.

Server (global tool)

dotnet tool install --global McpEngramMemory --version 1.4.0
engram-memory

Core engine (library)

# nuget.org
dotnet add package McpEngramMemory.Core --version 1.4.0

# GitHub Packages
dotnet add package McpEngramMemory.Core --version 1.4.0 \
  --source https://nuget.pkg.github.com/wyckit/index.json
Optional: in-process synthesis

synthesize_memories generates through an ITextGenerator. The server ships one implementation — OllamaClient, talking to a local Ollama daemon. If you want generation fully in-process with no daemon, add the optional ONNX backend when embedding the library:

dotnet add package McpEngramMemory.Synthesis.Onnx --version 1.4.0
using McpEngramMemory.Core.Services.Synthesis;

ITextGenerator generator = new OnnxGenAiTextGenerator(modelDir); // stage a model first

It lives in its own package because ONNX Runtime GenAI ships native binaries for every platform it supports — roughly 500 MB. Keeping it separate means neither the McpEngramMemory tool nor a plain McpEngramMemory.Core install pays that cost. Stage a model with scripts/fetch-synthesis-model.ps1.

The McpEngramMemory server does not support SYNTHESIS_BACKEND=onnx; it fails at startup with a pointer to this package. In-process synthesis is for hosts embedding the Core library.

using McpEngramMemory.Core.Services;
using McpEngramMemory.Core.Services.Storage;

var persistence = new PersistenceManager();
var embedding = new OnnxEmbeddingService();
var index = new CognitiveIndex(persistence);

// Store
var vector = embedding.Embed("The capital of France is Paris");
var entry = new CognitiveEntry("fact-1", vector, "default", "The capital of France is Paris", "facts");
index.Upsert(entry);

// Search
var results = index.Search(embedding.Embed("French capital"), "default", k: 5);

Documentation

Doc Description
First 5 Minutes Store, close, recall — the whole loop
Cheat Sheet One-page quick reference
MCP Tools Reference Full documentation for all 62 tools
Architecture System design, retrieval pipeline, data flow
Services All services with descriptions
Internals Retrieval, quantization, persistence deep dive
Project Structure File tree and module organization
AI Assistant Setup Step-by-step setup prompts for each tool
Sample Prompts Power prompts and usage patterns
Benchmarks IR quality results and mode selection guide
MRCR v2 Benchmark Long-context A/B (full context vs. hybrid retrieval) via Claude CLI subscription
Testing Test coverage breakdown and current CI coverage

Build & Test

cd mcp-engram-memory
dotnet build
dotnet test    # full suite, including slower MSA benchmark cases

Tech Stack

License

MIT

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on McpEngramMemory.Core:

Package Downloads
McpEngramMemory.Synthesis.Onnx

In-process ONNX Runtime GenAI text-generation backend for MCP Engram Memory synthesis. Optional companion to McpEngramMemory.Core: install it only if you want map-reduce memory synthesis to run fully in-process instead of against an Ollama daemon. Carries the ONNX Runtime GenAI native runtimes, which are large — see the package README.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.5.0 117 8/11/2026
1.4.0 109 8/10/2026
1.2.0 153 6/4/2026
1.1.0 131 5/8/2026
1.0.0 134 4/29/2026
0.9.0 146 4/27/2026
0.8.1 143 4/22/2026
0.7.1 138 4/20/2026
0.7.0 134 4/16/2026
0.6.1 133 3/31/2026
0.6.0 124 3/31/2026
0.5.5 125 3/25/2026
0.5.4 120 3/22/2026
0.5.2 113 3/22/2026
0.5.1 112 3/21/2026
0.5.0 123 3/21/2026
0.4.1 150 3/10/2026
0.4.0 124 3/10/2026