Skip to main content
Glama
jamjet-labs

jamjet-labs/engram-mcp-server

by jamjet-labs

Dauerhafter Speicher für KI-Agenten — temporaler Wissensgraph, hybride Suche, SQLite oder PostgreSQL.

crates.io Docker MCP Registry License

java-ai-memory.dev · Quellcode · JamJet-Dokumentation · Discord


Engram ist eine dauerhafte Speicherschicht für KI-Agenten. Es extrahiert Fakten aus Konversationen, speichert sie in einem temporalen Wissensgraphen und ruft sie mittels hybrider semantischer + Stichwort-Suche ab — unterstützt durch eine einzelne SQLite-Datei oder eine PostgreSQL-Datenbank.

Dieses Repository hostet den Glama-Registry-Eintrag. Der Quellcode befindet sich im Haupt-JamJet-Repository.

Schnellstart — 30 Sekunden

# Docker — uses local Ollama by default
docker run --rm -i \
  -v engram-data:/data \
  ghcr.io/jamjet-labs/engram-server:0.5.0

Oder über crates.io installieren:

cargo install jamjet-engram-server
engram serve

Claude Desktop-Konfiguration

Hinzufügen zu ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "engram": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", "engram-data:/data",
        "ghcr.io/jamjet-labs/engram-server:0.5.0"
      ]
    }
  }
}

Nach dem Neustart stehen dem Modell 11 MCP-Tools zur Verfügung.

Related MCP server: Graphiti FastMCP Server

MCP-Tools (11)

Speicher-Tools (7)

Tool

Beschreibung

memory_add

Extrahiert und speichert Fakten aus Konversationsnachrichten mittels LLM-gestützter Faktenextraktion. Nebeneffekte: Ruft das konfigurierte LLM auf, um Fakten zu parsen, und schreibt sie dann in den Wissensgraphen. Gibt die IDs der extrahierten Fakten zurück. Erfordert ein messages-Array und eine user_id.

memory_recall

Semantische Suche über gespeicherte Fakten mittels Vektorähnlichkeit. Nur lesend, keine Nebeneffekte. Gibt nach Relevanz sortierte Fakten zurück, die der Abfrage entsprechen, gefiltert nach user_id und optionaler org_id. Verwenden Sie dies, um relevanten Kontext vor der Generierung einer Antwort abzurufen.

memory_context

Stellt einen kontextbezogenen Block mit Token-Budget für LLM-Prompts zusammen, mit stufenbasierter Faktenauswahl. Nur lesend. Gibt einen formatierten String der relevantesten Fakten zurück, begrenzt auf das angegebene Token-Budget. Verwenden Sie dies anstelle von memory_recall, wenn Sie einen sofort einsatzbereiten Prompt-Schnipsel benötigen.

memory_search

Stichwortsuche über Fakten mittels Volltextsuche (SQLite FTS5 / Postgres). Nur lesend, keine Nebeneffekte. Gibt Fakten zurück, die exakten Stichworten entsprechen. Verwenden Sie dies, wenn Sie präzise Begriffübereinstimmungen anstelle der semantischen Ähnlichkeit von memory_recall benötigen.

memory_forget

Löscht einen Fakt per ID (Soft-Delete) mit optionalem Grund. Nebeneffekt: Markiert den Fakt im Wissensgraphen als gelöscht (entfernt ihn nicht physisch). Über dieses Tool nicht umkehrbar. Verwenden Sie dies, wenn ein Benutzer die Entfernung spezifischer Informationen anfordert.

memory_stats

Ruft aggregierte Statistiken ab: Gesamtzahl der Fakten, gültige (nicht gelöschte) Fakten, Entitätenanzahl und Beziehungsanzahl. Nur lesend, keine Nebeneffekte. Verwenden Sie dies, um Größe und Zustand des Speichers zu verstehen.

memory_consolidate

Führt einen Wartungszyklus über den Wissensgraphen aus — veraltete Fakten abbauen, Fakten mit hoher Konfidenz fördern, Duplikate entfernen und Cluster zusammenfassen. Nebeneffekte: Ändert Fakt-Scores und kann Fakten zusammenführen oder archivieren. Führen Sie dies regelmäßig aus, um den Speicher aktuell zu halten.

Nachrichten-Speicher-Tools (4)

Tool

Beschreibung

messages_save

Speichert Chat-Nachrichten für eine Konversation per ID. Nebeneffekte: Schreibt Nachrichten in den Speicher und löst optional die Faktenextraktion aus (gesteuert durch --extract-on-save). Verwenden Sie dies, um den vollständigen Konversationsverlauf zusammen mit extrahierten Fakten dauerhaft zu speichern.

messages_get

Ruft alle Nachrichten für eine Konversation per ID ab. Nur lesend, keine Nebeneffekte. Gibt das geordnete Nachrichten-Array zurück. Verwenden Sie dies, um eine vergangene Konversation erneut abzuspielen oder zu überprüfen.

messages_list

Listet alle Konversations-IDs im Nachrichtenspeicher auf. Nur lesend, keine Nebeneffekte. Gibt ein Array von Konversations-ID-Strings zurück. Verwenden Sie dies, um herauszufinden, welche Konversationen gespeichert sind, bevor Sie sie mit messages_get abrufen.

messages_delete

Löscht alle Nachrichten für eine Konversation per ID. Nebeneffekt: Entfernt die Nachrichten der Konversation dauerhaft aus dem Speicher. Nicht umkehrbar. Beeinflusst keine extrahierten Fakten — verwenden Sie dafür memory_forget.

Alle Speicher-Tools sind nach (org_id, user_id, session_id) gegliedert — org ist die gröbste, session die feinste Ebene.

LLM-Provider

Provider-agnostisch. Ein Binary, setzen Sie ENGRAM_LLM_PROVIDER=... und legen Sie los:

Provider

Env-Wert

Hinweise

Ollama

ollama (Standard)

Lokal, kostenlos, keine API-Keys

OpenAI-kompatibel

openai-compatible

OpenAI, Azure, Groq, Together, Mistral, DeepSeek, vLLM, LM Studio, ...

Anthropic

anthropic

Claude via Messages API

Google

google

Gemini via generateContent

Shell-Befehl

command

Pipe an ein beliebiges externes Skript

Mock

mock

Deterministisch, nur für Tests

# Example: use Groq instead of Ollama
docker run --rm -i \
  -e ENGRAM_LLM_PROVIDER=openai-compatible \
  -e ENGRAM_OPENAI_BASE_URL=https://api.groq.com/openai/v1 \
  -e OPENAI_API_KEY=gsk_... \
  -v engram-data:/data \
  ghcr.io/jamjet-labs/engram-server:0.5.0

Warum Engram?

Problem

Engrams Antwort

Jede Agenten-Speicherbibliothek ist Python-first

Rust-Kern mit nativen Python-, Java- und MCP-Clients

Benötigt Postgres + Qdrant + Neo4j zum Ausprobieren

Einzelne SQLite-Datei (keine Infrastruktur) oder Postgres, wenn Sie es brauchen

Konversationsverlauf ist kein Wissensspeicher

Faktenextraktions-Pipeline — strukturierte Fakten aus Nachrichten

Alte Fakten driften ab und widersprechen sich

Konflikterkennung + Konsolidierung — abbauen, fördern, deduplizieren, zusammenfassen

Speicherabruf ist entweder semantisch ODER Stichwort

Hybride Suche — Vektorsuche + FTS5 in einer Abfrage

MCP-Unterstützung ist ein nachträglicher Einfall

MCP-nativ — 11 Tools, die von einem einzigen Binary bereitgestellt werden

Speicher kann nicht pro Benutzer oder Mandant isoliert werden

Erstklassige Scopes — org / user / session in jede Abfrage integriert

Client-SDKs

Sprache

Paket

Installation

Python

jamjet (enthält EngramClient)

pip install jamjet

Java

dev.jamjet:jamjet-sdk (enthält EngramClient)

Maven Central

Spring Boot

dev.jamjet:engram-spring-boot-starter

Maven Central

Rust

jamjet-engram (direkt einbetten)

cargo add jamjet-engram

Verwandtes

Lizenz

Apache 2.0 — siehe LICENSE.


Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Portable MCP memory server giving AI agents persistent, verified, cross-session memory. 30 tools, SQLite + cloud sync, Chrome Extension for every AI chat platform. The only JavaScript MCP memory server. Includes behavioral learning engine, semantic search, knowledge scoping, session quality scoring, and web dashboard.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A temporally-aware knowledge graph MCP server for AI agents, enabling episodic ingestion, entity management, and semantic search with support for multiple LLM and embedding providers.
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Persistent memory MCP server for AI agents, featuring a visual interface to browse, search, edit, and delete memory. It provides tools for capturing episodes, recalling, consolidating, crystallizing traits, and forgetting, with local SQLite storage and optional authenticated web UI.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that enables persistent, hybrid, local memory for LLM agents, with vector + BM25 search, knowledge graph, and policy-driven retention, providing token-budgeted context injection for AI assistants.
    MIT