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
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.
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.
The packaging is the visible change, but the library moved too, mostly around retrieval and the audit path:
store.verify_journal()
, or from a shell with engrava --db engrava.db verify
.session_id
and actor_id
.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: