Engrava 0.5.0: a first-class MCP server
Sovantica3 min read
Engrava 0.5.0 moves the MCP server into the standalone engrava-mcp package, now available on PyPI and listed in the MCP Registry as ai.sovantica/engrava.
Engrava 0.5.0 pulls the MCP server out of the library.
Install engrava now and you get the memory library and nothing else. The server ships separately, as
engrava-mcp. The two were never really the same kind of thing — one is a dependency you import, the
other is a process your MCP client spawns — and keeping them in one package meant everyone who installed
the library also pulled in the server’s dependencies, whether or not they ran a server. Splitting them
gives each a clean install surface.
If you build directly on the Python API, nothing about your install changes:
pip install engrava
If you want Engrava as a memory server for an MCP client, reach for the standalone package instead:
uvx engrava-mcp
# or
pip install engrava-mcp
engrava-mcp is a native stdio Model Context Protocol server that sits in front of an Engrava store. It
exposes read tools, optional write tools, engrava:// resources, and guided prompts to any MCP client
that speaks stdio.
It’s also listed in the official MCP Registry as ai.sovantica/engrava — PyPI package engrava-mcp,
stdio transport — so a client that reads the registry can find it without you wiring anything by hand.
One detail that looks like a mismatch and isn’t: the library is engrava 0.5.0, but the server you
install is engrava-mcp 0.5.1. The two version independently. engrava-mcp follows Engrava’s minor line
rather than its patch releases — every 0.5.x build targets engrava>=0.5,<0.6 — so it moves on its own
patch schedule underneath. Today that lands at 0.5.1.
What changed for MCP users
In 0.4 the server rode along inside engrava as the engrava[mcp] extra. In 0.5 it graduates to a
package of its own:
| Before | After |
|---|---|
pip install "engrava[mcp]" |
pip install engrava-mcp or uvx engrava-mcp |
engrava-mcp installed by engrava |
engrava-mcp installed by the standalone package |
MCP client command: engrava-mcp |
MCP client command: uvx, args: ["engrava-mcp"] |
This only breaks you if you were running Engrava as an MCP server. A plain pip install engrava library
upgrade is untouched, and the server still reads the same engrava.yaml or database path it always did —
what moves is the install command and the launch command your client uses.
What else shipped in 0.5.0
The packaging is the visible change, but the library moved too, mostly around retrieval and the audit path:
- Scoped ranked retrieval — metadata and visibility filters now apply inside the ranked retrieval path, not only the raw scan.
- Audit verification — check the hash-chain journal from code with
store.verify_journal(), or from a shell withengrava --db engrava.db verify. - Typed provenance capture — callers can attach bounded write-time context such as
session_idandactor_id. - Reliability fixes — the sqlite-vec backend and several hybrid-fusion edge cases behave correctly now. If you were hitting either, this is the release that fixes it.
There’s also a set of opt-in lifecycle features you can switch on and evaluate against your own workload: consolidation activation, deterministic memory hygiene, and caller-side whole-turn assembly. They ship in 0.5.0, off by default; whether they earn a place in your setup is yours to judge.
engrava is the library, engrava-mcp is the server — install whichever you need:
pip install engrava
uvx engrava-mcp
Code and server docs:
Tags: engrava · mcp · agents · memory