does-it-install?

← All servers

ai.sovantica/engrava

Tamper-evident audit, MindQL, and Action Records — embedded memory database for AI agents.

ai.sovantica/engrava · Repository · version 0.6.0 · 1 star · listed from registry

Install

The sweep installs into a clean prefix, but this is the command a user would run:

uvx engrava-mcp

Results by platform

Linux

MCP handshake failed2026-08-15 · probed over pypi

4 recorded runs, oldest first.

handshake failed: MCP error -32000: Connection closed
--- stderr (tail) ---
…stmcp/server.py", line 299, in run
  |     anyio.run(self.run_stdio_async)
  |   File "/home/runner/.cache/uv/archive-v0/9Mk9P1o9GZaf6LTB/lib/python3.12/site-packages/anyio/_core/_eventloop.py", line 83, in run
  |     return async_backend.run(func, args, {}, backend_options)
  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |   File "/home/runner/.cache/uv/archive-v0/9Mk9P1o9GZaf6LTB/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2481, in run
  |     return runner.run(wrapper())
  |            ^^^^^^^^^^^^^^^^^^^^^
  |   File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run
  |     return self._loop.run_until_complete(task)
  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |   File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
  |     return future.result()
  |            ^^^^^^^^^^^^^^^
  |   File "/home/runner/.cache/uv/archive-v0/9Mk9P1o9GZaf6LTB/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2464, in wrapper
  |     return await func(*args)
  |            ^^^^^^^^^^^^^^^^^
  |   File "/home/runner/.cache/uv/archive-v0/9Mk9P1o9GZaf6LTB/lib/python3.12/site-packages/mcp/server/fastmcp/server.py", line 758, in run_stdio_async
  |     async with stdio_server() as (read_stream, write_stream):
  |   File "/usr/lib/python3.12/contextlib.py", line 231, in __aexit__
  |     await self.gen.athrow(value)
  |   File "/home/runner/.cache/uv/archive-v0/9Mk9P1o9GZaf6LTB/lib/python3.12/site-packages/mcp/server/stdio.py", line 85, in stdio_server
  |     async with anyio.create_task_group() as tg:
  |   File "/home/runner/.cache/uv/archive-v0/9Mk9P1o9GZaf6LTB/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 815, in __aexit__
  |     raise BaseExceptionGroup(
  | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
  +-+---------------- 1 ----------------
    | Traceback (most recent call last):
    |   File "/home/runner/.cache/uv/archive-v0/9Mk9P1o9GZaf6LTB/lib/python3.12/site-packages/mcp/server/stdio.py", line 88, in stdio_server
    |     yield read_stream, write_stream
    |   File "/home/runner/.cache/uv/archive-v0/9Mk9P1o9GZaf6LTB/lib/python3.12/site-packages/mcp/server/fastmcp/server.py", line 759, in run_stdio_async
    |     await self._mcp_server.run(
    |   File "/home/runner/.cache/uv/archive-v0/9Mk9P1o9GZaf6LTB/lib/python3.12/site-packages/mcp/server/lowlevel/server.py", line 663, in run
    |     lifespan_context = await stack.enter_async_context(self.lifespan(self))
    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "/usr/lib/python3.12/contextlib.py", line 659, in enter_async_context
    |     result = await _enter(cm)
    |              ^^^^^^^^^^^^^^^^
    |   File "/usr/lib/python3.12/contextlib.py", line 210, in __aenter__
    |     return await anext(self.gen)
    |            ^^^^^^^^^^^^^^^^^^^^^
    |   File "/home/runner/.cache/uv/archive-v0/9Mk9P1o9GZaf6LTB/lib/python3.12/site-packages/mcp/server/fastmcp/server.py", line 141, in wrap
    |     async with lifespan(app) as context:
    |   File "/usr/lib/python3.12/contextlib.py", line 210, in __aenter__
    |     return await anext(self.gen)
    |            ^^^^^^^^^^^^^^^^^^^^^
    |   File "/home/runner/.cache/uv/archive-v0/9Mk9P1o9GZaf6LTB/lib/python3.12/site-packages/engrava_mcp/server.py", line 1470, in lifespan
    |     resolved: ResolvedStore = await resolve_store()
    |                               ^^^^^^^^^^^^^^^^^^^^^
    |   File "/home/runner/.cache/uv/archive-v0/9Mk9P1o9GZaf6LTB/lib/python3.12/site-packages/engrava_mcp/config.py", line 183, in resolve_store
    |     raise StoreResolutionError(msg)
    | engrava_mcp.config.StoreResolutionError: No engrava store configured. Set ENGRAVA_MCP_CONFIG to an engrava.yaml path or ENGRAVA_DB_PATH to a SQLite database path.
    +------------------------------------

macOS

MCP handshake failed2026-08-15 · probed over pypi

4 recorded runs, oldest first.

handshake failed: MCP error -32000: Connection closed
--- stderr (tail) ---
…    return self._loop.run_until_complete(task)
  |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  |   File "/opt/homebrew/Cellar/[email protected]/3.14.6/Frameworks/Python.framework/Versions/3.14/lib/python3.14/asyncio/base_events.py", line 719, in run_until_complete
  |     return future.result()
  |            ~~~~~~~~~~~~~^^
  |   File "/Users/runner/.cache/uv/archive-v0/oSPKIDmU1q_8OgpU/lib/python3.14/site-packages/anyio/_backends/_asyncio.py", line 2464, in wrapper
  |     return await func(*args)
  |            ^^^^^^^^^^^^^^^^^
  |   File "/Users/runner/.cache/uv/archive-v0/oSPKIDmU1q_8OgpU/lib/python3.14/site-packages/mcp/server/fastmcp/server.py", line 758, in run_stdio_async
  |     async with stdio_server() as (read_stream, write_stream):
  |                ~~~~~~~~~~~~^^
  |   File "/opt/homebrew/Cellar/[email protected]/3.14.6/Frameworks/Python.framework/Versions/3.14/lib/python3.14/contextlib.py", line 235, in __aexit__
  |     await self.gen.athrow(value)
  |   File "/Users/runner/.cache/uv/archive-v0/oSPKIDmU1q_8OgpU/lib/python3.14/site-packages/mcp/server/stdio.py", line 85, in stdio_server
  |     async with anyio.create_task_group() as tg:
  |                ~~~~~~~~~~~~~~~~~~~~~~~^^
  |   File "/Users/runner/.cache/uv/archive-v0/oSPKIDmU1q_8OgpU/lib/python3.14/site-packages/anyio/_backends/_asyncio.py", line 815, in __aexit__
  |     raise BaseExceptionGroup(
  |         "unhandled errors in a TaskGroup", self._exceptions
  |     ) from None
  | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
  +-+---------------- 1 ----------------
    | Traceback (most recent call last):
    |   File "/Users/runner/.cache/uv/archive-v0/oSPKIDmU1q_8OgpU/lib/python3.14/site-packages/mcp/server/stdio.py", line 88, in stdio_server
    |     yield read_stream, write_stream
    |   File "/Users/runner/.cache/uv/archive-v0/oSPKIDmU1q_8OgpU/lib/python3.14/site-packages/mcp/server/fastmcp/server.py", line 759, in run_stdio_async
    |     await self._mcp_server.run(
    |     ...<3 lines>...
    |     )
    |   File "/Users/runner/.cache/uv/archive-v0/oSPKIDmU1q_8OgpU/lib/python3.14/site-packages/mcp/server/lowlevel/server.py", line 663, in run
    |     lifespan_context = await stack.enter_async_context(self.lifespan(self))
    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "/opt/homebrew/Cellar/[email protected]/3.14.6/Frameworks/Python.framework/Versions/3.14/lib/python3.14/contextlib.py", line 668, in enter_async_context
    |     result = await _enter(cm)
    |              ^^^^^^^^^^^^^^^^
    |   File "/opt/homebrew/Cellar/[email protected]/3.14.6/Frameworks/Python.framework/Versions/3.14/lib/python3.14/contextlib.py", line 214, in __aenter__
    |     return await anext(self.gen)
    |            ^^^^^^^^^^^^^^^^^^^^^
    |   File "/Users/runner/.cache/uv/archive-v0/oSPKIDmU1q_8OgpU/lib/python3.14/site-packages/mcp/server/fastmcp/server.py", line 141, in wrap
    |     async with lifespan(app) as context:
    |                ~~~~~~~~^^^^^
    |   File "/opt/homebrew/Cellar/[email protected]/3.14.6/Frameworks/Python.framework/Versions/3.14/lib/python3.14/contextlib.py", line 214, in __aenter__
    |     return await anext(self.gen)
    |            ^^^^^^^^^^^^^^^^^^^^^
    |   File "/Users/runner/.cache/uv/archive-v0/oSPKIDmU1q_8OgpU/lib/python3.14/site-packages/engrava_mcp/server.py", line 1470, in lifespan
    |     resolved: ResolvedStore = await resolve_store()
    |                               ^^^^^^^^^^^^^^^^^^^^^
    |   File "/Users/runner/.cache/uv/archive-v0/oSPKIDmU1q_8OgpU/lib/python3.14/site-packages/engrava_mcp/config.py", line 183, in resolve_store
    |     raise StoreResolutionError(msg)
    | engrava_mcp.config.StoreResolutionError: No engrava store configured. Set ENGRAVA_MCP_CONFIG to an engrava.yaml path or ENGRAVA_DB_PATH to a SQLite database path.
    +------------------------------------

Windows

MCP handshake failed2026-08-15 · probed over pypi

4 recorded runs, oldest first.

handshake failed: MCP error -32000: Connection closed
--- stderr (tail) ---
…ckends\_asyncio.py", line 2481, in run
  |     return runner.run(wrapper())
  |            ^^^^^^^^^^^^^^^^^^^^^
  |   File "C:\hostedtoolcache\windows\Python\3.12.10\x64\Lib\asyncio\runners.py", line 118, in run
  |     return self._loop.run_until_complete(task)
  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |   File "C:\hostedtoolcache\windows\Python\3.12.10\x64\Lib\asyncio\base_events.py", line 691, in run_until_complete
  |     return future.result()
  |            ^^^^^^^^^^^^^^^
  |   File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\wLD2rTQrbHkjjz6s\Lib\site-packages\anyio\_backends\_asyncio.py", line 2464, in wrapper
  |     return await func(*args)
  |            ^^^^^^^^^^^^^^^^^
  |   File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\wLD2rTQrbHkjjz6s\Lib\site-packages\mcp\server\fastmcp\server.py", line 758, in run_stdio_async
  |     async with stdio_server() as (read_stream, write_stream):
  |                ^^^^^^^^^^^^^^
  |   File "C:\hostedtoolcache\windows\Python\3.12.10\x64\Lib\contextlib.py", line 231, in __aexit__
  |     await self.gen.athrow(value)
  |   File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\wLD2rTQrbHkjjz6s\Lib\site-packages\mcp\server\stdio.py", line 85, in stdio_server
  |     async with anyio.create_task_group() as tg:
  |                ^^^^^^^^^^^^^^^^^^^^^^^^^
  |   File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\wLD2rTQrbHkjjz6s\Lib\site-packages\anyio\_backends\_asyncio.py", line 815, in __aexit__
  |     raise BaseExceptionGroup(
  | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
  +-+---------------- 1 ----------------
    | Traceback (most recent call last):
    |   File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\wLD2rTQrbHkjjz6s\Lib\site-packages\mcp\server\stdio.py", line 88, in stdio_server
    |     yield read_stream, write_stream
    |   File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\wLD2rTQrbHkjjz6s\Lib\site-packages\mcp\server\fastmcp\server.py", line 759, in run_stdio_async
    |     await self._mcp_server.run(
    |   File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\wLD2rTQrbHkjjz6s\Lib\site-packages\mcp\server\lowlevel\server.py", line 663, in run
    |     lifespan_context = await stack.enter_async_context(self.lifespan(self))
    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "C:\hostedtoolcache\windows\Python\3.12.10\x64\Lib\contextlib.py", line 659, in enter_async_context
    |     result = await _enter(cm)
    |              ^^^^^^^^^^^^^^^^
    |   File "C:\hostedtoolcache\windows\Python\3.12.10\x64\Lib\contextlib.py", line 210, in __aenter__
    |     return await anext(self.gen)
    |            ^^^^^^^^^^^^^^^^^^^^^
    |   File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\wLD2rTQrbHkjjz6s\Lib\site-packages\mcp\server\fastmcp\server.py", line 141, in wrap
    |     async with lifespan(app) as context:
    |                ^^^^^^^^^^^^^
    |   File "C:\hostedtoolcache\windows\Python\3.12.10\x64\Lib\contextlib.py", line 210, in __aenter__
    |     return await anext(self.gen)
    |            ^^^^^^^^^^^^^^^^^^^^^
    |   File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\wLD2rTQrbHkjjz6s\Lib\site-packages\engrava_mcp\server.py", line 1470, in lifespan
    |     resolved: ResolvedStore = await resolve_store()
    |                               ^^^^^^^^^^^^^^^^^^^^^
    |   File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\wLD2rTQrbHkjjz6s\Lib\site-packages\engrava_mcp\config.py", line 183, in resolve_store
    |     raise StoreResolutionError(msg)
    | engrava_mcp.config.StoreResolutionError: No engrava store configured. Set ENGRAVA_MCP_CONFIG to an engrava.yaml path or ENGRAVA_DB_PATH to a SQLite database path.
    +------------------------------------

Badge

Paste this into the project README to show the current result:

[![does it install](https://img.shields.io/endpoint?url=https://doesitinstall.com/badge/ai.sovantica__engrava.json)](https://doesitinstall.com/s/ai.sovantica__engrava.html)