Выбирайте транспорт осознанно
Локальный stdio-сервер и удалённый сервис HTTP имеют разные требования к развёртыванию. Используйте поддерживаемый удалённый транспорт, TLS и аутентифицированный маршрут. Проверяйте версии клиента и сервера, а не предполагайте, что все реализации поддерживают одинаковые возможности.
Рассматривайте каждый инструмент как API
Проверяйте аргументы, применяйте авторизацию для конкретного пользователя и ограничивайте ресурсы. Не предоставляйте произвольное выполнение команд оболочки как удобный инструмент. Ограничивайте исходящие пункты назначения там, где инструмент загружает URL, и не допускайте секретов в описания и ответы.
Собирайте идентификационные данные соразмерно
Хостинг без KYC может минимизировать данные регистрации у провайдера, но сервису MCP все равно могут понадобиться собственные пользователи, защита сессий и контроль злоупотреблений. Объясните, что он журналирует, и избегайте хранения входных данных инструментов без определенной цели.
Развёртывайте ради операционной ясности
Запускайте под выделенным пользователем, используйте проверки работоспособности, ограничивайте время запросов и поддерживайте совместимость буферизации и тайм-аутов обратного прокси с протоколом. Перед предоставлением прав на запись протестируйте аутентификацию, отзыв, отключения и повторные попытки.
Согласуйте аутентификацию с поддерживаемым протоколом
Для развёртывания MCP на основе HTTP изучите текущие требования протокола к авторизации и поддерживаемую версию клиента. Доступ к ресурсам на основе OAuth включает аудиторию токена, обнаружение и область действия, а не просто пароль на главной странице. Используйте HTTPS, проверяйте токены для целевого ресурса и не передавайте bearer-учётные данные в строках запроса. Сервер stdio использует иную локальную границу учётных данных.
- Проверьте неаутентифицированный запрос
- Проверьте аутентифицированный запрос вне его области действия
- Отзовите учётные данные и убедитесь, что они перестали работать
Официальная документация: Спецификация авторизации MCP
Опубликуйте ограниченный первый набор инструментов
Начните с инструментов только для чтения, возвращающих ограниченный объём данных. Добавляйте запись файлов, операции жизненного цикла сервера или внешние сообщения только после того, как понятны их разрешения и поведение при дублировании. Рассматривайте возвращаемые веб-страницы и документы как недоверенный ввод; они не должны незаметно расширять полномочия сервера инструментов.
Зафиксируйте поведение протокола до написания правил прокси
Запишите как версию сервера SDK, так и ревизию MCP, которую будет использовать клиент. В ревизии Streamable HTTP 2026-07-28 запросы используют конечную точку POST; более старые примеры, полагающиеся на сессии протокола или отдельный поток GET, относятся к другой ревизии. Не удаляйте кажущееся требование совместимости, пока не узнаете, какой клиент вы поддерживаете. Обратный прокси должен сохранять требуемые заголовки, статус HTTP и поведение потоковой передачи ответов для этой версии.
- Начните с инструмента только для чтения на loopback-слушателе, затем разместите перед ним предполагаемую границу HTTPS/аутентификации.
- Проверьте обычный результат, потоковый результат, тайм-аут и отключённого клиента через публичный прокси.
- Проверяйте допустимые значения Origin, как того требует транспорт; проверка Origin не заменяет аутентификацию вызывающей стороны.
- Если события поступают только в конце, проверьте буферизацию прокси и поведение тайм-аутов, прежде чем менять код инструмента.
Официальная документация: MCP 2026-07-28: потоковый HTTP
Проверяйте отказы авторизации так же тщательно, как успех
Для доступа к HTTP, защищённому OAuth, сервер MCP является защищённым ресурсом. Проверьте обнаружение метаданных, ожидаемого издателя и аудиторию токена, а также области доступа, необходимые для конкретной операции. Держите токен авторизации вне строк запроса URL и никогда не передавайте его без изменений в несвязанный нижестоящий сервис. Ошибка аутентификации на стороне клиента должна сохранять соответствующий запрос HTTP, чтобы клиент мог восстановиться через поддерживаемый поток.
- Нет токена или токен истёк: защищённая конечная точка отклоняет доступ, а не возвращает приватные данные инструмента.
- Действительный токен с недостаточными правами: запрошенный ресурс остаётся недоступным.
- Токен для другой аудитории: отклоните его, даже если его подпись в остальном действительна.
- Неожиданный внешний URL или путь к файлу: проверьте полномочия инструмента перед загрузкой или записью.
- Журналы и трассировки ошибок: сохраняйте идентификатор операции и результат, удаляя токены и приватные входные данные инструментов.
Официальная документация: MCP 2026-07-28: авторизация HTTP · MCP: лучшие практики безопасности