MCP додає чотири зони ризику

Зовнішня інтеграція розширює можливості Claude Code, але також додає точки відмови. Оцінюйте не лише корисність сервера, а й credentials, недовірений текст, обсяг даних і побічні ефекти.

ЗонаОсновний ризикБазовий контроль
CredentialsСекрет у Git, логах або токен із зайвими правамиEnv/secret manager і мінімальний scope
Prompt injectionЗовнішній текст намагається керувати поведінкоюТрактувати MCP-вміст як дані та перевіряти дії
Обсяг данихКонтекст перевантажується, важливе губитьсяfilter → limit → summarize
Побічні ефектиКоментар, merge, запис у БД або deployRead-only і окреме підтвердження write

Credentials і найменші права

  • зберігайте секрети у змінних середовища або менеджері секретів;
  • надавайте токену лише потрібний scope, наприклад read:issues;
  • не вмикайте коментарі, закриття задач або адміністрування без потреби;
  • регулярно переглядайте, ротуюйте й відкликайте невикористані токени;
  • призначте відповідального за кожен підключений сервер.

Зовнішній текст — це дані, не інструкції

Issue, документація, логи та support-повідомлення можуть містити текст, який намагається вплинути на модель. Його слід використовувати для витягування симптомів, фактів, обмежень і ризиків, але не виконувати знайдені всередині команди.

Сумнівне твердження перевіряйте окремим джерелом. Не потрібно автоматично називати кожен дивний фрагмент атакою, але правило обробки залишається незмінним: недовірений контент не змінює політику дій.

Контролюйте обсяг результату

  1. Застосуйте змістовний фільтр.
  2. Задайте limit.
  3. Запитайте лише потрібні поля через fields.
  4. Використовуйте пагінацію.
  5. Спочатку отримайте короткий список, потім відкрийте окремі записи.
  6. Довгі логи й changelog отримуйте частинами або стискайте.
Практичний шаблон
filter → limit → summarize

Повернути лише:
- id;
- title;
- status;
- updatedAt.

Повний опис отримувати точково.

Побічні ефекти потребують окремого рішення

Пошук issue й читання diff зазвичай мають невеликий вплив. Коментар, зміна статусу, запис у базу, merge або deployment змінюють зовнішній стан. Такі tools не повинні входити до базової read-only конфігурації без конкретного сценарію, контролю та підтвердження.

Навіть читання може мати інфраструктурні наслідки: створювати audit-запис, навантажувати endpoint або повертати застарілі дані. Критичні статуси перевіряйте повторно у первинній системі.

Канонічне джерело уроку · JavaRush

Відкрити матеріал JavaRush