
arbor
Anandb71MIT
122 звёзд19 форков
Arbor — это слой графового интеллекта для кода. Он строит семантический граф зависимостей и даёт AI-ассистентам точные ответы на вопросы о том, что изменится в коде. Разработчики добавляют Arbor в MCP-клиент и сразу получают инструмент для анализа связей между функциями, классами и модулями.
В отличие от простого поиска по тексту Arbor использует дерево разбора (AST) и резолвинг символов. Он понимает, как на самом деле элементы кода связаны друг с другом. Это помогает командам уменьшить поломки от изменений и быстрее разбираться в чужом коде. Arbor работает с восемью языками включая Rust, Python, JavaScript, TypeScript, Go, Java, C и C++.
Характеристики
Общее
- СтатусСообщество
- РазработчикAnandb71
- ЛицензияMIT
Технологии
- ЯзыкиRust
Описание
Возможности
- Строит семантический граф зависимостей для кода на 8 языках: Rust, Python, JavaScript, TypeScript, Go, Java, C, C++.
- Отвечает, какие символы сломаются, если изменить конкретный элемент.
- Находит всех прямых и транзитивных вызывающих заданной функции, класса или переменной.
- Вычисляет кратчайший архитектурный путь между двумя узлами графа.
- Интегрируется с CI-пайплайнами, запуская только те проверки, которые действительно нужны после каждого коммита.
- Работает по протоколу MCP с любыми AI-ассистентами: Claude Desktop, VS Code, другие поддерживающие MCP клиенты.
- Предоставляет CLI-инструмент для локального запуска и визуального исследования графа.
- Определяет минимальный набор тестов для запуска на основе изменённых файлов (git-aware анализ).
Как подключить
- Установите CLI-инструмент Arbor через менеджер пакетов. Самый быстрый способ — Cargo:
cargo install arbor-graph-cliАльтернативно: npm, brew или Docker-образ из GHCR. - Настройте MCP в конфигурации Claude Desktop. Откройте файл
claude_desktop_config.jsonи добавьте секцию:{ "mcpServers": { "arbor": { "command": "arbor", "args": ["mcp"] } } }Убедитесь что командойarborдоступен в PATH. - Перезапустите Claude Desktop. После перезапуска сервер будет доступен для всех запросов об анализе кода.
Примеры запросов
- «Покажи что сломается если я изменю функцию
authenticate_userв файле auth.rs.» - «Найди всех прямых и косвенных вызывающих для метода
PaymentProcessor.process()в проекте.» - «Какой самый короткий путь от модуля
databaseдо модуляapiв графе зависимостей?» - «Какие тесты нужно запустить если я поменяю протокол шифрования в
Crypto.new?»
Технические детали
Язык: Rust
Транспорт: stdio (MCP-протокол)
Лицензия: MIT
Совместимые клиенты: Claude Desktop, VS Code с MCP-расширениями, любые приложения поддерживающие протокол MCP.