Решение проблемы аутентификации MCP при масштабировании
Вы создали MCP-сервер. Он работает на вашем ноутбуке. Ваш ИИ-ассистент может создавать тикеты в Jira и делать запросы к базам данных. Все отлично, пока коллега не попросит доступ.
Если вы хотите продавать свой MCP как продукт, вы сталкиваетесь с новой проблемой. Вам нужно поддерживать множество пользователей. Каждому пользователю нужны свои API-ключи и безопасный доступ.
На этом этапе большинство разработчиков допускают ошибки. Они пробуют два плохих подхода.
Первый — ручная настройка. Вы просите пользователей клонировать репозиторий, установить зависимости и настроить локальные переменные окружения. Это занимает часы. Большинство пользователей сдадутся, так и не закончив.
Второй — «кошмар serverless». Вы развертываете решение в Cloud Run или Vercel. Поскольку serverless-платформы не хранят сессии, каждый запрос попадает на новый экземпляр. Ваши пользователи попадают в бесконечный цикл: они проходят аутентификацию, но при следующем клике система снова просит их авторизоваться. Это не продукт. Это сломанный прототип.
Мы решили эту проблему в BrainGrid. Мы перешли от локального инструмента к инфраструктуре, готовой к промышленной эксплуатации. Вот как мы это сделали.
- Use a Redis Session Store: Serverless-экземпляры завершают работу и перезапускаются. Вы не можете хранить сессии в оперативной памяти. Используйте Redis, чтобы сохранять данные сессий между всеми экземплярами.
- Implement Multi-Tier Caching: Сначала проверяйте локальную память. Если данных там нет, проверяйте Redis. Это предотвращает дорогостоящую валидацию JWT при каждом запросе.
- Encrypt Sensitive Data: Используйте AES-256-GCM для шифрования данных сессии перед сохранением в Redis. Это обеспечит безопасность пользовательской информации.
- Use Proper OAuth Patterns: MCP-клиенты ожидают определенных сценариев discovery flows. Вы должны правильно форматировать заголовки WWW-Authenticate, чтобы избежать ошибок.
- Optimize for Speed: Валидация JWT добавляет задержку. Кэшируя проверенные сессии, мы значительно сократили время отклика.
Результатом стала система, которая масштабируется от одного пользователя до тысячи. Она стоит очень дешево в эксплуатации и интегрируется с такими провайдерами, как WorkOS или Auth0.
Хватит создавать инструменты только для себя. Начните создавать инфраструктуру для своих клиентов.