# arbor

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

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

## Что делает

Arbor разбирает проект в семантический граф: функции, классы и модули становятся узлами, а вызовы, импорты и наследование — рёбрами. По этому графу агент находит вызывающих и вызываемых, считает радиус последствий при правке символа и прокладывает кратчайший путь между двумя точками кода. Ребра несут уверенность, а неоднозначные места помечены явно: где граф сомневается, он об этом говорит, а не подставляет правдоподобную догадку.

Логика живёт в CLI `arbor`. Кроме пары команд для терминала есть MCP-инструменты вроде `find_api_usages`, поэтому тот же граф доступен агенту в Claude, Codex, Cursor и других клиентах. Отдельно идёт проверка `arbor retirements`: она находит в Python-проекте вызовы SDK OpenAI, Anthropic и Google, которые упираются в выведенную или выводимую из эксплуатации модель, и показывает замену с тем, что придётся поменять. То же можно повесить на GitHub Action. Обе проверки работают локально, без аккаунта и ключа API.

Разбор кода для новых команд пока только Python, у остального графа извлечение не менялось. Сохранённый граф при первом обращении после обновления пересобирается один раз, так что первый запуск будет дольше обычного.

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

## Установка

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

**Установка**
- Команды запуска нет в реестре MCP — смотрите README репозитория

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

## Примеры запросов агенту
- Покажи через arbor, кто вызывает эту функцию, и насколько глубоко идёт цепочка
- Найди в Python-проекте вызовы SDK OpenAI, Anthropic и Google с выведенными моделями и предложи замену
- Что сломается, если я поменяю сигнатуру этого класса?

## Похожие
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33918
- [Netdata](https://affpapa.org/nevibecode/mcp/netdata.md) — MCP-сервер · ★ 81115
- [browser-use](https://affpapa.org/nevibecode/mcp/browser-use.md) — MCP-сервер · ★ 119160
- [Codebase Memory](https://affpapa.org/nevibecode/mcp/codebase-memory.md) — MCP-сервер · ★ 47392
- [mcp-server](https://affpapa.org/nevibecode/mcp/mcp-server.md) — MCP-сервер · ★ 43872
- [AIHawk](https://affpapa.org/nevibecode/mcp/aihawk.md) — MCP-сервер · ★ 32221

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