Arbor — граф кода для агентов и MCP-сервер
Arbor
Строит граф вызовов и зависимостей по коду и отвечает агенту, кто вызывает функцию и что сломается после правки
- 162 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Arbor читает весь код проекта и пишет граф в каталог индекса; хук Claude Code меняет настройки агента
- Скрипт установки запускается через curl и bash: стоит прочитать его заранее
Установка
- Работает в
Ручная установка
cargo install arbor-graph-cli && arbor setupУстановка и индексация проекта; затем подключение сервера.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Arbor читает весь код проекта и пишет граф в каталог индекса; хук Claude Code меняет настройки агента
- Скрипт установки запускается через curl и bash: стоит прочитать его заранее
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Arbor разбирает проект и строит семантический граф: функции, классы и модули становятся узлами, вызовы, импорты и наследование ребрами. По нему агент получает детерминированные ответы без догадок по тексту: кто вызывает символ напрямую и через цепочку, какой путь между двумя точками, насколько велик радиус поражения правки с глубиной, достоверностью и уровнем опасности. У ребер есть оценка уверенности, а неоднозначные связи помечены, а не спрятаны. Сервер запускается командой `arbor bridge` по stdio, а для удаленных схем есть HTTP-режим. Инструментов 17: `get_map` (скелет проекта, ранжированный по PageRank, вызывается первым), поиск символов и вызывающих, `get_blast_radius`, `explain_symbol`, `audit_security`, `batch_query` и `find_api_usages`. Тот же граф доступен из CLI: `arbor map`, `arbor refactor`, `arbor diff`. Отдельная команда `arbor retirements` ищет в Python-коде вызовы SDK OpenAI, Anthropic и Google со снятыми моделями. Команда `arbor hook claude` добавляет Claude Code отчет после каждого хода: что изменено, что затронуто без просьбы и что проверить.
Для кого. Разработчикам на больших кодовых базах, где агенту дорого перечитывать файлы, и командам, которые проверяют влияние изменений перед слиянием.
Подходит, если
- Вы меняете функцию и хотите заранее увидеть, что от нее зависит
- Агент не знает проект: нужна карта кода на тысячу токенов вместо чтения десятков файлов
- В CI нужны пороги по радиусу поражения, чтобы блокировать слишком опасные запросы на слияние
- Перед отключением старых моделей надо найти вызовы SDK, которые перестанут работать
Не подходит, если
- Вам нужен поиск по смыслу текста и документации: граф строится по структуре кода и эмбеддингов не использует
- Проект на языке с запасным разбором (Kotlin, Swift, Ruby, PHP, Shell): связи там менее надежны
- Нужна проверка безопасности как у настоящего сканера: audit_security дает ориентир, но не заменяет его
Пример запроса к агенту
Покажи радиус поражения, если я изменю parse_file: кто вызывает эту функцию и какие тесты стоит прогнать.MCP
- Транспорт
- stdio, http
- Авторизация
- не нужна
Ограничения
Полные разборщики есть для Rust, TypeScript и JavaScript, Python, Go, Java, C и C++, C# и Dart, для остальных языков запасной разбор. После обновления сохраненный граф один раз перестраивается. Скрипт установки запускается через curl и bash, а на crates.io релиз может отставать, поэтому в README есть закрепленные установки.
Команда `arbor setup` индексирует проект, `arbor hook claude` меняет настройки Claude Code, а в `~/.arbor` лежит глобальная конфигурация. Данные retirements сверены с провайдерами 28 октября 2026 года и устаревают вместе с их страницами. Часть разбора ограничена видимостью: вызов функции другого файла засчитывается, только если вызывающий файл ее видит.
Как отключить. Удалите запись arbor из конфигурации клиента (`claude mcp remove arbor`), уберите хук Claude Code и при желании саму программу вместе с каталогом ~/.arbor.
Частые вопросы
Чем Arbor отличается от поиска по эмбеддингам?
Arbor строит граф из вызовов, импортов и наследования, и ответы на вопросы о вызывающих и радиусе правки получаются детерминированными. Эмбеддинги ищут похожий текст, но не знают, кто кого вызывает.
Как подключить Arbor к Claude Code?
После установки и `arbor setup` выполните `claude mcp add --transport stdio --scope project arbor -- arbor bridge`. Агенту советуют вызывать `get_map` первым, затем искать символы и читать только нужный файл.
Можно ли использовать Arbor как проверку в CI?
Да. В README описан CI-шлюз по порогам радиуса поражения, а в корне репозитория лежит action.yml. Команда `arbor diff --base origin/main` показывает влияние ветки так, как его увидит запрос на слияние.
Какие языки разбирает Arbor?
Полноценные разборщики есть для Rust, TypeScript и JavaScript, Python, Go, Java, C и C++, C# и Dart. Для Kotlin, Swift, Ruby, PHP и Shell работает запасной разбор попроще. Поиск вызывающих не смешивает языки: TypeScript-функция не будет вызывающей для одноименной на Rust.
Что делает команда arbor retirements?
Она ищет в Python-коде прямые вызовы SDK OpenAI, Anthropic и Google с моделями, которые сняты или скоро будут сняты, и говорит, что нужно поменять. В README для датированных снимков gpt-4o и gpt-4.1 указана дата отключения 14 января 2027 года.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыЛокальный MCP-сервер с графом вызовов и поиском символов: агент видит структуру кода и последствия правки заранее.
Локальный граф знаний о коде с историей версий: MCP-сервер отвечает агенту, кто вызывает функцию и что сломается от правки
CLI и MCP-сервер строят граф кода через Tree-sitter, чтобы агент при ревью читал только нужные функции и тратил меньше токенов
CodeGraph на Rust
codegraph-rust
Граф кода для агента на Rust: четыре MCP-инструмента показывают, что заденет правка, как устроена архитектура и где хрупкие места проекта
Граф кода и память проекта в одной программе на Rust: агент получает выдержки из файлов со ссылкой на строки
DevLens строит граф репозитория один раз, и агент по MCP получает ранжированные файлы, вызовы и радиус изменений
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Arbor — граф кода для агентов и MCP-сервер (эта карточка) | нет | не нужна | 162 | |
| code-review-graph | нет | не нужна | 32 733 | граф кода для обзора изменений |
| gograph | нет | не нужна | 231 | граф зависимостей для проектов на Go |
Коротко о README
README открывается обещанием «контекст кода для людей и агентов», затем объясняет граф, показывает короткий старт, список из 17 инструментов MCP, режимы CLI и установку для Linux, macOS, Windows, через npx и Docker. Отдельно разобраны выпуск 3.1.1 и поддерживаемые языки.