# Как выбрать MCP-сервер для анализа кода

Canonical source: https://maguyva.ai/ru/guides/choosing-a-code-intelligence-mcp-server

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Выбирайте сервер, который отвечает на реальные вопросы вашего агента о вашем же коде: где определён символ, кто его вызывает, что сломается, если его изменить, и где живёт концепция, название которой никто уже не помнит.

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

## Что сравнивать

Задайте каждому кандидату одни и те же вопросы, а затем проверьте ответы на своём коде. Список возможностей — это заявление; правильный ответ на вашем репозитории — доказательство.

| Критерий | Что спросить | Как проверить |
|---|---|---|
| **Режимы поиска** | Сочетает ли он семантический, структурный (AST), графовый и точный текстовый поиск и направляет ли каждый вопрос в подходящий режим? Один режим оставляет без ответа целые классы вопросов. | Задайте по одному вопросу каждого вида: о концепции, о форме кода, о списке вызывающих и о точном тексте ошибки. |
| **Глубина поддержки языков** | Разбирается ли код на каждом вашем языке в AST с символами и связями или только индексируется как текст? Длинный список языков может скрывать поверхностную поддержку. | Найдите опубликованные флаги возможностей для ваших языков, затем найдите по одному символу в каждом. |
| **Масштаб репозитория** | Справляется ли он с вашим крупнейшим репозиторием и с несколькими репозиториями одновременно? Остаются ли результаты ранжированными и ограниченными или один большой файл заполняет весь ответ? | Проиндексируйте свой крупнейший реальный репозиторий, а не демопроект, и засеките время до первого полезного ответа. |
| **Актуальность и синхронизация** | Как индекс узнаёт о новых коммитах и через сколько изменение становится доступным для поиска? Устаревший индекс уверенно отвечает о коде, которого больше нет. | Закоммитьте переименование, затем поищите новое имя и старое. |
| **Безопасность и обработка данных** | Где хранится ваш исходный код, что передаётся третьим сторонам, используется ли он для обучения и что удаляется при отключении? | Прочитайте страницу об обработке данных. Ищите названных поставщиков и конкретные правила удаления, а не значки. |
| **Настройка для каждого клиента** | Есть ли документированная конфигурация для каждого клиента, которым пользуется ваша команда, и обслуживает ли их всех одна конечная точка? | Подключите два клиента, которыми команда уже пользуется, и засеките время для обоих. |
| **Модель цен** | Цена публична? Вы платите за место, за агента или за рабочее пространство, и хватает ли бесплатного тарифа для настоящего испытания? | Посчитайте стоимость своей реальной конфигурации: агентов, репозиториев и проиндексированных строк, которые вы действительно запустите. |
| **Проверка на вашем коде** | Можно ли протестировать его сегодня на своём репозитории, без звонка с отделом продаж? | Если для пробы сначала нужна встреча, это тоже ответ. |

### Где хранится индекс

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

## Проверьте на своём репозитории за 15 минут

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

1. Подключите репозиторий и отметьте, сколько времени прошло до первых результатов поиска.
2. Задайте концептуальный вопрос без общих с кодом ключевых слов, например «где мы обрабатываем истёкшие сессии?». Откройте каждый процитированный файл и строку.
3. Найдите один символ по имени, затем спросите, кто его вызывает. Сравните список с тем, что вы знаете.
4. Выберите функцию, которую собираетесь изменить, и спросите, что от неё зависит. Этот список — её радиус влияния: сверьте его с тестами, которые поймали бы поломку.
5. Спросите о форме кода, а не об имени: например, все обработчики маршрутов или все классы, реализующие определённый интерфейс.
6. Найдите точную строку, например текст ошибки, и убедитесь, что каждое совпадение настоящее.
7. Закоммитьте небольшое переименование, дождитесь, пока индекс догонит изменения, и поищите оба имени.
8. Посчитайте исправления. Побеждает сервер, которому их понадобилось меньше всего, что бы ни было написано в его списке возможностей.

## Термины

- **MCP-сервер для анализа кода**: MCP-сервер, который индексирует исходный код и предоставляет его ИИ-агентам в виде инструментов. Вместо того чтобы вставлять в промпт целые файлы, агент задаёт вопрос и получает ранжированные результаты с путями к файлам и номерами строк.
- **Граф кода**: Карта связей между символами, файлами и модулями: определения, ссылки, вызовы, импорты и наследование. Он отвечает на вопрос «кто это использует?», не читая каждый файл.
- **Радиус влияния**: Код, который может быть затронут при изменении символа: его вызывающие, зависимые от него части и тесты, которые их покрывают. Знать его до правки — именно для этого нужен поиск по графу.
- **AST-поиск**: Поиск по абстрактному синтаксическому дереву, то есть по разобранной структуре кода. Он находит код по форме, например все функции с определённым декоратором, чего обычный текстовый поиск надёжно сделать не может.
- **Семантический поиск**: Поиск по смыслу с помощью эмбеддингов. Он находит код, подходящий под описание, даже если у кода и вопроса нет ни одного общего слова.
- **Точный текстовый поиск**: Сопоставление по литералу или регулярному выражению. Подходящий инструмент для текстов ошибок, ключей конфигурации и идентификаторов, которые вы уже знаете.

## Место Maguyva

Maguyva — размещённый MCP-сервер для анализа кода. Он индексирует подключённые вами репозитории GitHub и даёт вашему агенту инструменты MCP (11 шт.), а каждый результат сопровождается путём к файлу.

- **Поиск**: Семантический, структурный, графовый и точный текстовый поиск, а также поиск символов и инструмент-маршрутизатор, который выбирает подходящий режим для каждого вопроса. (`intelligent_search`, `semantic_search`, `structural_search`, `text_pattern_search`, `find_symbol`, `dependency_search`, `analyze_dependencies`)
- **Языки**: Проиндексировано языков и текстовых форматов: 285. Из них со структурным поиском по AST — 247, с извлечением символов — 282, с графовыми связями — 151. Глубина зависит от языка, поэтому проверьте свои.
- **Актуальность**: Индексы обновляются через задачи синхронизации с GitHub по мере изменения кода.
- **Настройка**: Одна удалённая конечная точка MCP и пошаговые конфигурации для документированных клиентов (23).
- **Цены**: Публичные, за рабочее пространство, а не за место. План Free включает репозитории (3) и 50 000 проиндексированных строк — достаточно для 15-минутного теста.
- **Обработка данных**: На странице безопасности указано, что и где хранится, что отправляется для построения эмбеддингов и что удаляется при отключении.

Сейчас репозитории подключаются из GitHub. Если ваш код хранится в другом месте, перед началом загляните на страницу совместимости.

- [Начать с быстрого старта](https://maguyva.ai/ru/docs/quickstart)
- [Посмотреть цены](https://maguyva.ai/ru/pricing)
- [Проверить возможности по языкам](https://maguyva.ai/ru/docs/compatibility)
- [Подробнее об обработке данных](https://maguyva.ai/ru/security)
