# repo2graph

Строит граф связей кодовой базы через Tree-sitter и BM25, возвращая фрагменты кода с номерами строк в рамках лимита токенов. Пригодится агентам для навигации по зависимостям.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 9
- Автор: Srinivasan-78
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/Srinivasan-78/repo2graph
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/mcp/repo2graph

## Что делает

Утилита разбирает проект за один проход Tree-sitter, фиксируя импорты, цепочки вызовов и историю совместных изменений файлов в Git. Поиск стартует с текстового сопоставления BM25, после чего обходит найденные связи в графе и укладывает результат в заданный бюджет токенов. Каждая выжимка кода сопровождается заголовком с путём к файлу и номерами строк вида `[cite: path:start-end]`.

Базовый режим работает автономно: серверу не нужны внешние API, сторонние базы данных или запущенный языковой сервер. Грамматики парсеров уже скомпилированы внутри пакета `tree-sitter-language-pack`. Сетевые запросы происходят лишь при явном клонировании репозиториев с GitHub, передаче контекста в модель через опцию `--answer` или первой загрузке векторных эмбеддингов.

Сервер выигрывает у обычного поиска по тексту на сложных межфайловых цепочках, но на простых запросах внутри одного файла grep остаётся точнее.

## Требования
- Нужно: Python и uv (команды через uvx)

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add repo2graph -- uvx repo2graph
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from repo2graph <команда>

### Codex

**Командой платформы**
```bash
codex mcp add repo2graph -- uvx repo2graph
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from repo2graph <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "repo2graph": {
            "command": "uvx",
            "args": [
                "repo2graph"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from repo2graph <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "repo2graph": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "repo2graph"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from repo2graph <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add repo2graph uvx repo2graph
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from repo2graph <команда>

## Когда брать
- отслеживать цепочки вызовов и импортов между модулями
- получать фрагменты кода с точными ссылками на строки
- укладывать контекст кодовой базы в жёсткий лимит токенов
- исследовать архитектуру проекта без отправки кода во внешние сервисы

## Примеры запросов агенту
- Покажи, как устроен роутинг запросов и какие функции он вызывает.
- Найди определение базового класса и покажи все модули, которые его импортируют.
- Объясни обработку ошибок в проекте, опираясь на граф вызовов.

## Похожие
- [skeletongraph](https://affpapa.org/nevibecode/mcp/skeletongraph.md) — MCP-сервер · ★ 7
- [jCodemunch MCP](https://affpapa.org/nevibecode/mcp/jcodemunch-mcp.md) — MCP-сервер · ★ 2809
- [Octocode](https://affpapa.org/nevibecode/mcp/octocode.md) — MCP-сервер · ★ 518
- [smart-explore](https://affpapa.org/nevibecode/skills/smart-explore.md) — скилл · 7300 установок
- [grepai-languages](https://affpapa.org/nevibecode/skills/grepai-languages.md) — скилл · 704 установки
- [codeseeker](https://affpapa.org/nevibecode/mcp/codeseeker.md) — MCP-сервер · ★ 20

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
