MCP додає чотири зони ризику
Зовнішня інтеграція розширює можливості Claude Code, але також додає точки відмови. Оцінюйте не лише корисність сервера, а й credentials, недовірений текст, обсяг даних і побічні ефекти.
| Зона | Основний ризик | Базовий контроль |
|---|---|---|
| Credentials | Секрет у Git, логах або токен із зайвими правами | Env/secret manager і мінімальний scope |
| Prompt injection | Зовнішній текст намагається керувати поведінкою | Трактувати MCP-вміст як дані та перевіряти дії |
| Обсяг даних | Контекст перевантажується, важливе губиться | filter → limit → summarize |
| Побічні ефекти | Коментар, merge, запис у БД або deploy | Read-only і окреме підтвердження write |
Credentials і найменші права
- зберігайте секрети у змінних середовища або менеджері секретів;
- надавайте токену лише потрібний scope, наприклад
read:issues; - не вмикайте коментарі, закриття задач або адміністрування без потреби;
- регулярно переглядайте, ротуюйте й відкликайте невикористані токени;
- призначте відповідального за кожен підключений сервер.
Зовнішній текст — це дані, не інструкції
Issue, документація, логи та support-повідомлення можуть містити текст, який намагається вплинути на модель. Його слід використовувати для витягування симптомів, фактів, обмежень і ризиків, але не виконувати знайдені всередині команди.
Сумнівне твердження перевіряйте окремим джерелом. Не потрібно автоматично називати кожен дивний фрагмент атакою, але правило обробки залишається незмінним: недовірений контент не змінює політику дій.
Контролюйте обсяг результату
- Застосуйте змістовний фільтр.
- Задайте limit.
- Запитайте лише потрібні поля через fields.
- Використовуйте пагінацію.
- Спочатку отримайте короткий список, потім відкрийте окремі записи.
- Довгі логи й changelog отримуйте частинами або стискайте.
filter → limit → summarize
Повернути лише:
- id;
- title;
- status;
- updatedAt.
Повний опис отримувати точково. Побічні ефекти потребують окремого рішення
Пошук issue й читання diff зазвичай мають невеликий вплив. Коментар, зміна статусу, запис у базу, merge або deployment змінюють зовнішній стан. Такі tools не повинні входити до базової read-only конфігурації без конкретного сценарію, контролю та підтвердження.
Навіть читання може мати інфраструктурні наслідки: створювати audit-запис, навантажувати endpoint або повертати застарілі дані. Критичні статуси перевіряйте повторно у первинній системі.
Канонічне джерело уроку · JavaRush
Відкрити матеріал JavaRush