Skip to main content
Glama

Engraphy

Assoziatives Gedächtnis für KI-Agenten, modelliert nach dem menschlichen Geist.

Der Name stammt von Engraphy, einem alten Begriff aus der Gedächtnisforschung für den Prozess des Anlegens eines Engramms, der Spur, die eine Erinnerung im Gehirn hinterlässt. Engraphy macht das für Agenten: Es prüft jede neue Erinnerung gegen das, was es bereits weiß, bevor der Schreibvorgang abgeschlossen wird, führt Wiederholungen zusammen, verknüpft wirklich neue Fakten und überschreibt niemals stillschweigend. Nichts wird gelöscht, sodass die Historie begehbar bleibt.

Engraphy ist selbst gehostet. Es speichert, was ein Agent lernt, als typisierten Wissensgraphen auf Postgres + pgvector: Schreibvorgänge deduplizieren sich selbst gegen bestehende Erinnerungen, Abruf verschmilzt semantische und lexikalische Suche, Isolation zwischen Benutzern wird von der Datenbank erzwungen, und die gesamte Form des Gedächtnisses wird pro Anwendung als Pack deklariert.

Es existiert, um das flache JSON-, Einzelbenutzer- und stdio-Modell des Referenz-MCP-Speicherservers durch etwas zu ersetzen, das Nebenläufigkeit, Paraphrasen, Duplikate und Jahre angesammelter Erinnerungen übersteht. Es spricht das Model Context Protocol, sodass jeder MCP-Client (eine VS-Code-Erweiterung, eine Desktop-App, ein anderer Agent) es über HTTP verwenden kann.

Quelltext verfügbar. Lizenziert unter der Business Source License 1.1: Lesen, ausführen, darauf aufbauen und in Produktion für das eigene Produkt verwenden. Das Anbieten von Engraphy selbst als gehosteten oder verwalteten Dienst für Dritte ist dem Lizenzgeber bis zum Änderungsdatum vorbehalten, an dem es in Apache-2.0 übergeht. Siehe Lizenz.


Was es tut

  • Ein typisierter Gedächtnisgraph. Erinnerungen sind typisierte Knoten (fact, decision, person, event, …), verbunden durch typisierte Kanten (involves, references, supersedes, …). Die Typen, ihre Attributschemata und die Regeln, welche Kanten welche Typen verbinden dürfen, werden pro Raum in einem Pack deklariert und in Postgres durchgesetzt.

  • Schreibvorgänge, die sich selbst deduplizieren. Jeder Schreibvorgang wird eingebettet und gegen bestehende Erinnerungen gebändert. Eine fast wörtliche Wiederholung wird automatisch zusammengeführt; ein wirklich neues, aber verwandtes Faktum wird als eigener durchsuchbarer Knoten behalten und durch eine Kante verbunden (nichts wird stillschweigend absorbiert); ein Grenzfall wird als ausstehendes Duplikatprüfungs-Urteil für den Aufrufer zur Auflösung geparkt. Jeder Schreibvorgang gibt einen Resonanzbericht darüber zurück, was er berührt hat.

  • Hybrider Abruf. search verschmilzt einen Vektor-Teil (Kosinus über Einbettungen) und einen lexikalischen Teil (Postgres-Volltext) mit Reciprocal Rank Fusion, und traverse geht die Kanten entlang. Attributwerte werden in die durchsuchbare Oberfläche eingefaltet, sodass ein nur in einem typisierten Attribut gespeichertes Faktum weiterhin auffindbar ist.

  • Isolation, die die Datenbank erzwingt. Mehrere Räume und mehrere Prinzipale innerhalb eines Raums werden durch Postgres Row-Level Security getrennt, die unter einer Nicht-Superuser-Rolle läuft, nicht durch Anwendungsprüfungen, die vergessen werden können. Der Server verbindet sich als NOBYPASSRLS-Rolle.

  • Scope-Routing für LLMs gebaut. Jeder Scope trägt eine Beschreibung dessen, was er regelt; das schreibgeschützte scope_guide-Tool gibt dieses Routing-Manifest zurück, sodass ein Agent entscheiden kann, wo eine neue Erinnerung hingehört, bevor er schreibt.

  • Eine Operator-CLI und eine MCP-Tool-Oberfläche für alles vom Bootstrapping eines Raums bis zum Prägen von Tokens, Importieren von Daten, Anwenden von Packs und Verifizieren von Wiederherstellungen.

Related MCP server: gbrain

So funktioniert es

flowchart LR
    C[MCP client<br/>VS Code · desktop · agent] -->|HTTP + bearer token| S[Engraphy server<br/>FastMCP]
    S --> E[Embedding<br/>nomic-embed-text-v1.5]
    S --> DB[(Postgres 16 + pgvector<br/>nodes · edges · scopes<br/>RLS · schema enforcement)]
    P[Pack<br/>types · edges · briefing] -.declares.-> DB

Ein Schreibvorgang wird eingebettet, durch Ähnlichkeit in merge / merge-link / pending / new gebändert und unter der Identität des Aufrufers committet. Ein Lesevorgang (search, get, traverse, briefing) läuft unter RLS, sodass ein Aufrufer nur die Scopes sieht, die ihm gewährt wurden. Ein Pack deklariert die Knotentypen, Kantentypen, Attributschemata und die Session-Start-Briefing für einen Raum, sodass eine Engine viele unterschiedlich geformte Gedächtnisanwendungen bedient. Die Architekturübersicht geht den vollständigen Schreib- und Lesepfad durch.

Schnellstart

Voraussetzungen: Docker (mit Compose). Das Cloud-Profil bringt Postgres hoch, führt Migrationen aus, richtet die App-Rolle ein und startet den Server in einem Befehl.

# 1. Configure secrets (never committed)
cp deploy/.env.example .env   # then edit, or:
printf 'POSTGRES_PASSWORD=%s\nENGRAPHY_APP_ROLE_PASSWORD=%s\n' \
  "$(openssl rand -hex 16)" "$(openssl rand -hex 16)" > .env

# 2. Bring up Postgres + migrate + provision + serve
docker compose up -d          # first boot downloads the ~523 MB embedding model

# 3. Create a space, apply the starter pack, mint a client token
docker compose --profile admin run --rm admin \
  engraphy-admin space create --id personal --display-name "My Memory" --principal me
docker compose --profile admin run --rm admin \
  engraphy-admin pack apply packs/starter/pack.yaml --space personal
docker compose --profile admin run --rm admin \
  engraphy-admin token create --space personal --principal me \
    --client-name my-editor --role readwrite

Der Server läuft jetzt auf 127.0.0.1:8000 (setzen Sie einen TLS-terminierenden Reverse-Proxy davor, um ihn zu exponieren). Weisen Sie jeden MCP-Client mit dem Bearer-Token darauf hin. Der Setup-Leitfaden behandelt auch den lokalen Weg ohne Docker.

Oder lassen Sie die Skripte es tun

up.sh und provision.sh (mit up.ps1 / provision.ps1 als Windows-Äquivalente) kapseln genau die obige Sequenz und fügen das Warten hinzu, das ein Copy-Paste-Schnellstart nicht kann:

./up.sh          # writes .env with random passwords, starts the stack,
                 # then blocks until /healthz returns 200
./provision.sh   # creates the space, applies the starter pack, mints a token,
                 # and prints the client settings to paste in

up.sh pollt /healthz anstelle des Compose-Health-Status, weil Compose beim ersten Start starting meldet, solange der Modell-Cache zum Seed benötigt, was von außen wie ein Crash-Loop aussieht. Eine 200 ist das echte Signal.

Beide Skripte sind sicher erneut ausführbar: Eine vorhandene .env wird nie überschrieben, und ein vorhandener Raum oder ein bereits angewendetes Pack wird übersprungen, nicht als Fehler behandelt, sodass ein erneuter Lauf trotzdem ein frisches Token prägt.

Alles ist parametrisiert, mit Standardwerten, die unverändert funktionieren:

Standard

Überschreibung

Raum-ID

default

./provision.sh myspace oder -Space myspace

Prinzipal

me

./provision.sh myspace alice oder -Principal alice

Client-Name

my-client

drittes Positionsargument oder -ClientName

Pack

/app/packs/starter/pack.yaml

ENGRAPHY_PACK oder -Pack

Host-Port

8000

ENGRAPHY_HOST_PORT in .env oder -Port

Health-Timeout

1800s up, 600s provision

ENGRAPHY_WAIT_SECS oder -WaitSeconds

Das Token wird einmal ausgegeben und von den Skripten nie auf die Festplatte geschrieben; der Server speichert nur seinen SHA-256. Wenn Sie es verlieren, führen Sie provision.sh erneut aus, um ein neues zu erhalten.

Verwendung von einem Client

Engraphy ist ein MCP-Server, also verbindet sich ein Client und ruft Tools auf:

Tool

Was es tut

write

Dedup-gebänderter Schreibvorgang; gibt den Knoten oder ein Duplikatprüfungs-Urteil plus einen Resonanzbericht zurück.

search

Hybrider semantischer + lexikalischer Abruf über einen Scope oder alle.

traverse

Rekursiver Graphdurchlauf von einem Startknoten.

get

Vollständige Knoten plus Kantenzusammenfassungen, nach ID.

briefing

Vom Pack deklarierte Session-Start-Abschnitte (fällige Verpflichtungen, relevante Notizen, …).

scope_guide

Das Routing-Manifest: jeder beschreibbare Scope und was er regelt.

scope_list / scope_create

Lesbare Scopes auflisten / einen privaten erstellen.

link · update · supersede · resolve_duplicate

Den Graphen bearbeiten und ausstehende Urteile klären.

pending_list · stats · inbox_review

Ausstehende Schreibvorgänge, Nutzungsmetriken und das Erfassungs-Postfach prüfen.

admin_*

Raumverwaltung (Mitglieder, Tokens, Berechtigungen, Sichtbarkeit).

Siehe die Tool-Referenz für Parameter, Rückgaben und ein Beispiel pro Tool. Eine First-Party-VS-Code-Erweiterung befindet sich in vscode-extension/.

Dokumentation

  • docs/: Entwicklerdokumentation, Architektur, Setup, Packs, Tool-Referenz, Bereitstellung und ein End-to-End-Tutorial.

  • design/: das Design-Set, das Datenmodell, Abruf und Deduplizierung, Authentifizierung und Mandantenfähigkeit, Betrieb, das Pack/Ontologie-System und die Benchmark-Umgebung. Hier lebt die technische Begründung.

  • skills/: prägnante Anleitungen, die ein LLM-Agent laden kann, um Engraphy gut zu nutzen (Schreiben und Deduplizierung, Abruf, Scopes und Sichtbarkeit, Antwortdisziplin).

Anforderungen

  • Postgres 16 mit pgvector (das pgvector/pgvector:pg16-Image enthält beides).

  • Python ≥ 3.12.

  • dbmate für Migrationen (im Admin-Container gebündelt; nur für den Weg ohne Docker auf PATH benötigt).

  • Das Einbettungsmodell nomic-ai/nomic-embed-text-v1.5 (384-dim, ~523 MB, wird beim ersten Start heruntergeladen und zwischengespeichert).

Projektstatus

v0.1.0. Das Schema und der Durchsetzungskern, Engine-Verhalten (Deduplizierung, hybrider Abruf, Graphdurchlauf, Briefings), der MCP-Server mit Authentifizierung und Admin sowie die Operator-CLI sind implementiert und durch eine Live-Postgres-Testsuite sowie einen CI-Job abgedeckt, der die ausgelieferten Bereitstellungsartefakte Ende-zu-Ende testet. Eine Benchmark-Umgebung (bench/, design/09) führt die Engine gegen öffentliche Langzeitgedächtnis-Datensätze aus; sie ist ein Werkzeug zum Messen von Änderungen, keine Quelle für Marketingzahlen.

Lizenz

Engraphy ist unter der Business Source License 1.1 lizenziert (siehe LICENSE).

  • Sie dürfen Engraphy lesen, modifizieren, weiterverbreiten, selbst hosten und in Produktion als Gedächtnisschicht für Ihre eigenen Anwendungen und Agenten verwenden.

  • Sie dürfen nicht Engraphy selbst Dritten vor dem Änderungsdatum als gehosteten oder verwalteten Dienst anbieten.

  • Änderungsdatum: 2026-08-22 + 4 Jahre (2030-08-22), an dem die Lizenz in die Apache License, Version 2.0 übergeht.

Copyright (c) 2026 Devon Clark.

F
license - not found
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • 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
    C
    maintenance
    A local-first compiled knowledge graph MCP server that provides structured memory for AI agents with full-text search, vector embeddings, and timeline tracking.
    410
    8
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Persistent, semantically-searchable memory for AI agents using local PostgreSQL, pgvector, and Ollama embeddings, exposed via MCP with hybrid retrieval, knowledge graph, and auto-recall hook.
    4
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    An open-source bitemporal knowledge graph that provides long-term memory for AI agents via a native MCP endpoint, enabling conflict-aware ingest and hybrid retrieval.
    32
    AGPL 3.0

View all related MCP servers

Related MCP Connectors

  • Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.

  • Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.

  • Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.

View all MCP Connectors

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/devon-clarkk/engraphy'

If you have feedback or need assistance with the MCP directory API, please join our Discord server