repo-graph

A structural map of your codebase for AI coding assistants.

The model navigates to the right files by structure — instead of reading your whole repo or guessing. Works in any MCP client.

$ pip install mcp-repo-graph

Same bug, same model, same prompt — the only difference is whether repo-graph is installed.

Watch — same model, same prompt

The same bug, fixed two ways — with and without repo-graph.
~10× less context, every task.

Install — pick your client

One command — registers the server for the current project:

claude mcp add repo-graph -- uvx mcp-repo-graph --repo .

Or install as a plugin (bundles config + usage instructions):

claude plugin marketplace add James-Chahwan/repo-graph
claude plugin install repo-graph@james-chahwan

Install the extension (it wraps the MCP server and works in Chat):

code --install-extension james-chahwan.repo-graph

Or search repo-graph in the Extensions marketplace.

Add to your MCP config (~/.cursor/mcp.json or Windsurf's MCP settings):

{
  "mcpServers": {
    "repo-graph": {
      "command": "uvx",
      "args": ["mcp-repo-graph", "--repo", "."]
    }
  }
}

Download the desktop extension and open it with Claude Desktop:

github.com/James-Chahwan/repo-graph → mcpb/repo-graph-*.mcpb

Or add the same mcpServers block (see “Any MCP client”) to your Claude Desktop config.

repo-graph speaks standard MCP over stdio. Point any client at:

{
  "mcpServers": {
    "repo-graph": {
      "command": "uvx",
      "args": ["mcp-repo-graph", "--repo", "."]
    }
  }
}

Listed on the MCP Registry as io.github.James-Chahwan/repo-graph.

Zero-install run (recommended):

uvx mcp-repo-graph --repo /path/to/your/repo

Or install, then run the server pointed at a repo:

pip install mcp-repo-graph
repo-graph --repo /path/to/your/repo

What it does

repo-graph parses your codebase with tree-sitter and builds a lightweight graph of what exists, how things connect, and where the entry points are — across 20+ languages and frameworks, frontend to backend. Your assistant queries the graph, finds the minimal set of files it needs, and reads only those. Less context burned, fewer wrong guesses, faster answers — for you and the model.

Generation
generate
Navigation
statusflowtraceimpactneighbours
Activation & Context
activatefinddense_text
Health & Admin
graph_viewreload

What you can ask

Say it in plain language to your assistant — repo-graph answers structurally, in one lookup, instead of grepping and reading files.

“Where does this frontend action end up in the backend?”

trace

Cross-stack path in one hop — grep can’t link stacks.

“What breaks if I change this component?”

impact

Full downstream blast radius by tier, including transitive.

“Show me how the login feature flows.”

flow

Entry point → handlers, mapped — not a keyword guess.

“Get enough context to work in this repo.”

dense_text

Whole-repo structural map, capped to fit the context window.

“Find everything related to billing.”

activatefind

Graph activation from seed terms — the relevant cluster, ranked.

“What’s connected to this file?”

neighbours

Immediate callers, callees and siblings around a node.

See it on real repos

Graph output for popular frameworks — what your assistant gets before it reads a single file.