repo-graph: a code graph for agent navigation

repo-graph

An MCP server builds a graph of code entities, relations and flows so the agent finds the right files without reading everything

  • 50 ★ on the repository
  • Last commit
  • MIT
MCP server

Extended access

Why this level

  • The server reads repository sources and writes a cache to .glia/graph
  • The install command edits agent configs and grants auto-allow for the tool calls
All reasons and checks

james-chahwan/repo-graph

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/repo-graph

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The server reads repository sources and writes a cache to .glia/graph
  • The install command edits agent configs and grants auto-allow for the tool calls

This is third-party code. Review the repository files before installing.

What it does

repo-graph scans a repository once and builds a graph: modules, classes, functions, routes, services and components, plus the links between them, meaning imports, calls and cross-stack HTTP requests. The agent works with six tools: orient, find, impact, trace, read and refresh. It gets a project map in a few hundred tokens instead of thousands of lines of code. The graph links a fetch or axios call on the frontend to the route and handler on the backend, even when the two sides share no string. gRPC, GraphQL, WebSocket, queues and events work the same way. Go, Rust, TypeScript, React, Angular, Vue, Python, Java and Kotlin, Scala, C#, Ruby, PHP, Swift, C and C++, Dart, Elixir, Solidity and Terraform are supported. impact computes the blast radius of a change, trace follows a feature from route to data, and find also accepts error text or a stacktrace. When there is no answer, the server tells fact from heuristic. Each tool also works as a shell command, for example uvx mcp-repo-graph find checkout.

Who it is for. Developers of monorepos, multi-service systems and legacy code, where an agent burns context on reading unneeded files.

Good fit when

  • A monorepo with a frontend and backend in different languages and a bug that crosses an HTTP call
  • An unfamiliar legacy project where it is unclear what touches what
  • You need the blast radius of a change in a payments service before making it
  • A test fails and the stacktrace must become a list of files to read
  • A feature runs through a queue, an event and gRPC across several services

Not a fit when

  • A small single-language project with a clear task: the model reads the files itself and the graph is overhead
  • The goal is to save tokens: the MCP layer adds a fixed cost on every turn
  • You need analysis of a language outside the list: the graph will be partial and orient will show blind spots
  • The code cannot be scanned on a local machine and must run only remotely

Example request

Trace the user login from the route to the database and show what would break if I change UserService.

MCP

Transport
stdio
Authentication
not required

Environment variables

REPO_GRAPH_WATCH
A value of 0 turns off the file watcher

Limitations

You need Python 3.11 and uv to run through uvx, and wheels with the Rust engine exist for Linux, macOS and Windows. The file watcher keeps the graph in memory: about 165 MB on a project of 3.5 thousand nodes and up to 940 MB on a very large one, and REPO_GRAPH_WATCH=0 turns it off.

The first start in each repository reparses everything. Links between sides are built heuristically, so the server flags blind spots and the kind of answer, fact or guess. The token saving was shown by the author in one case, a fixed operator in a Go and Angular project, and cannot be generalized to every repository.

How to disable. Run uvx mcp-repo-graph uninstall: it removes the config, instruction block and permissions for all agents and leaves graph data in .glia/graph. You can delete that folder by hand.

FAQ

How do I install repo-graph with one command?

uvx mcp-repo-graph install finds Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, Codex, Gemini CLI, opencode and Kiro, writes their MCP config and adds an instruction block. With --dry-run it only shows the plan and changes nothing.

Do I need the MCP server to use the graph?

No. Each of the six tools is a shell command, for example uvx mcp-repo-graph trace login. A resident MCP server suits a long agent session, while commands fit CI and occasional questions: loading the graph takes about 0.6 seconds on a project of three thousand nodes.

What does the impact tool do?

It shows the blast radius of a change: what it affects going forward or what it depends on going back, with the reason for the link on each row. A big radius comes as an overview of 25 rows, and you narrow it with scope or ask for every row with the full flag.

Are my code and the graph sent anywhere?

No. There is no telemetry, update check or data collection, and the graph lives in the project's .glia/graph. The network is needed only to install packages and when a git URL is passed to --repo.

Which languages does the graph cover?

Go, Rust, TypeScript with React, Angular and Vue, Python, Java and Kotlin, Scala, Clojure, C#, Ruby, PHP, Swift, C and C++, Dart, Elixir, Solidity, Terraform and SCSS. orient lists partially extracted areas as blind spots.

Discussion

No questions or reviews yet.

CodeGraph (Rust)

codegraph-rust

A Rust code graph for agents: four MCP tools show what an edit will touch, how the architecture fits together and where the fragile spots are

MCP serverExtended access915Repository stars

Local code structure graph: builds a repository map with tree-sitter and serves the assistant only the context a change actually touches over MCP

MCP serverExtended access32.7KRepository stars

Local code graph for agents: an MCP server returns entry points, symbol links and change impact in one call

MCP serverExtended access77.5KRepository stars

A CLI and MCP server that build a code graph with Tree-sitter so an agent reads only needed functions in review, saving tokens

CLIExtended access76Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
repo-graph: a code graph for agent navigation (this card)nonot required50
CodeGraphnonot required77,481a code graph with no focus on links across languages and services
Serenanonot required31,335semantic operations through language servers, while repo-graph builds its graph with a Rust engine

README in short

The README explains the problem of spending context on orientation, then shows a demo on a Go and Angular project: 75,308 tokens and 4 minutes 36 seconds without the graph against 29,838 tokens and about 30 seconds with it. Next come a language table, per-client install, a tool reference, how it works, the data format and a privacy policy.

README badge

Report a problem