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

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

在Claude Code之上构建处理上下文与协调的流程层
Команда рассказывает, как они построили процессный слой поверх Claude Code, который объявляет входы/выходы для каждого этапа разработки, уменьшая потерю контекста при передаче задач и обеспечивая совокупный рост продуктивности без опоры на индивидуальную дисциплину.

Сократите токены OpenClaw Boot на 43% с помощью инструмента для уточнения и файлов памяти
Сокращение загрузочных токенов с ~9 457 до ~5 400 (на 43 %) путем преобразования TOOLS.md в индекс, переноса деталей инструментов в отдельные файлы и внедрения поэтапного продвижения памяти.

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

20 команд Claude Code, которые должен знать каждый разработчик
Пост на Reddit перечисляет 20 команд Claude Code для остановки задач, управления контекстом, ответвлений, удаленного управления и ярлыков продуктивности, таких как /compact, /branch и /simplify.