Claude Code MCP timeout и WebFetch: что операторам проверить после фикса

Claude Code MCP timeout и WebFetch policy изменились в релизе 3 июня: явные WebFetch deny правила теперь важнее preapproved hosts, а sub-1000 ms MCP timeout откатывается к MCP_TOOL_TIMEOUT/default вместо watchdog-сбоев.

Опубликовано источник Anthropic

Архивный материал, подготовленный с помощью ИИ по указанному источнику и опубликованный без индивидуальной проверки. Ответственный редактор: Joe Werner.

Абстрактная диаграмма сетевой маршрутизации, демонстрирующая правила разрешений и потоки таймаутов в архитектуре AI-gateway
Машинный перевод с английского оригинала — читать оригинал

Два бага незаметно существовали в Claude Code на протяжении нескольких недель. Релиз от 3 июня устранил оба — и если вы запускаете Claude Code за AI-gateway или применяете политики WebFetch-доменов, вам необходимо знать, что изменилось.

Баг с приоритетом правил WebFetch

В Claude Code есть встроенный список предодобренных хостов (preapproved-host auto-allow list) — набор доменов, разрешённых по умолчанию без явной настройки со стороны оператора. До исправления явно заданные оператором правила WebFetch(domain:...) с действиями deny или ask не применялись к этим предодобренным хостам.

На практике: если ваша политика оператора содержала deny: WebFetch(domain:api.example.com), а api.example.com входил в список Anthropic, Claude Code молча разрешал fetch-запрос, полностью игнорируя ваше правило deny.

После исправления явные правила WebFetch оператора с действиями deny/ask/allow теперь имеют приоритет над автоматическим разрешением предодобренных хостов. Политика контроля доступа вашего gateway теперь применяется последовательно, независимо от того, входит ли целевой домен в список по умолчанию Anthropic.

Что нужно проверить:

  • Просмотрите файл settings.json или .claude/settings.json на наличие правил WebFetch.
  • Если у вас есть правила deny, предназначенные для блокировки определённых доменов, после обновления до версии от 3 июня убедитесь, что они вступили в силу.
  • Команды, использующие TheRouter для журналирования и аудита исходящих AI-запросов, должны убедиться, что события блокировки WebFetch корректно попадают в request ledger — ранее автоматическое разрешение обходило этот механизм.

Баг сторожевого таймера MCP

Claude Code поддерживает поле timeout (в миллисекундах) для каждого MCP-сервера в файле .mcp.json. Цель — позволить операторам точно настраивать время ожидания ответа на вызов инструмента.

Суть бага: любое значение timeout ниже 1000 мс молча повышалось до 1-секундного сторожевого таймера, который прерывал каждый вызов инструмента — поскольку срабатывал раньше, чем мог прийти нормальный ответ инструмента.

Это был режим молчаливого сбоя. Команды, устанавливавшие жёсткие sub-1000 ms таймауты (например, для соблюдения SLA-подобных ограничений на MCP-инструменты с ожидаемым ответом менее секунды), видели сбой всех вызовов инструментов без понятного сообщения об ошибке. Теперь команда claude mcp get помечает записи с sub-1000 ms таймаутами, чтобы операторы могли обнаружить проблему при инспекции.

Поведение после исправления: значения timeout ниже 1000 мс теперь молча игнорируются (с fallback на переменную окружения MCP_TOOL_TIMEOUT или значение по умолчанию). Если вам нужно применить ограничение на уровне долей секунды, реализуйте его на стороне MCP-сервера или gateway, а не в клиентской конфигурации Claude Code.

Другие изменения, важные для операторов

--tools с явным указанием Grep/Glob теперь работает. Ранее явное указание Grep или Glob в allowlist --tools молча игнорировалось в native-сборках со встроенным поиском. Теперь эти инструменты регистрируются корректно. Если ваш operator-профиль ограничивает доступ к инструментам через --tools, протестируйте, что Grep/Glob теперь работает как ожидается.

Исправлено сопоставление путей с обратными слэшами в правилах разрешений для Windows. Правила разрешений с путями в формате обратных слэшей (~\folder, \\server\share) или путями в другом регистре никогда не срабатывали в Windows. Это затрагивает операторов, запускающих Claude Code в Windows-based CI или agent pipeline, где path-based deny правила молча не применялись.

Devin Desktop заменяет Windsurf в меню IDE. После ребрендинга редактора меню /ide, /terminal-setup и /scroll-speed теперь отображают Devin Desktop вместо Windsurf. Обновите документацию оператора или скрипты онбординга, упоминающие Windsurf.

claude agents --json теперь включает поле waitingFor. JSON-вывод подкоманды agents теперь показывает, на что именно ожидает заблокированная сессия (например, запрос на разрешение). Это напрямую полезно для headless-систем мониторинга, опрашивающих статус агентов — теперь можно различить «заблокировано ожиданием подтверждения» и «выполняется» без парсинга человекочитаемого статусного текста.

Влияние на routing и gateway

Исправление приоритета WebFetch — наиболее значимое изменение для операторов AI-gateway. Ключевая проблема заключалась в несоответствии между политикой Anthropic по умолчанию и явно заданной политикой оператора — с молчаливой победой первой. Теперь это устранено.

Для команд, маршрутизирующих трафик Claude Code через TheRouter:

  • Журналирование запросов: исходящие WebFetch-вызовы, ранее автоматически разрешавшиеся, теперь соблюдают ваши правила deny — вы можете заметить уменьшение количества определённых fetch-событий и новый класс записей blocked-fetch в request ledger.
  • Поведение таймаутов MCP: если вы используете поля таймаутов для обхода медленных инструментальных серверов, убедитесь, что значения timeout ≥ 1000 мс. Значения sub-1000 мс теперь будут молча отброшены, а не вызовут сбои через watchdog — в целом это улучшение, но ваш бюджет таймаута нужно пересмотреть на уровне gateway или MCP-сервера.
  • Мониторинг headless pipeline: новое поле waitingFor в выводе --json означает, что ваш слой оркестрации Claude Code может точнее отображать агентов, заблокированных из-за разрешений, сокращая время обнаружения зависших задач в multi-agent pipeline.

На что обратить внимание

Релиз от 3 июня продолжает серию исправлений Claude Code, направленных на граничные случаи в применении прав доступа на стороне оператора. Это второе исправление модели разрешений за неделю (в релизе от 2 июня была устранена регрессия с управляемой политикой forceLoginOrgUUID). Если ваша организация запускает Claude Code в изолированной корпоративной среде, систематический аудит правил разрешений в settings.json после обновления теперь оправдан — некоторые правила, казавшиеся рабочими, могли функционировать за счёт мягкости настроек по умолчанию Anthropic, а не вашей явной политики.

Связанные материалы

Абстрактная схема маршрутизации с изображением контролей сессии и лимитов делегирования агентов

Claude Code 2.1.212: лимиты субагентов, автофон MCP и исправление кэширования на кастомных шлюзах

Версия 2.1.212 вводит настраиваемые лимиты субагентов и вызовов WebSearch на сессию, автоматически переносит долгие MCP-вызовы в фон и восстанавливает prompt caching за кастомными API gateway, Bedrock и Vertex.

источник Anthropic Claude Code
Диаграмма улучшений надёжности Claude Code 2.1.274 для операторов gateway: стабильность MCP-соединений и восстановление транскриптов

Claude Code 2.1.274: масштабное исправление MCP, конфигурация Postgres в gateway и самовосстановление транскриптов

Claude Code 2.1.274 устраняет шесть причин тихих сбоев MCP в production, добавляет store.connect_timeout_seconds и CLAUDE_CODE_GATEWAY_DRAIN_TIMEOUT_MS в Claude apps gateway, а также переводит повреждённые транскрипты на режим самовосстановления вместо бесконечного цикла.

источник Anthropic
Claude Code 2.1.269 operator changes: gateway timeout, concurrent agents cap, and deny rule scoping fix illustrated as a control panel

Claude Code 2.1.269: три оператор-уровневых изменения в релизе с 60+ исправлениями

Claude Code 2.1.269 добавляет настраиваемый таймаут обнаружения gateway, жёсткий лимит параллельных workflow-агентов и исправляет утечку deny-правил за границу их config-источника. Каждое из них меняет то, как операторы управляют Claude Code в масштабе.

источник Anthropic
Помощь и контакты