LabscoMCP early access ↗
NickCirvMCP SERVER · OFFICIAL PROJECT

EngramX Context Spine

Ask a local knowledge graph of your repo instead of opening the files — six stdio MCP tools over a SQLite index that `engram init` builds on your own machine, with no account and no cloud.

by NickCirv ↗Code Intelligence & Repository Indexing✓ Official

LABSCO SUMMARY

The MCP surface is the query half of engram.

Pointed at a project, engram-serve gives an agent six ways to ask about a codebase without opening the files, and every answer comes from an index sitting on your own disk — no account, nothing uploaded. Two things shape what you actually get: the automatic read-interception engram is known for arrives through engram install-hook in Claude Code rather than through these six tools, and the graph is a snapshot that answers for the repo as of your last engram init unless you wire up engram watch or engram hooks install to rebuild it.

What it is

engramx is an npm package that indexes a codebase into a local SQLite knowledge graph and then serves that graph to an MCP client. The MCP server is one of the binaries in the package — engram-serve — and speaks JSON-RPC over stdio. The config block is npx -y -p engramx engram-serve /path/to/your/project, or engram-serve with the project path in args once the package is installed globally. The project path is baked into the arguments, so it is one server instance per repo. The graph is built beforehand by engram init, which writes .engram/graph.db inside the project from a tree-sitter parse plus git history; the same file is what the CLI and the Claude Code hooks read.

What you get

  • Natural-language search over the index — query_graph answers from the graph rather than from file contents
  • Orientation in an unfamiliar repo — god_nodes for the most-connected entities, graph_stats for node and edge counts with a confidence breakdown
  • shortest_path traces the connection between two concepts, so you can ask how one part of the codebase reaches another
  • list_mistakes returns past failure nodes — engram captures these from the repo's git revert history, and filters out the ones a later refactor made stale
  • benchmark measures token reduction on the repo the server points at. The README's own figure is an 89.1% aggregate per-file reduction across 87 files of engram's repo (163,122 tokens read raw against 17,722), and it labels that a structural context-packet reduction rather than a bill saving
  • 10 languages parsed into the AST graph: TypeScript, JavaScript, Python, Go, Rust, Java, C, C++, Ruby, PHP
  • A REST route to the same graph — engram server --http serves /query, /gods, /stats, /path, /mistakes and /hook-stats on port 7337, bound to 127.0.0.1

Requirements

Nothing to authorize — no account, no API key, no cloud service; the README states the only network call is npm install. What it does need is Node.js 20+ and a graph to serve: npm install -g engramx, then engram init . in the project before you point a client at it, because engram-serve reads .engram/graph.db. There are no native dependencies — SQLite runs through sql.js WASM, so no Rust, Python or system libraries. Every environment variable is optional: ENGRAM_API_TOKEN is the bearer token for the HTTP server and is auto-generated at ~/.engram/http-server.token when unset, ENGRAM_MISTAKE_GUARD turns pre-mortem warnings on ('1' warns, '2' denies), ENGRAM_ANTHROPIC_MEMORY_PATH and ENGRAM_MCP_CONFIG_PATH override file locations, and ENGRAM_NO_UPDATE_CHECK set to '1' silences the update notice. Apache 2.0.

Setup effort

One command — npm install -g engramx