I built an MCP server for a knowledge graph. It doesn't call any LLM.
I spent a while trying to give Claude a reliable memory layer. Not summaries. A way to ask "is this fact in my data" and get a binary answer. I tried RAG. It finds related content well. It doesn't tell you whether a specific claim is supported or invented. An 87% confidence score doesn't answer whether Alice has a PhD.
So I built a graph store instead. Not retrieval — grounding.
Kremis stores entity-attribute-value triples in a weighted graph. When you query it, you get back what's in the graph. Same input, same output, every time. The graph state is hashed with BLAKE3, so you can verify two instances ingested identical data.
A few weeks ago I added an MCP bridge (kremis-mcp) so Claude and Cursor can query it directly. It's a stdio process that translates MCP tool calls into HTTP requests against a local Kremis server. No external API, no embedding model, no LLM anywhere in the pipeline.
{
"mcpServers": {
"kremis": {
"command": "/path/to/kremis-mcp",
"env": { "KREMIS_URL": "http://localhost:8080" }
}
}
}
Nine tools: ingest, lookup, traverse, path, intersect, status, properties, retract, hash.
How this sits relative to other memory tools
Cognee, Graphiti, Mem0 all solve related problems but sit in a different design space. They lean on LLM extraction to build the graph from unstructured text, which is powerful but reintroduces the probabilistic layer on the write path. Kremis is the opposite tradeoff: you structure your data as EAV triples before ingesting (or you write extraction yourself), and in exchange reads are completely deterministic. No extraction on the write path, no LLM on the read path.
That makes Kremis a bad fit if you want to dump unstructured text and hope the system figures it out. It's a good fit if you need an auditable memory layer where a specific fact either is or is not in the graph, and you want to prove it.
git clone https://github.com/TyKolt/kremis.git
cd kremis
cargo build --release
github.com/TyKolt/kremis, Apache 2.0. Alpha, v0.18.1. Feedback welcome, especially on the EAV-only write path. Curious whether that's a dealbreaker in practice for people already using graph memory tools.