Ragex: MCP-сервер для поиска по коду на AST и графах | AiManual
AiManual Logo Ai / Manual.
02 Янв 2026 Инструмент

Ragex: Обзор и туториал по настройке MCP-сервера для семантического поиска по коду на AST и графах

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

Почему RAG для кода — это боль

Представь: ты пытаешься заставить ИИ понять твой код. Ты кидаешь ему куски файлов через RAG, а он в ответ выдаёт что-то вроде "функция process_data где-то здесь, наверное". Контекст теряется, связи между модулями разрываются, и в итоге ты тратишь больше времени на объяснения, чем на написание кода.

Обычные RAG-системы для текста ломаются о код. Они не видят разницы между user.login() и user.login(), не понимают, что fetchData вызывает validateInput, а та, в свою очередь, дергает logError. Это как пытаться собрать пазл, глядя на каждую деталь через микроскоп, но не видя картины целиком.

Если ты уже пробовал MCP Tool Registry для автоматизации RAG, то знаешь: стандартные подходы тут не катят. Код — это не просто текст, это структура с зависимостями, семантикой и контекстом.

Ragex: когда AST встречает графы

Ragex — это MCP-сервер, который подходит к коду с трёх сторон сразу: парсит AST (абстрактное синтаксическое дерево), строит векторные эмбеддинги и рисует графы знаний. Вместо того чтобы тупо искать совпадения по тексту, он понимает, что делает код и как он связан с другим кодом.

Что внутри: архитектура на стероидах

  • AST-парсер: разбивает код на узлы — функции, классы, переменные, импорты. Не просто строки, а структурированные сущности.
  • Векторные эмбеддинги: преобразует эти узлы в числовые векторы, чтобы искать семантически похожие куски, даже если они названы по-разному.
  • Граф знаний: соединяет узлы рёбрами — "вызывает", "наследует", "импортирует". Получается карта зависимостей всего проекта.
💡
Ragex написан на Elixir — языке, который отлично справляется с параллельной обработкой и распределёнными системами. Если твой проект на 100+ файлов, это не станет проблемой.

Ставим и настраиваем: туториал за 10 минут

Забудь про долгую установку. Вот как запустить Ragex на своём коде.

1 Клонируем и собираем

git clone https://github.com/yourusername/ragex.git
cd ragex
mix deps.get
mix compile

Убедись, что у тебя установлены Elixir и Erlang. Если нет — brew install elixir на macOS или смотри официальную документацию.

2 Конфигурируем под свой проект

Создай файл config.exs в корне проекта Ragex. Укажи путь к своему коду и модель эмбеддингов.

config :ragex,
  code_path: "/path/to/your/code",
  embedding_model: "BAAI/bge-small-en-v1.5",
  graph_db: :neo4j,  # или :memgraph для локального использования
  neo4j_url: "bolt://localhost:7687"

Можно использовать локальные модели через Ollama, чтобы не платить за API. Подробнее про локальные RAG-системы в этом руководстве.

3 Запускаем сервер и индексируем код

mix phx.server

Сервер запустится на порту 4000. Теперь нужно проиндексировать код:

curl -X POST http://localhost:4000/api/index -H "Content-Type: application/json" -d '{"path": "/path/to/your/code"}'

Индексация может занять время в зависимости от размера проекта. Зато потом поиск будет мгновенным.

4 Интегрируем с Claude через MCP

Добавь Ragex как MCP-сервер в Claude Desktop. Редактируй claude_desktop_config.json:

{
  "mcpServers": {
    "ragex": {
      "command": "mix",
      "args": ["phx.server"],
      "env": {
        "MIX_ENV": "prod"
      }
    }
  }
}

Перезапусти Claude. Теперь в промптах можно использовать инструменты Ragex для поиска кода.

Альтернативы? Какие альтернативы?

Есть другие инструменты для поиска по коду, но они обычно либо только текстовые (ripgrep, Silver Searcher), либо только AST-based (Sourcegraph, но это монстр). Ragex уникален своей гибридностью.

Инструмент Поиск по тексту AST анализ Графы MCP-интеграция
Ragex Да (семантический) Да Да Нативно
Sourcegraph Да (текстовый) Ограниченно Нет Через API
ripgrep Только текст Нет Нет Нет

Если тебе нужен просто быстрый текстовый поиск — используй ripgrep. Но если хочешь, чтобы ИИ понимал код, Ragex вне конкуренции.

Примеры использования: от поиска до рефакторинга

Вот что можно делать с Ragex:

  • Семантический поиск: "Найди все функции, которые валидируют email". Ragex найдёт validateEmail, check_email_format и даже VerifyEmailAddress.
  • Анализ зависимостей: "Что сломается, если я удалю этот модуль?" Граф покажет все связи.
  • Рефакторинг: "Где ещё используется этот паттерн синглтона?" ИИ сможет предложить изменения.

Для отладки MCP-серверов пригодится Syrin. А если хочешь протестировать несколько ИИ-агентов сразу, посмотри Owlex.

Кому это нужно? (Спойлер: всем)

Ragex не для всех. Он для тех, кто:

  • Работает с кодом на 10+ файлов и устал объяснять контекст ИИ.
  • Занимается рефакторингом легаси-кода и боится что-то сломать.
  • Строит AI-агентов для разработки, как в MCP Chat Studio v2.
  • Хочет семантический поиск по коду без облачных API и слежки.

Если твой проект — это два файла на Python, возможно, Ragex — это overkill. Но если ты поддерживаете монолит на 100К строк, это спасение.

Предсказание: что будет дальше?

Ragex сегодня — это MCP-сервер. Завтра он может стать стандартом для семантического анализа кода в AI-агентах. Представь: ИИ не только ищет код, но и предлагает оптимизации на основе графов, находит уязвимости через паттерны, автоматически генерирует документацию.

Проблема в том, что текущая реализация требует ручной настройки и индексации. Но если это интегрировать в CI/CD, чтобы граф знаний обновлялся автоматически при каждом коммите — это будет прорыв.

Совет: не жди, пока Ragex станет perfect. Поставь его на свой pet-проект, поиграйся с поиском. Потом, когда привыкнешь, внедряй в рабочий процесс. И да, обязательно попробуй локальные модели эмбеддингов через Ollama — это экономит деньги и время.