Туториал Продвинутый

MCP: продвинутые темы — несколько серверов, права и отладка

Для тех, кто уже подключил инструменты: конфликты между серверами, минимальные права, хранение секретов, отладка вызовов и борьба с шумом в контексте.

20 мин чтения Разработка

Базовое подключение одного инструмента освоить несложно — «USB для ассистентов» описан в туториале «MCP: зачем ИИ доступ к внешним инструментам». Но как только серверов становится три, а доступ открывается команде, начинаются настоящие вопросы. Этот материал — про них.

Несколько серверов: конфликты и порядок

Каждый сервер объявляет свои инструменты, и у двух серверов могут оказаться одинаковые — например, поиск по двум разным базам. Ассистент в такой ситуации выбирает произвольно или путается. Правила гигиены:

  • подключайте одновременно только те серверы, которые нужны для текущих задач; остальное — отключено;
  • давайте инструментам понятные имена при конфигурации («задачи-прод», «задачи-стейджинг» вместо двух безликих «задач»);
  • при спорных вызовах спрашивайте ассистента напрямую: «какой инструмент ты использовал и почему» — ответ сразу показывает, где путаница.

Права: минимум, скоупы, только чтение

Каждое подключение — это ключ к системе, и выдавать его стоит по принципу минимальных прав:

  1. Чтение по умолчанию. Инструментам, которые отвечают на вопросы, запись не нужна вовсе.
  2. Скоупы на операцию. Если сервер поддерживает разграничение (чтение / создание / удаление) — выдавайте узкий скоуп, а не «полный доступ».
  3. Отдельная учётка для записи. Если ассистент должен создавать задачи или документы — заведите для этого сервисную учётную запись с ограниченными правами, чтобы действия были различимы в журналах.
  4. Регулярный аудит. Раз в месяц смотрите список подключений и отзываете неактуальные.

Секреты: где им место

Токены и ключи доступа к серверам не должны лежать в файлах конфигурации, которые попадают в репозиторий, или пересылаться в чатах. Стандартная практика: переменные окружения или менеджер секретов; в конфиге — только ссылка на переменную. Утёкший ключ к MCP-серверу — это утёкший ключ к вашей базе или репозиторию.

Отладка: когда ассистент «не видит» инструмент

Типовые случаи по убыванию частоты: сервер не запущен или недоступен по адресу; неверно указаны креды; инструмент объявлен, но у учётки нет прав на операцию; описание инструмента сформулировано расплывчато, и ассистент не понимает, когда его вызывать. Диагностика — в этом порядке. Для последнего случая помогает переформулировка описания инструмента с конкретными триггерами: «использовать, когда пользователь спрашивает о статусе заказа».

Шум и стоимость: инструменты тоже платят контекстом

Каждое подключение добавляет в контекст описание своих инструментов — это место, которое не достаётся вашей задаче, и токены, которые вы оплачиваете. Десять серверов с пятьюдесятью инструментами — это постоянный «такси-парк» в памяти ассистента. Держите подключённый набор узким под задачу; широкий арсенал включайте точечно.

Надёжность

Внешние системы отвечают медленно и с ошибками. Хороший сервер инструментов объявляет таймауты, внятно сообщает об ошибках («база недоступна», а не молчаливый пустой результат) и не оставляет операции наполовину выполненными. Если пишете сервер сами — тестируйте его как обычный API, включая ситуации отказа.

Что дальше

Базовое устройство протокола — в «MCP: зачем ИИ доступ к внешним инструментам», а то, как ассистент планирует многошаговую работу с инструментами, — в «Агентах: что это, как работают и когда нужны».

Следующий материал →
Анализ отзывов пользователей и поиск закономерностей
Читать
← Вернуться ко всем материалам