Skip to content

v0.4.20 — 13 tools → 6

Latest

Choose a tag to compare

@James-Chahwan James-Chahwan released this 08 Jul 13:57

The tool surface collapses from 13 → 6

Every tool is now a natural verb backed by a Rust engine primitive (glia 0.4.18), so each call returns a complete, ranked, located answer in one shot — instead of the agent composing a dozen low-level lookups.

The 6 tools

  • orient — repo overview, entry points, and a blind-spots note (which languages/edges the graph under-links, so you know when to grep). (← status + dense_text + graph_view)
  • find — any text → the ranked nodes that matter: a symbol, keyword, stacktrace, failing test, or diff. expand=true fans out to the neighbourhood. (← find + locate + activate)
  • impact — blast radius: what a change affects or depends on, ranked and located, with likely-dead code flagged . (← impact + neighbours)
  • trace — a feature end-to-end across the stack, or the shortest path between two nodes. (← flow + trace)
  • read — a node's exact source, plus who calls it and what tests it.
  • refresh — rebuild the graph (incremental; self-updates as you edit).

Why fewer tools

The MCP layer is a fixed per-turn cost. Fewer, more powerful tools mean less overhead and less agent confusion — while the engine does the ranking, locating, and dead-code detection.

Also new

  • Liveness () and path:line now come from the engine, not a wrapper heuristic.
  • README: "Where it fits best" (monorepos, polyrepo, large/legacy codebases — grep wins on small single-language repos) and "Use it without MCP" (call repo-graph-py directly, no per-turn MCP cost).

Requires repo-graph-py>=0.4.18. Wrapper-only release; engine unchanged.

Install: uvx mcp-repo-graph install