jamjet-labs/engram-mcp-server
Dauerhafter Speicher für KI-Agenten — temporaler Wissensgraph, hybride Suche, SQLite oder PostgreSQL.
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.0Oder über crates.io installieren:
cargo install jamjet-engram-server
engram serveClaude 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.
MCP-Tools (11)
Speicher-Tools (7)
Tool | Beschreibung |
| 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 |
| 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 |
| 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. |
| 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. |
| 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. |
| 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. |
| 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 |
| Speichert Chat-Nachrichten für eine Konversation per ID. Nebeneffekte: Schreibt Nachrichten in den Speicher und löst optional die Faktenextraktion aus (gesteuert durch |
| 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. |
| 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. |
| 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 |
| Lokal, kostenlos, keine API-Keys |
OpenAI-kompatibel |
| OpenAI, Azure, Groq, Together, Mistral, DeepSeek, vLLM, LM Studio, ... |
Anthropic |
| Claude via Messages API |
| Gemini via generateContent | |
Shell-Befehl |
| Pipe an ein beliebiges externes Skript |
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.0Warum 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 |
|
|
Java |
| Maven Central |
Spring Boot |
| Maven Central |
Rust |
|
|
Verwandtes
JamJet — die vollständige agenten-native Laufzeitumgebung (übergeordnetes Projekt)
java-ai-memory.dev — Vergleich mit Mem0, Zep, LangChain4j, Spring AI und anderen
Lizenz
Apache 2.0 — siehe LICENSE.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jamjet-labs/engram-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server