Базовое подключение одного инструмента освоить несложно — «USB для ассистентов» описан в туториале «MCP: зачем ИИ доступ к внешним инструментам». Но как только серверов становится три, а доступ открывается команде, начинаются настоящие вопросы. Этот материал — про них.
Несколько серверов: конфликты и порядок
Каждый сервер объявляет свои инструменты, и у двух серверов могут оказаться одинаковые — например, поиск по двум разным базам. Ассистент в такой ситуации выбирает произвольно или путается. Правила гигиены:
- подключайте одновременно только те серверы, которые нужны для текущих задач; остальное — отключено;
- давайте инструментам понятные имена при конфигурации («задачи-прод», «задачи-стейджинг» вместо двух безликих «задач»);
- при спорных вызовах спрашивайте ассистента напрямую: «какой инструмент ты использовал и почему» — ответ сразу показывает, где путаница.
Права: минимум, скоупы, только чтение
Каждое подключение — это ключ к системе, и выдавать его стоит по принципу минимальных прав:
- Чтение по умолчанию. Инструментам, которые отвечают на вопросы, запись не нужна вовсе.
- Скоупы на операцию. Если сервер поддерживает разграничение (чтение / создание / удаление) — выдавайте узкий скоуп, а не «полный доступ».
- Отдельная учётка для записи. Если ассистент должен создавать задачи или документы — заведите для этого сервисную учётную запись с ограниченными правами, чтобы действия были различимы в журналах.
- Регулярный аудит. Раз в месяц смотрите список подключений и отзываете неактуальные.
Секреты: где им место
Токены и ключи доступа к серверам не должны лежать в файлах конфигурации, которые попадают в репозиторий, или пересылаться в чатах. Стандартная практика: переменные окружения или менеджер секретов; в конфиге — только ссылка на переменную. Утёкший ключ к MCP-серверу — это утёкший ключ к вашей базе или репозиторию.
Отладка: когда ассистент «не видит» инструмент
Типовые случаи по убыванию частоты: сервер не запущен или недоступен по адресу; неверно указаны креды; инструмент объявлен, но у учётки нет прав на операцию; описание инструмента сформулировано расплывчато, и ассистент не понимает, когда его вызывать. Диагностика — в этом порядке. Для последнего случая помогает переформулировка описания инструмента с конкретными триггерами: «использовать, когда пользователь спрашивает о статусе заказа».
Шум и стоимость: инструменты тоже платят контекстом
Каждое подключение добавляет в контекст описание своих инструментов — это место, которое не достаётся вашей задаче, и токены, которые вы оплачиваете. Десять серверов с пятьюдесятью инструментами — это постоянный «такси-парк» в памяти ассистента. Держите подключённый набор узким под задачу; широкий арсенал включайте точечно.
Надёжность
Внешние системы отвечают медленно и с ошибками. Хороший сервер инструментов объявляет таймауты, внятно сообщает об ошибках («база недоступна», а не молчаливый пустой результат) и не оставляет операции наполовину выполненными. Если пишете сервер сами — тестируйте его как обычный API, включая ситуации отказа.
Что дальше
Базовое устройство протокола — в «MCP: зачем ИИ доступ к внешним инструментам», а то, как ассистент планирует многошаговую работу с инструментами, — в «Агентах: что это, как работают и когда нужны».