# Як вибрати MCP-сервер для аналізу коду

Canonical source: https://maguyva.ai/uk/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/uk/docs/quickstart)
- [Переглянути ціни](https://maguyva.ai/uk/pricing)
- [Перевірити можливості за мовами](https://maguyva.ai/uk/docs/compatibility)
- [Докладніше про обробку даних](https://maguyva.ai/uk/security)
