Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

repo2graph

de Srinivasan-78versión 5.0.0i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.Srinivasan-78/repo2graph

Instalar

Resumen

Descripción del creador (original en inglés)

Ask a codebase a question, get back the source that answers it — every block cited to file:line.

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Herramientas para desarrolladores

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

Necesitas

  • PyPIuv de Python instalado (para el comando uvx)

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json

{
  "mcpServers": {
    "repo2graph": {
      "command": "uvx",
      "args": [
        "repo2graph"
      ]
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add repo2graph -- uvx repo2graph

Este necesita valores en su línea de comandos, así que copia la configuración y complétalos.

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "repo2graph": {
      "command": "uvx",
      "args": [
        "repo2graph"
      ]
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este necesita valores en su línea de comandos, así que copia la configuración y complétalos.

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "repo2graph": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "repo2graph"
      ]
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 8 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub Srinivasan-78, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Herramientas para desarrolladoresi

  • Más estrellas que el 0% de los otros 4924 servidores de esta categoría
  • Publicado en el registro más recientemente que el 83% de los otros 4924 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 4924 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro repo2graph?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (5.0.0) llegó al registro hace 7 días.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: GitHub, Desktop Commander, Cloudflare MCP

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

GitHub

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

de githubMuy usado★ 34,2 milActualizado hace 5 días

Computadora o nube

Desktop Commander

MCP server for terminal commands, file operations, and process management

de wonderwhy-erMuy usado↓ 709,6 mil/sem★ 10,2 milActualizado hace 17 días

Se ejecuta en tu computadora

Cloudflare MCP

Cloudflare MCP servers

de cloudflareEn crecimiento★ 4,4 milActualizado hace 14 meses

Se ejecuta en la nube✓ mcp.cloudflare.com

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

repo2graph

Cited, token-bounded answers about a codebase, for coding agents and CI.

Ask a repository a question and get back the source that answers it. Every block is headed [cite: path:start-end], and the whole reply fits under a token ceiling that the tool enforces. One tree-sitter pass records who calls whom, who imports what, and which files keep changing together in git. Retrieval starts from BM25 matches and follows those links.

It needs no model, no API key, no language server and no database. Building, querying and the MCP server make no network calls; the only exceptions are rag --answer (opt-in, sends the pack to an LLM), repo2graph github and a rag/query target given as a GitHub spec (both clone a repository), and --vectors/embed (download the embedding model on first use). Parsers are part of that promise: tree-sitter-language-pack is pinned below 1.0 so every grammar arrives compiled into the installed wheel, rather than being downloaded on first parse — see SECURITY.md. Use it from the CLI, as an MCP server in Claude Code or Cursor, or as a GitHub Action.

Try it

uvx repo2graph demo                                   # bundled example repo, five questions answered

uvx repo2graph build . -o .r2g # index your own code uvx repo2graph rag "how does routing work" -o .r2g # a cited, budget-bounded context pack

Give an agent the same thing over MCP:

claude mcp add repo2graph -- uvx --from "repo2graph[mcp]" repo2graph-mcp .

Cursor, Claude Desktop and other clients: docs/mcp.md. Step-by-step with expected output: demo in docs/cli.md. What it produces on thirteen well-known repositories — Django, FastAPI, React, Kubernetes, Linux and others, each at a pinned commit with the command to reproduce it: examples/.

In VS Code, the extension in editors/vscode/ (a preview, built from source) shows the callers, callees, base classes and co-changed files of the symbol at the cursor, through the same MCP server.

Is it better than grep?

On cross-file structural questions, yes. On single-file lexical queries, no — grep is the better tool. Both halves are measured on 40 lexical and 40 structural questions about Flask, requests, FastAPI and Hono that repo2graph was not tuned against, scored against the definitions that answer them, every retriever held to the same token budget (method, full tables and diagnosis; raw rows in results_holdout_final.json).

Where repo2graph wins: cross-file structural questions

grep structurally cannot traverse dependency edges, compute reverse call closures, or follow cross-module delegation. On questions whose evidence provably spans a cross-file graph edge:

Budgetrepo2graphlexical search alonegrep, then read around hits
2,000 tokens29%24%14%
4,000 tokens60%48%21%
8,000 tokens79%55%38%

The graph is what does it, and that is the comparison that matters: expansion adds +5/+12/+24 pp over the same retriever with expansion switched off. Against grep the margin is +15/+39/+41 pp — it widens with budget rather than closing, because grep has no edge to follow however much room it is given. It also gets there for fewer tokens than grep at every budget, by 7, 7 and 398 mean tokens, because a cited definition is a smaller thing to return than a window around every textual hit.

Where grep wins: single-file lexical questions
Budgetrepo2graphgrep, then read around hits
2,000 tokens17%28%
4,000 tokens29%48%
8,000 tokens45%59%

On purely lexical questions where the evidence sits in a single file, text search is grep's optimum, and this gap is real: −11/−19/−14 pp. We have not closed it. The remaining cause looks like vocabulary mismatch rather than ranking — a question that says "datetime" does not match code that says "timestamp" — which is why the dense-vector path closes it to −2 pp at 8,000 tokens and more BM25 tuning has not. That path needs a downloaded model, so it is opt-in (pip install "repo2graph[rag]") and the zero-dependency default stays the default. That extra pulls PyTorch, which on Linux brings the NVIDIA CUDA wheels (several GB); the model is fetched from Hugging Face on first use and its own licence and training data are yours to review before you adopt it. Once it is cached, set HF_HUB_OFFLINE=1 so later runs make no request.

If that is too much to carry — on a CI runner, say — pip install "repo2graph[rag-static]" and --embed-backend static get dense retrieval without torch: model2vec is a token→vector table plus mean pooling, so inference is numpy, and it costs ~60 MB of packages and a ~31 MB model. It is a *different* model (256-dim against 384), not a cheaper way to run the same one, so expect it to retrieve differently — the figures above are the rag backend's. Pass the same --embed-backend on the query side as you did to embed: the recorded model id is prefixed per backend, so a mismatch is refused rather than silently fused.

Where repo2graph wins for agents: fewer turns

In simulated agent workflows (search → read → answer, via scripts/agent_eval.py). No model is in the loop — the "agent" is a deterministic policy over real ripgrep and a real index:

Task setMethodSuccessMean turnsMean tokensPrecision per read
Structural (40)repo2graph40%1.92,59012.0%
Structural (40)ripgrep10%2.558629.0%
Lexical (40)repo2graph20%1.42,07021.7%
Lexical (40)ripgrep18%3.074089.1%

Four times the structural success rate, and it reaches an answer in one or two turns where grep needs three. The turn count is the number that moved most — structural went 3.1 to 1.9 — because sharper seed ranking puts the answer in the *first* pack more often, and a turn saved is worth more to an agent than a token saved. It is not cheap: 4.4× grep's tokens on the structural set and 2.8× on the lexical one, and grep wins precision per read on both. repo2graph buys recall and turns with context; the budget-matched comparison is the single-shot tables above.

For completeness, the 35+10 question set this page used to report — visible since the first version of these tables and therefore a regression set, not evidence — now reads 44/63/80% lexical against grep's 35/61/72%, and 60/80/100% structural against grep's 20/20/70%. Those are the better-looking numbers, which is exactly why the held-out set is the one quoted above.

What it does do that grep doesn't:

  • Relationships in one hop. repo_neighbours returns a symbol's callers, callees, base classes and defining file, each with a line number. Every edge carries a confidence: a name that could mean several definitions is marked ambiguous and priced at 1/n, not guessed.
  • A hard ceiling. The pack is measured, clamped and re-measured before it's returned (12k tokens max over MCP), so an agent can't flood its own context through this tool.
  • Reverse closures from the graph. repo_blast_radius walks what depends on a symbol, bounded by hop count and visit cap, with a citation per edge.

How it compares with Serena, Aider's repo map, CodeGraphContext, code-graph-rag, Sourcegraph, Cursor's index and Claude Code's own search, and with the dependency-graph tools Madge, dependency-cruiser and CodeSee, including when to use those instead: [docs/comparison.md](docs/comparison.md). Looking for a Sourcetrail alternative? It is not a drop-in replacement — there is no interactive desktop UI — and the comparison says what it does instead.

Five questions to start with

Ask your repoWhat the graph adds
Where is authentication enforced?the guard itself, plus the routes that call it (--framework-edges names each endpoint)
What calls ?CALLS edges into it, each with a confidence score
What tests cover ?IMPORTS edges from the test module back to the code under test
What would be affected by changing ?the definition, then its direct callers from the CALLS edges into it (explain node)
Trace from route to persistence.the handler and its callees one hop at a time, each block cited to file and line

GitHub Action

- uses: actions/checkout@v4

with: { fetch-depth: 0 } # full history, so CO_CHANGE edges are meaningful

  • uses: Srinivasan-78/repo2graph@v5 with: git-history: "500" commit-branch: graph # optional: publish graph.html to a browsable branch

@v5 follows every 5.x release; pin an exact tag (@v5.0.0) to upgrade by hand. The Action never calls an LLM. Inputs and outputs: docs/cli.md.

Commands

CommandDoes
repo2graph build -o .r2gParse a repo into a graph and chunks (--incremental, --git-history N, --framework-edges)
repo2graph query " " -o .r2gBM25 search plus one graph hop
repo2graph rag " " -o .r2gBudget-bounded, cited context pack (--answer sends it to an LLM: opt-in, the only path that sends code anywhere)
repo2graph explain Why an edge exists, or why a block was retrieved
repo2graph github -o Fetch, build and clean up without a local clone
repo2graph demoIndex a bundled example and answer the five questions above
repo2graph map, repo2graph stats, repo2graph index-status, repo2graph embedRe-render graph.html, report counts and freshness, add optional dense vectors
repo2graph diffWhat changed structurally between two builds: symbols added, removed and renamed, edges, and whose callers changed
repo2graph doctor, repo2graph bug-report, repo2graph explain-path, repo2graph completionDiagnose setup, build a privacy-safe bug bundle, say why a path is (not) indexed, shell completion
repo2graph-mcp stdio MCP server: repo_map, repo_search, repo_neighbours, repo_blast_radius, and five more

Full flags: docs/cli.md. Python API: docs/python-api.md. Build cost up to 50,000 files: benchmarks/perf/README.md.

What it can't do

  • Resolve calls by type. Calls are matched by name, scoped by class, file, imports and directory. x.get() on a receiver of unknown type is recorded as a low-confidence guess, not a fact. For exact references, use a language-server tool, or hand build --scip index.scip a SCIP index (from scip-python, scip-typescript, ...) to m

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx