OpenSEO
Keyword research, site audits, rank tracking and AI visibility for your AI agent.
MindQL queries, hybrid search, and a thought graph - read/write memory for AI agents.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
3/3 Prüfungen bestanden · Läuft auf deinem Computer · ✓ Befehle geprüft am 14. Nov. 2026
Zuerst: Welche KI nutzt du?
Wähle deine App, dann erscheinen die Schritte unten.
Klappt mit Claude, aber erst etwas vorbereiten
1 Einstellung(en) auszufüllen (ENGRAVA_DB_PATH) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
Kopiere diese Nachricht in einen Claude-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.
Installiere bitte den MCP server Engrava für Claude auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe uv mit uv --version. Fehlt es, sag mir, dass ich es von https://docs.astral.sh/uv/getting-started/installation/ installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "mcpServers": { "engrava": { "command": "uvx", "args": [ "engrava-mcp" ], "env": { "ENGRAVA_DB_PATH": "your-value" } } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Lass bei ENGRAVA_DB_PATH "your-value" stehen und sag mir, dass ich den echten Wert selbst in die Datei oder das Feld der App einfüge. Bitte mich nie, einen Schlüssel in den Chat zu schreiben. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von Engrava wirklich erscheinen.Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.
Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter
uv --versionMac: ⌘ + Leertaste drücken, Terminal eingeben, Enter
Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen
Noch nicht installiert: uv hat keinen Klick-Installer. Kopiere den Einzeiler für dein System (macOS oder Windows) von der offiziellen uv-Seite ins Terminal · Python muss nicht extra installiert werden, uv lädt es bei Bedarf selbst
Download-Seite von uv öffnen ↗
Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: uv --version
Einmal installieren, gilt für alles, was uv braucht
Das sind Programmeinstellungen, keine Schlüssel. Keine Registrierung nötig; wie vom Autor beschrieben ausfüllen.
ENGRAVA_DB_PATH Absolute path to the SQLite database file. Created if missing; its directory must exist. Enough on its own: full-text search, the graph and MindQL work, but vector search needs ENGRAVA_MCP_CONFIG.Die Beschreibungen sind noch im englischen Original.
SettingsDeveloperEdit Config
{
"mcpServers": {
"engrava": {
"command": "uvx",
"args": [
"engrava-mcp"
],
"env": {
"ENGRAVA_DB_PATH": "your-value"
}
}
}
}Nutze Engrava und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude sagt, dass es Engrava nutzt, oder ein Werkzeug von Engrava in der Antwort zeigt, bist du verbunden
Der Befehl oben funktioniert auch ohne diese Werte. Füge sie nur hinzu, wenn du etwas ändern willst, nach der Beschreibung des Autors.
ENGRAVA_MCP_CONFIG Absolute path to an engrava.yaml, for an embedding provider (vector search) and the thought/edge journal. When set, it takes precedence and ENGRAVA_DB_PATH is not read.ENGRAVA_MCP_READ_ONLY Set to true to register no write tools.Die Beschreibungen sind noch im englischen Original.
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
ChatGPT kann Engrava noch nicht verbinden
Engrava läuft auf deinem Computer, aber ChatGPT verbindet nur Server, die im Web laufen
A · Eine App nutzen, die Engrava verbinden kann
Klappt mit Claude Code, aber erst etwas vorbereiten
1 Einstellung(en) auszufüllen (ENGRAVA_DB_PATH) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
Kopiere diese Nachricht in einen Claude Code-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.
Installiere bitte den MCP server Engrava für Claude Code auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe uv mit uv --version. Fehlt es, sag mir, dass ich es von https://docs.astral.sh/uv/getting-started/installation/ installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): claude mcp add --scope user engrava --env ENGRAVA_DB_PATH=your-value -- uvx engrava-mcp 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Lass bei ENGRAVA_DB_PATH "your-value" stehen und sag mir, dass ich den echten Wert selbst in die Datei oder das Feld der App einfüge. Bitte mich nie, einen Schlüssel in den Chat zu schreiben. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von Engrava wirklich erscheinen.Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.
Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter
uv --versionMac: ⌘ + Leertaste drücken, Terminal eingeben, Enter
Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen
Noch nicht installiert: uv hat keinen Klick-Installer. Kopiere den Einzeiler für dein System (macOS oder Windows) von der offiziellen uv-Seite ins Terminal · Python muss nicht extra installiert werden, uv lädt es bei Bedarf selbst
Download-Seite von uv öffnen ↗
Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: uv --version
Einmal installieren, gilt für alles, was uv braucht
Das sind Programmeinstellungen, keine Schlüssel. Keine Registrierung nötig; wie vom Autor beschrieben ausfüllen.
ENGRAVA_DB_PATH Absolute path to the SQLite database file. Created if missing; its directory must exist. Enough on its own: full-text search, the graph and MindQL work, but vector search needs ENGRAVA_MCP_CONFIG.Die Beschreibungen sind noch im englischen Original.
Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen
claude mcp add --scope user engrava --env ENGRAVA_DB_PATH=your-value -- uvx engrava-mcpEngrava sollte in der Liste als verbunden erscheinen
Nutze Engrava und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude Code sagt, dass es Engrava nutzt, oder ein Werkzeug von Engrava in der Antwort zeigt, bist du verbunden
Der Befehl oben funktioniert auch ohne diese Werte. Füge sie nur hinzu, wenn du etwas ändern willst, nach der Beschreibung des Autors.
ENGRAVA_MCP_CONFIG Absolute path to an engrava.yaml, for an embedding provider (vector search) and the thought/edge journal. When set, it takes precedence and ENGRAVA_DB_PATH is not read.ENGRAVA_MCP_READ_ONLY Set to true to register no write tools.Die Beschreibungen sind noch im englischen Original.
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit Cursor, aber erst etwas vorbereiten
1 Einstellung(en) auszufüllen (ENGRAVA_DB_PATH) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
Kopiere diese Nachricht in einen Cursor-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.
Installiere bitte den MCP server Engrava für Cursor auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe uv mit uv --version. Fehlt es, sag mir, dass ich es von https://docs.astral.sh/uv/getting-started/installation/ installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "mcpServers": { "engrava": { "command": "uvx", "args": [ "engrava-mcp" ], "env": { "ENGRAVA_DB_PATH": "your-value" } } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Lass bei ENGRAVA_DB_PATH "your-value" stehen und sag mir, dass ich den echten Wert selbst in die Datei oder das Feld der App einfüge. Bitte mich nie, einen Schlüssel in den Chat zu schreiben. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von Engrava wirklich erscheinen.Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.
Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter
uv --versionMac: ⌘ + Leertaste drücken, Terminal eingeben, Enter
Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen
Noch nicht installiert: uv hat keinen Klick-Installer. Kopiere den Einzeiler für dein System (macOS oder Windows) von der offiziellen uv-Seite ins Terminal · Python muss nicht extra installiert werden, uv lädt es bei Bedarf selbst
Download-Seite von uv öffnen ↗
Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: uv --version
Einmal installieren, gilt für alles, was uv braucht
Das sind Programmeinstellungen, keine Schlüssel. Keine Registrierung nötig; wie vom Autor beschrieben ausfüllen.
ENGRAVA_DB_PATH Absolute path to the SQLite database file. Created if missing; its directory must exist. Enough on its own: full-text search, the graph and MindQL work, but vector search needs ENGRAVA_MCP_CONFIG.Die Beschreibungen sind noch im englischen Original.
In den Einstellungen von Engrava ist ENGRAVA_DB_PATH leer; trag deinen Schlüssel ein und speichere
Nutze Engrava und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Cursor sagt, dass es Engrava nutzt, oder ein Werkzeug von Engrava in der Antwort zeigt, bist du verbunden
Der Befehl oben funktioniert auch ohne diese Werte. Füge sie nur hinzu, wenn du etwas ändern willst, nach der Beschreibung des Autors.
ENGRAVA_MCP_CONFIG Absolute path to an engrava.yaml, for an embedding provider (vector search) and the thought/edge journal. When set, it takes precedence and ENGRAVA_DB_PATH is not read.ENGRAVA_MCP_READ_ONLY Set to true to register no write tools.Die Beschreibungen sind noch im englischen Original.
Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit VS Code, aber erst etwas vorbereiten
1 Einstellung(en) auszufüllen (ENGRAVA_DB_PATH) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
Kopiere diese Nachricht in einen VS Code-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.
Installiere bitte den MCP server Engrava für VS Code auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe uv mit uv --version. Fehlt es, sag mir, dass ich es von https://docs.astral.sh/uv/getting-started/installation/ installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "servers": { "engrava": { "type": "stdio", "command": "uvx", "args": [ "engrava-mcp" ], "env": { "ENGRAVA_DB_PATH": "your-value" } } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Lass bei ENGRAVA_DB_PATH "your-value" stehen und sag mir, dass ich den echten Wert selbst in die Datei oder das Feld der App einfüge. Bitte mich nie, einen Schlüssel in den Chat zu schreiben. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von Engrava wirklich erscheinen.Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.
Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter
uv --versionMac: ⌘ + Leertaste drücken, Terminal eingeben, Enter
Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen
Noch nicht installiert: uv hat keinen Klick-Installer. Kopiere den Einzeiler für dein System (macOS oder Windows) von der offiziellen uv-Seite ins Terminal · Python muss nicht extra installiert werden, uv lädt es bei Bedarf selbst
Download-Seite von uv öffnen ↗
Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: uv --version
Einmal installieren, gilt für alles, was uv braucht
Das sind Programmeinstellungen, keine Schlüssel. Keine Registrierung nötig; wie vom Autor beschrieben ausfüllen.
ENGRAVA_DB_PATH Absolute path to the SQLite database file. Created if missing; its directory must exist. Enough on its own: full-text search, the graph and MindQL work, but vector search needs ENGRAVA_MCP_CONFIG.Die Beschreibungen sind noch im englischen Original.
VS Code fragt nach einer Bestätigung; klicke Install
In den Einstellungen von Engrava ist ENGRAVA_DB_PATH leer; trag deinen Schlüssel ein und speichere
Nutze Engrava und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn VS Code sagt, dass es Engrava nutzt, oder ein Werkzeug von Engrava in der Antwort zeigt, bist du verbunden
Der Befehl oben funktioniert auch ohne diese Werte. Füge sie nur hinzu, wenn du etwas ändern willst, nach der Beschreibung des Autors.
ENGRAVA_MCP_CONFIG Absolute path to an engrava.yaml, for an embedding provider (vector search) and the thought/edge journal. When set, it takes precedence and ENGRAVA_DB_PATH is not read.ENGRAVA_MCP_READ_ONLY Set to true to register no write tools.Die Beschreibungen sind noch im englischen Original.
Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Claude Code
claude mcp add --scope user engrava --env ENGRAVA_DB_PATH=your-value -- uvx engrava-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"engrava": {
"command": "uvx",
"args": [
"engrava-mcp"
],
"env": {
"ENGRAVA_DB_PATH": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"engrava": {
"command": "uvx",
"args": [
"engrava-mcp"
],
"env": {
"ENGRAVA_DB_PATH": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"engrava": {
"type": "stdio",
"command": "uvx",
"args": [
"engrava-mcp"
],
"env": {
"ENGRAVA_DB_PATH": "your-value"
}
}
}
}ENGRAVA_DB_PATH erforderlich envENGRAVA_MCP_CONFIG envENGRAVA_MCP_READ_ONLY envDie Beschreibungen sind noch im englischen Original.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Basierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.
Laufen auf deinem Computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 16. Nov. 2026
Der Registry-Name wurde über die Domain sovantica.ai bestätigt (die Registry prüft, wem die Domain gehört)
Code zuletzt geändert: vor 7 Tagen
Nutzt MIT
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Keine Einträge auf OSV.dev für engrava-mcp@0.7.0
Prüft nur diese Paketversion, nicht alle Abhängigkeiten · geprüft 15. Nov. 2026
Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.
Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.
Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.
Noch keine Bewertungen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt vor 7 Tagen geändert, und die neueste Version (0.7.0) kam vor 44 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: OpenSEO, Exa, Mockserver, Microsoft Learn MCP, Docs
Gleiche Kategorie, andere Entwickler, Befehle bereits geprüft. Offizielle zuerst, dann nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Keyword research, site audits, rank tracking and AI visibility for your AI agent.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Mock, record/replay, verify and chaos-test any HTTP, REST, gRPC or LLM dependency over MCP.
Official Microsoft Learn MCP Server – real-time, trusted docs & code samples for AI and LLMs.
Search and read Empryo's documentation. Read-only, no auth, no local access.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
The [Model Context Protocol](https://modelcontextprotocol.io) server for [Engrava](https://github.com/sovantica/engrava) — expose an agent memory database to any MCP client (Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, …) over stdio.
engrava-mcp is a standalone, runnable package that consumes Engrava's public API. It is the one way to run Engrava as a memory server; the engrava library itself ships no MCP code.
uv tool install engrava-mcp # recommended for daily use: a persistent install
engrava-mcp # spawned by your MCP client over stdio
uvx engrava-mcp runs it without an install step, and pip install engrava-mcp works too. uvx keeps its environment in a cache. When that cache is cold, the first start waits for the download; see Optional providers for the [local] extra, where the download is largest.
Installing engrava-mcp pulls in engrava transitively, so you also get the import engrava library in the same environment.
engrava-mcp follows Engrava's version: `engrava-mcp X.Y.z` targets `engrava X.Y` and requires engrava >=X.Y, =0.5,<0.6 | | 0.6.x | >=0.6,<0.7 | | 0.7.x | >=0.7,<0.8 |
The dependency range is the source of truth. Normal installs resolve a compatible engrava automatically; if you pin engrava yourself, keep it within that range. If no matching engrava-mcp exists yet for an engrava newer than the table's last row, that pairing is not yet verified/supported — not broken; stay on a supported pair until a matching engrava-mcp ships.
| Goal | Install |
|---|---|
| Build on the Engrava Python API (memory DB in your own code) | pip install engrava |
| Run Engrava as a memory server for an MCP client | uvx engrava-mcp (or pip install engrava-mcp) |
There is no third option.
engrava[mcp]The server used to ship inside Engrava as the engrava[mcp] extra and an in-engrava engrava-mcp command. As of Engrava 0.5.0 it lives here instead.
| Before | After |
|---|---|
pip install "engrava[mcp]" | pip install engrava-mcp (or uvx engrava-mcp) |
engrava-mcp (installed by engrava) | engrava-mcp (installed by this package) |
client mcp.json: "command": "engrava-mcp" | client mcp.json: "command": "uvx", "args": ["engrava-mcp"] |
pip install "engrava[mcp]" against Engrava 0.5 does not fail — pip ignores the now-unknown extra and quietly installs bare engrava, so it can look like the server installed when it did not. Install engrava-mcp instead.engrava[mcp]>=...) to depend on engrava-mcp, not just reinstall.engrava.yaml / env vars work exactly as before (see Configuration).The server resolves its store from environment variables, in priority order:
| Variable | Meaning |
|---|---|
ENGRAVA_MCP_CONFIG | Path to an engrava.yaml. Built with the full configuration — embedding provider, vector backend, journal, TTL. The thought/edge journal is configured here: set journal: enabled: true to turn it on. Recommended. |
ENGRAVA_DB_PATH | Path to a bare SQLite database file. Use an absolute path: a relative one resolves against the server's working directory, which the client chooses. Zero-config quick-start; no embedding provider is configured, so semantic (vector) search is inert — full-text search, the graph, and MindQL still work. This route builds the store with no journal; use ENGRAVA_MCP_CONFIG for that. "Zero-config" means Engrava's default search policy, so search_memory's recency_now is honoured on this route too — recency is scored against the timestamp you supply, under Engrava's default search weights. |
ENGRAVA_MCP_READ_ONLY | When set to 1 / true / yes, the write tools are not registered and no read makes a write of its own — including a deferred access-count update a store with access tracking on would otherwise buffer and flush on close. Every tool's readOnlyHint annotation is therefore accurate under this mode, on every configuration route. Read-only mode governs the tools, not how the database is opened. At startup the server still opens the file read-write, creates it if it is missing, and upgrades its schema to the one its Engrava version uses, so a database file the server cannot write cannot be served in this mode either. |
Recommended: give the MCP server the same engrava.yaml your application uses. The yaml is the only place to declare an embedding provider (and its model / key), which the server needs to embed a *new query* at search time for semantic search. With only ENGRAVA_DB_PATH set, the server emits a startup warning that semantic search is inert and points you at ENGRAVA_MCP_CONFIG.
At search time, the server embeds the query with the provider this yaml declares. Whether this server's writes embed anything is decided by the same yaml's embeddings.auto_embed, which Engrava leaves off by default. With it off, a thought created through store_thought gets no embedding, so search_memory's vector ranking cannot match it — its keyword ranking still can — and an update_thought leaves whatever embedding the thought already had as it was, not refreshed. With it on, creating a thought, or changing its essence or content, also calls the provider.
Engrava extensions that hook the store — anything wired through an engrava.yaml's hooks: section — are attached only on the ENGRAVA_MCP_CONFIG launch. ENGRAVA_DB_PATH opens a bare database and carries no configuration, so it runs with Engrava's default hooks and cannot attach a store-hook extension. That is deliberate: it is an intentionally minimal read/write facade.
Installing such an extension and starting with ENGRAVA_DB_PATH therefore leaves its store hooks unattached in this server. When an installed package advertises any extension, the server emits a startup warning naming it — it reports what is advertised, not what each one does, since it never loads them itself — so you can tell the difference between "nothing advertised" and "advertised but nothing wired it here". If reading the installed-package metadata raises an ordinary error, the server attempts to log that instead and carries on starting. Both go through Python's logging, so whether and where they surface is up to your logging configuration. To wire a store hook, launch with ENGRAVA_MCP_CONFIG pointing at an engrava.yaml with a hooks: section:
hooks:
class: "my_package.hooks.MyHooks"
engrava.yamldatabase:
path: /absolute/path/to/memory.db embeddings: provider: openai-compatible # or: ollama, sentence-transformer, huggingface model: text-embedding-3-small api_key: ${OPENAI_API_KEY}
A relative database.path resolves against the server process's working directory, which the MCP client chooses, not against the yaml's folder.
Point your MCP client at the server over stdio. For example, a typical mcp.json entry:
{
"mcpServers": { "engrava": { "command": "engrava-mcp", "env": { "ENGRAVA_MCP_CONFIG": "/absolute/path/to/engrava.yaml" } } } }
A ${VAR} value in the engrava.yaml, such as ${OPENAI_API_KEY}, is read from the server's own environment, so add that variable to the same env block, unless the client is known to pass its own environment through.
This assumes uv tool install engrava-mcp. If your client cannot find the command, give its absolute path; uv tool dir --bin prints the directory. Without an install, use "command": "uvx", "args": ["engrava-mcp"].
Use ENGRAVA_DB_PATH instead of ENGRAVA_MCP_CONFIG for the zero-config quick-start, and add "ENGRAVA_MCP_READ_ONLY": "1" for an app-writes / agent-reads deployment.
engrava-mcp # console script
python -m engrava_mcp # module run python -m engrava_mcp.server # module run (server module directly)
For an MCP deployment, prefer an embedding provider that runs outside the server process: Ollama (provider: ollama) or an OpenAI-compatible endpoint (provider: openai-compatible). The default install already covers both, and the server then loads no embedding model itself.
The default install supports the vector backend and HTTP-based embedding providers (OpenAI / Ollama) once configured in the yaml. Heavier providers are opt-in extras that mirror Engrava's own extras:
uvx --from "engrava-mcp[local]" engrava-mcp # sentence-transformers (local model)
uvx --from "engrava-mcp[hf]" engrava-mcp # HuggingFace Inference API uvx --from "engrava-mcp[openai]" engrava-mcp # OpenAI-compatible embeddings deps uvx --from "engrava-mcp[ollama]" engrava-mcp # Ollama embeddings deps
[local] runs the model inside the server process and installs PyTorch, which can add several gigabytes. A first start on a cold uvx cache waits for that download; later starts reuse the cache. uv tool install "engrava-mcp[local]" pays the download once, at install time. A model that is not already in the local model cache is downloaded when it is first loaded.
get_thought, search_memory, search_keywords, list_memory, query_memory, memory_stats, get_edges, list_edges (read); store_thought, update_thought, link_thoughts, delete_thought, delete_edge (write, gated by ENGRAVA_MCP_READ_ONLY).engrava://thought/{thought_id}, engrava://stats, engrava://recent.summarize_recent_memory, find_related, reflect_on_topic.query_memory accepts only MindQL FIND queries; raw SQL and every other command are rejected. It returns at most 5000 rows. A limit argument replaces the query's own LIMIT; without one, a LIMIT outside 1–5000 is refused.
get_edges traverses a thought's edges by direction (IN / OUT / BOTH); with limit, at most that many edges, the highest-weight ones first, and without it, every edge. list_edges browses edges filtered by type, source, or metadata.
link_thoughts accepts optional edge metadata (JSON fields that list_edges can filter on). search_memory accepts an optional recency_now (ISO-8601 timestamp) giving the moment to measure age against (transaction time); recency takes part in the ranking only when you pass it.
pip install -e ".[dev]"
ruff check src/ tests/ ruff format --check src/ tests/ mypy --strict src/ pytest --cov --cov-fail-under=90
MIT