← Blog

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 with engrava --db engrava.db verify.
  • Typed provenance capture — callers can attach bounded write-time context such as session_id and actor_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

← Back to engrava.ai