OntoIndex: граф кода для AI-агентов через MCP | AiManual
AiManual Logo Ai / Manual.
11 Июн 2026 Инструмент

OntoIndex: строим граф кода для ИИ-агентов с MCP и веб-интерфейсом

Обзор OntoIndex — инструмента для построения семантического графа кода. Сравнение с альтернативами, примеры использования, настройка MCP-сервера и веб-интерфейс

Реклама
vec_recv1

Граф кода: когда нейронка перестаёт гадать

Любой, кто пробовал скормить ИИ-агенту монолит на 500 тысяч строк, знает эту боль. Агент либо забывает контекст через три шага, либо выкачивает в промпт половину репозитория и виснет на лимите токенов. Решение лежит на поверхности — дать агенту не сырой код, а карту кода: граф зависимостей, где каждый узел — это функция, класс или файл, а рёбра — вызовы, наследование, импорты. Именно это и делает OntoIndex — open-source инструмент, который строит семантический граф вашего проекта и выставляет его через MCP-сервер прямиком в распоряжение AI-агента.

В двух словах: OntoIndex — это парсер кода + графовая база данных + MCP API + веб-интерфейс. Всё в одном Docker-образе.

В отличие от популярного Project Graph MCP, который выгружает связи в сжатый JSON, OntoIndex хранит граф в настоящей графовой БД (Neo4j) и позволяет агенту делать осмысленные запросы: «найди все функции, которые вызывают этот метод», «покажи путь от контроллера к базе данных», «кто наследуется от этого класса?». Агент получает не плоский список, а структуру, которую может обходить рекурсивно.

OntoIndex под капотом

Сердце инструмента — парсеры на основе Tree-sitter. Они умеют разбирать Python, TypeScript, Go, Rust, Java, C# и ещё с десяток языков. На выходе — не просто AST, а семантические сущности: функции, классы, интерфейсы, модули, а также отношения «вызывает», «использует тип», «реализует интерфейс», «импортирует», «наследует». Всё это складывается в Neo4j (можно заменить на Memgraph или даже SQLite с графовым расширением).

MCP-сервер OntoIndex предоставляет агентам несколько инструментов:

  • query_graph — поиск зависимостей по имени узла или регулярке.
  • get_context — извлечение подграфа вокруг указанной функции (например, все её вызывающие и вызываемые).
  • shortest_path — находит путь между двумя сущностями (бесценно при дебаге).
  • diff_graph — показывает изменения в графе между двумя коммитами (beta).

Весь этот функционал доступен и через веб-интерфейс: можно визуально бродить по графу, искать узлы, смотреть историю изменений. Веб-морда написана на React + D3.js, легко кастомизируется.

Кто ещё строит графы? (спойлер: OntoIndex выигрывает)

Инструмент Графовая БД MCP-сервер Веб-UI Поддержка языков
OntoIndex Neo4j / Memgraph Встроенный Нативный 10+
Project Graph MCP Нет (JSON) Есть Нет 6
SocratiCode SQLite Есть Нет 5
Sourcegraph Своя Нет (только API) Есть 30+

Sourcegraph — тяжеловес, требует отдельного кластера, а MCP для него придётся писать самому или использовать сторонние коннекторы вроде Arcade.dev. SocratiCode больше заточен на вопросы по коду в стиле Q&A, а не на навигацию по графу. Project Graph MCP — лёгкий, но без графовой БД и визуализации. OntoIndex занимает нишу «золотой середины»: полноценный граф, MCP из коробки, удобная веб-морда.

Три сценария, где OntoIndex вывозит

1 Рефакторинг без страха

Агент получает задачу: «переименуй метод fetchData в loadUserData и подправь все места, где он вызывается». Без графа агент либо доверится grep'у (и пропустит динамические вызовы через getattr), либо пройдётся по всему проекту. OntoIndex даёт агенту точный список зависимостей — и он меняет только то, что нужно. А ещё можно проверить, не появились ли новые циклы в графе, вызвав diff_graph после коммита.

2 Онбординг новичка

Вместо того чтобы читать документацию (которой нет) и бродить по файлам в IDE, разработчик открывает веб-интерфейс OntoIndex и видит: вот точка входа, вот слой сервисов, вот как они связаны. Можно даже экспортировать граф в SVG для презентации. Когда агент уже знает архитектуру, его Agent Skills подгружаются быстрее — меньше контекста тратится на объяснение структуры.

3 Расследование багов в проде

Представьте: метод calculatePrice вдруг начал возвращать None. Агент с OntoIndex может за две секунды построить путь от этого метода до всех его вызывающих, выяснить, какой флаг был не установлен, и предложить фикс. Без графа — ручное чтение стека и надежда на интуицию.

Как подружить OntoIndex с вашим агентом

Установка — пара команд Docker. Для быстрого старта используйте официальный compose-файл, который поднимает Neo4j и OntoIndex:

git clone https://github.com/ontoindex/ontoindex
cd ontoindex
docker compose up -d

После этого откройте http://localhost:8080 — веб-интерфейс готов. Далее настройте MCP-клиент (например, Claude Desktop или ваш собственный оркестратор). В конфигурацию MCP добавьте сервер OntoIndex:

{
  "mcpServers": {
    "ontoindex": {
      "command": "node",
      "args": ["/app/mcp-server/index.js"],
      "env": {
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USER": "neo4j",
        "NEO4J_PASSWORD": "password"
      }
    }
  }
}

Теперь агент может использовать инструменты OntoIndex. Например, запрос «покажи зависимости класса UserService» превратится в вызов query_graph с параметром UserService. Подробнее о том, как MCP-серверы встраиваются в агентов, описано в руководстве по MCP от Anthropic.

Важный нюанс: OntoIndex индексирует только то, что описано в конфиге. Если проект использует динамические импорты или кодогенерацию, часть связей может быть потеряна. Рекомендую перед запуском на боевом репозитории протестировать на небольшой подвыборке и при необходимости дописать свои правила для Tree-sitter.

Кому это нужно (и кому не нужно)

OntoIndex — идеальный выбор для команд, которые уже используют AI-агентов для code review или рефакторинга и упираются в потолок контекста. Особенно полезен для микросервисных архитектур, где связи размазаны по десяткам репозиториев — можно запустить один инстанс и скормить ему все ваши репозитории, объединив в единый граф. DevOps-инженерам понравится лёгкость развёртывания (один Docker compose) и интеграция с существующей инфраструктурой MCP.

С другой стороны, если ваш проект — это один файл на 500 строк, OntoIndex будет избыточным. Для маленьких кодовых баз больше подойдёт Project Graph MCP или даже просто выгрузка AST в промпт. Также не стоит ждать чуда на проектах с активным использованием макросов или рефлексии — парсеры Tree-sitter могут не схватить такие связи.

В любом случае, граф кода — это следующий шаг после простой RAG-индексации. В сочетании с инструментами вроде Owlex (мультиагентный совет) или архитектуры Джеффа Эмануэля, OntoIndex может стать фундаментом для полностью автономных агентов, которые не теряют контекст. А если вы только начинаете погружаться в MCP, советую сперва прочитать практическое руководство по добавлению MCP в браузерного агента — там вся механика разжёвана.

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

Подписаться на канал