7 уязвимостей шлюза MCP: утечки сессий, мертвый SSE и OAuth в режиме шлюза

После демонстрации счастливого пути пользователь Reddit столкнулся с семью конкретными багами при размещении шлюза MCP между реальными клиентами и серверами. Исправления заключались не в инженерии промптов — это были явные границы сессий, таймауты для каждого инструмента, идемпотентность, структурированные журналы действий, трассировка на уровне шлюза и тесты параллельных вызовов инструментов. Результатом стало значительное сокращение времени выполнения параллельных инструментов, но главной победой было знание того, где возникают сбои.
Семь багов, которые действительно имели значение
- Утечка состояния сессии между клиентами — общее состояние между сессиями вызывало загрязнение данных.
- Молчаливый разрыв SSE-соединений — никаких ошибок не возникало при обрыве соединения с серверными событиями.
- Работа OAuth в локальных тестах, но сбой в режиме шлюза — URI перенаправления или проверка токенов не работали за прокси.
- Обнаружение зондов возвращало устаревшие метаданные сервера — кэшированные возможности не отражали обновления сервера.
- Запись в SQLite блокировала параллельные вызовы инструментов — блокировки базы данных сериализовывали одновременные запросы.
- Логика повторных попыток дублировала побочные эффекты инструментов — повторные попытки заново выполняли мутации, такие как запись или вызовы API.
- Задержка инструментов скрывалась внутри шлюза вместо вызова модели — мониторинг относил время не к тому слою.
Исправление: скучная инфраструктура, а не лучшие промпты
Подход автора к каждому багу:
- Явные границы сессий — отдельное состояние на клиента, никаких общих объектов.
- Политика таймаутов для каждого инструмента — индивидуальные таймауты, чтобы один медленный инструмент не блокировал другие.
- Идемпотентность где возможно — ключи дедубликации или транзакционное поведение для безопасных повторных попыток.
- Структурированные журналы действий — подробные, анализируемые журналы каждого действия шлюза для отладки.
- Трассировка на уровне шлюза — распределенная трассировка для правильного отнесения задержки к разным слоям.
- Тесты параллельных вызовов инструментов — интеграционные тесты, которые отправляют параллельные запросы для выявления состояний гонки.
Это конкретные, практические шаблоны для всех, кто запускает шлюз MCP в продакшене. Ключевая идея поста: сложные проблемы — это изоляция состояния, молчаливые сбои и наблюдательность, а не промпты модели.
📖 Source: r/ClaudeAI
👀 Смотрите также

Claude Code и неразумная эффективность HTML для AI-агентов
Вирусный пост демонстрирует, что AI-агенты кодирования, такие как Claude Code, дают лучшие результаты, когда их просят генерировать HTML, с рабочими примерами и сопутствующей статьей, обсуждающей этот подход.

Улучшение структуры промптов для надежного выполнения навыков ИИ
Разработчик делится двумя ключевыми модификациями промптов, которые позволили его навыку анализа рынка работать полностью автоматически без ручного вмешательства: явное разделение того, что навык должен возвращать, и того, что он должен делать, а также определение явных условий сбоя для предотвращения импровизации.

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

Улучшение OpenClaw с помощью локальной LLM: представляем GLM-4.7-Flash
Интеграция GLM-4.7-Flash с OpenClaw революционизирует автоматизацию ИИ, позволяя бесперебойное локальное развертывание и сложное выполнение кода.