Что вы можете делать с MCP
С подключенными MCP servers вы можете попросить Claude Code:- Реализовать функции из трекеров проблем: “Добавьте функцию, описанную в задаче JIRA ENG-4521, и создайте PR на GitHub.”
- Анализировать данные мониторинга: “Проверьте Sentry и Statsig, чтобы проверить использование функции, описанной в ENG-4521.”
- Запрашивать базы данных: “Найдите адреса электронной почты 10 случайных пользователей, которые использовали функцию ENG-4521, на основе нашей базы данных PostgreSQL.”
- Интегрировать дизайны: “Обновите наш стандартный шаблон электронного письма на основе новых дизайнов Figma, которые были опубликованы в Slack”
- Автоматизировать рабочие процессы: “Создайте черновики Gmail, приглашающие этих 10 пользователей на сеанс обратной связи о новой функции.”
- Реагировать на внешние события: MCP server также может действовать как канал, который отправляет сообщения в вашу сессию, поэтому Claude реагирует на сообщения Telegram, чаты Discord или события webhook, пока вас нет.
Поиск и создание MCP servers
Просмотрите проверенные коннекторы в Anthropic Directory. Коннекторы Directory используют ту же инфраструктуру MCP, что и Claude Code, поэтому вы можете добавить любой удаленный server из списка с помощьюclaude mcp add.
Чтобы создать свой собственный server, см. руководство по MCP server для основ протокола и документацию по созданию Claude connector для аутентификации, тестирования и отправки в Directory.
Вы также можете попросить Claude создать server для вас с помощью официального плагина mcp-server-dev.
Установите плагин
Marketplace "claude-plugins-official" not found: добавьте marketplace с помощью/plugin marketplace add anthropics/claude-plugins-official, затем повторите попытку установки.- The plugin is not found in the marketplace: проверьте имя плагина.
Run /reload-plugins to activate., Claude Code затем запустит эту перезагрузку для вас. Если перезагрузка предупреждает, что ваше следующее сообщение повторно прочитает разговор, выполните /reload-plugins --force.Запустите skill сборки
Установка MCP серверов
MCP серверы можно настроить несколькими способами в зависимости от ваших потребностей:Вариант 1: Добавление удалённого HTTP сервера
HTTP серверы — это рекомендуемый вариант для подключения к удалённым MCP серверам. Это наиболее широко поддерживаемый транспорт для облачных сервисов..mcp.json, ~/.claude.json или claude mcp add-json, поле type принимает streamable-http как псевдоним для http. Спецификация MCP использует имя streamable-http для этого транспорта, поэтому конфигурации, скопированные из документации сервера, работают без изменений.
Запись JSON, которая имеет url но не имеет type, является ошибкой конфигурации, потому что Claude Code читает запись без type как stdio сервер. Claude Code пропускает этот сервер и сообщает MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry. До версии v2.1.202 Claude Code сообщал об этой неправильной конфигурации как command: expected string, received undefined.
Только приложение-хост SDK, такое как приложение Agent SDK или настольное приложение, может зарегистрировать встроенный сервер "type": "sdk". Claude Code пропускает запись "type": "sdk" в .mcp.json, ~/.claude.json или параметрах и сообщает Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register.
В запусках --output-format stream-json Claude Code также сообщает о пропущенной записи --mcp-config в поле mcp_server_errors события system/init, поэтому скрипты могут обнаружить, что сервер никогда не загружался. Это требует Claude Code v2.1.219 или позже.
Вариант 2: Добавление удалённого SSE сервера
Некоторые сервисы по-прежнему предоставляют только SSE конечную точку. Добавляйте их с той же командойclaude mcp add --transport http <name> <url>, что и HTTP сервер. Claude Code сначала пробует HTTP транспорт и переключается на SSE, когда сервер его не принимает. Автоматическое переключение требует Claude Code v2.1.265 или позже.
На более ранней версии или для прямого подключения через SSE передайте --transport sse вместо этого:
Вариант 3: Добавление локального stdio сервера
Stdio серверы работают как локальные процессы на вашей машине. Они идеальны для инструментов, которым нужен прямой доступ к системе или пользовательские скрипты. Claude Code устанавливаетCLAUDE_PROJECT_DIR в окружение порождённого сервера в корень проекта, поэтому ваш сервер может разрешать пути относительно проекта без зависимости от рабочей директории. Это та же директория, которую hooks получают в своей переменной CLAUDE_PROJECT_DIR. Читайте её изнутри процесса вашего сервера, например process.env.CLAUDE_PROJECT_DIR в Node или os.environ["CLAUDE_PROJECT_DIR"] в Python.
CLAUDE_PROJECT_DIR — это стабильный корень проекта и не меняется, когда вы добавляете или удаляете рабочие директории во время сеанса. Сервер, который ограничивает свой собственный доступ к файловой системе набором разрешённых директорий, должен вместо этого реализовать MCP запрос roots/list. Claude Code отвечает на roots/list с директорией запуска сеанса плюс каждая дополнительная рабочая директория, которую вы предоставили с --add-dir, /add-dir или параметром additionalDirectories. Claude Code отправляет notifications/roots/list_changed, когда этот набор меняется. До версии v2.1.203 roots/list возвращал только директорию запуска и Claude Code не отправлял notifications/roots/list_changed.
Эта переменная устанавливается в окружение сервера, а не в собственное окружение Claude Code, поэтому ссылка на неё через расширение ${VAR} в command или args записи .mcp.json с областью проекта или локальной или пользовательской записи сервера в ~/.claude.json требует значения по умолчанию, такого как ${CLAUDE_PROJECT_DIR:-.}. Конфигурации MCP, предоставляемые плагинами, подставляют ${CLAUDE_PROJECT_DIR} напрямую и не нуждаются в значении по умолчанию.
--Для stdio серверов -- (двойной дефис) разделяет собственные опции Claude, такие как --transport, --env и --scope, от команды и аргументов, которые запускают сервер. Всё после -- передаётся серверу без изменений.Например:claude mcp add --transport stdio myserver -- npx server→ запускаетnpx serverclaude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080→ запускаетpython server.py --port 8080сKEY=valueв окружении
-- Claude Code попытался бы разобрать флаги сервера, такие как --port выше, как свои собственные опции.--env принимает несколько пар KEY=value. Если имя сервера идёт сразу после --env, CLI читает имя как другую пару и отклоняет её, поэтому поместите хотя бы одну другую опцию, такую как --transport stdio, между --env и именем сервера.Вариант 4: Добавление удалённого WebSocket сервера
WebSocket серверы поддерживают постоянное двусторонее соединение, которое подходит для удалённых MCP серверов, которые отправляют события Claude без запроса. Используйте HTTP вместо этого, когда ваш сервер только отвечает на запросы, так как HTTP поддерживает OAuth и флагclaude mcp add --transport, в то время как WebSocket не поддерживает ни то, ни другое.
Настраивайте WebSocket серверы в .mcp.json или с помощью claude mcp add-json:
type: "ws" принимает те же поля url, headers, headersHelper, timeout и alwaysLoad, что и http. Аутентификация только через заголовки, поэтому передайте статический токен в headers или сгенерируйте его во время подключения с помощью headersHelper. Флаг claude mcp add --transport не принимает ws.
Добавление сервера из инструкций по настройке, написанных для другого клиента
MCP серверы не специфичны для Claude Code, поэтому инструкции по настройке сервера могут быть написаны для Claude Desktop, Cursor или другого MCP клиента и не давать командуclaude mcp add. Чтобы добавить сервер в любом случае, ищите в этих инструкциях URL, команду запуска или блок JSON:
- URL такой как
https://mcp.example.com/mcp: сервер удалённый. - Команда запуска такая как
npx -y @example/mcp-server: сервер работает на вашей машине. - Блок JSON
mcpServers: конфигурация, написанная для файла параметров другого клиента.
--scope project или --scope user.
Из URL
URL означает, что сервер удалённый. Для конечной точкиhttps://, добавьте её с --transport http или следуйте Варианту 2, когда инструкции говорят, что конечная точка использует SSE. Для конечной точки wss:// используйте вместо этого Вариант 4, так как --transport не принимает ws:
--header, как показано в Варианте 1.
Из команды npx, uvx или двоичного файла
Команда запуска означает, что сервер работает как локальный stdio процесс. Поместите всю команду после --, чтобы Claude Code передал флаги, такие как -y, команде, которая запускает сервер, вместо того чтобы читать их как свои собственные опции. Передайте любые переменные окружения, которые инструкции требуют, с --env, после имени сервера и перед --:
--.
Из блока JSON mcpServers
Блок mcpServers, написанный для другого MCP клиента, такого как Claude Desktop, использует ключ обёртки и форму записи, которую читает Claude Code. Передайте claude mcp add-json объект внутри mcpServers, а не обёртку. Две записи нуждаются в исправлении сначала:
urlбезtype: добавьте"type": "http","type": "sse"или"type": "ws"для соответствия конечной точке. Claude Code читает запись безtypeкак stdio сервер, поэтому записьurlбезtypeне работает.- Ключ с символами, отличными от букв, цифр, дефисов и подчёркиваний: выберите имя сервера, которое использует только эти символы. В противном случае ключ — это имя сервера.
--scope для add-json. Чтобы поделиться сервером с вашей командой вместо этого, добавьте --scope project или добавьте запись под mcpServers в .mcp.json в корне вашего проекта и зафиксируйте её. Область проекта охватывает, как Claude Code загружает и одобряет этот файл.
Каждая команда claude mcp add и claude mcp add-json выводит строку Added .... Чтобы проверить, что Claude Code подключился, запустите claude mcp get <name>; Статус сервера охватывает статусы, которые он показывает, и шаг одобрения для серверов .mcp.json.
Управление вашими серверами
После настройки вы можете управлять вашими MCP серверами с помощью этих команд:Статус сервера
claude mcp add подтверждает успешное добавление, выводя строку Added ..., что означает, что конфигурация была записана. claude mcp list затем показывает статус здоровья рядом с каждым сервером, который он перечисляет, такой как ✔ Connected, ! Needs authentication или ✘ Failed to connect. Статус отказа означает, что Claude Code не смог подключиться к этому серверу, а не то, что команда list не удалась.
Статусы в этом списке сообщают о решении конфигурации, а не о попытке подключения, поэтому Claude Code выводит их без подключения к серверу:
⏸ Pending approval (run `claude` to approve): сервер с областью проекта из.mcp.json, который вы ещё не одобрили. Claude Code показывает его как вclaude mcp list, так и вclaude mcp get <name>. Запуститеclaudeинтерактивно, чтобы просмотреть и одобрить его.✘ Rejected (see disabledMcpjsonServers in settings): сервер.mcp.json, который записьdisabledMcpjsonServersотклоняет. Claude Code показывает его только вclaude mcp get <name>.⊘ Disabled for this project (re-enable via /mcp): сервер, который списокdisabledMcpServersпроекта называет. Claude Code показывает его как вclaude mcp list, так и вclaude mcp get <name>. Включите сервер обратно из панели/mcp. До версии v2.1.238 обе команды подключались к отключённому серверу для проверки здоровья и сообщали результат подключения.
claude mcp list. Используйте claude mcp get <name> или панель /mcp для их проверки.
Одобрения серверов проекта и доверие рабочей области
Начиная с версии v2.1.196,claude mcp list и claude mcp get читают одобрения .mcp.json только из файлов параметров, которые не зафиксированы в репозитории, пока вы не доверите рабочей области, запустив claude в ней и приняв диалог доверия рабочей области. Клонированный репозиторий не может одобрить свои собственные серверы: enableAllProjectMcpServers или enabledMcpjsonServers, зафиксированные в .claude/settings.json проекта, игнорируются в недоверенной папке, и сервер остаётся в ⏸ Pending approval вместо подключения и проверки здоровья.
Одобрения из этих источников по-прежнему применяются в недоверенной папке:
- ваш пользовательский
~/.claude/settings.json - управляемые параметры
- параметры, переданные с
--settings
.claude/settings.local.json, но он запускает git для проверки, отслеживается ли файл, и запускает эту проверку только в доверенной папке. В папке, которую вы никогда не доверяли, Claude Code ждёт диалога доверия перед применением одобрений файла, если только папка не является вашей конфигурационной домашней директорией: вашей домашней директорией или директорией, чей .claude вы установили как CLAUDE_CONFIG_DIR. До версии v2.1.207 Claude Code применял одобрения из отслеживаемого .claude/settings.local.json даже в папке, которую вы никогда не доверяли.
Запись disabledMcpjsonServers в любом файле параметров по-прежнему отклоняет сервер.
Деталь статуса сервера
В/mcp, включая меню сервера там, и в менеджере /plugin, удалённый HTTP или SSE сервер, который вы использовали раньше, может показать статус cached такой как cached 2h ago · connects on first use · 5 tools. Claude Code загрузил список инструментов сервера из своего кэша обнаружения, сохранённого в предыдущем сеансе, вместо подключения при запуске, и Claude Code подключает сервер в первый раз, когда Claude вызывает один из инструментов сервера. Инструменты доступны с вашего первого сообщения, поэтому вам не нужно ничего делать. Кэш обнаружения и его статус cached требуют Claude Code v2.1.221 или позже.
Кэш обнаружения отключён по умолчанию, если постепенное развёртывание не включило его для вашей учётной записи. Установите MCP_DISCOVERY_CACHE=1 для его включения или 0 для его отключения, даже если развёртывание включило его. До версии v2.1.238 кэш был включён по умолчанию.
Когда вы выбираете Disable или Clear authentication из меню сервера в /mcp, Claude Code также отбрасывает запись кэша этого сервера. Reconnect отбрасывает её тоже на подключённом или неудачном сервере; на сервере cached Reconnect подключает сервер сейчас и сохраняет запись. В следующий раз, когда Claude Code подключится к серверу после отбрасывания записи, он получит список инструментов с сервера вместо кэша.
Когда статус сервера ✘ Failed to connect, claude mcp list добавляет деталь отказа к этой строке статуса, и claude mcp get <name> показывает её на строке Issue:: HTTP статус или код ошибки, плюс любой текст ошибки, который вернул сервер. Представление деталей сервера в /mcp включает тот же текст, сообщённый сервером, в его строку Issue:. Claude Code редактирует текст, похожий на учётные данные, из этой детали и никогда не включает развёрнутый URL сервера, который может нести секреты. Claude Code не добавляет деталь к статусу ✘ Connection error, потому что текст исключения, который он выводил бы там, может встроить этот URL. До версии v2.1.219 обе команды показывали только голый статус отказа, без кода статуса или текста ошибки сервера.
Когда вы завершаете аутентификацию из /mcp и подключение по-прежнему не удаётся с HTTP статусом или кодом ошибки транспорта, Claude Code добавляет этот код и источник URL сервера к сообщению, которое он выводит после попытки. Источник — это схема и хост, плюс порт, когда URL называет один, такой как https://mcp.example.com.
- Путь и запрос никогда не появляются в этом сообщении.
- Для сервера в локальной, проектной или пользовательской области или в управляемой конфигурации MCP источник показывает хост, как написано в этой конфигурации, поэтому ссылка
${VAR}в хосте не развёрнута в сообщении. - Для отказа без статуса или кода ошибки Claude Code показывает текст ошибки без источника.
url, показывается как not configured в /mcp, в claude mcp list и в менеджере /plugin, и Claude Code не пытается подключиться к нему. Плагин может включить запись-заполнитель, подобную этой, для соединителя, который вы настраиваете позже, поэтому Claude Code не сообщает об этом как об ошибке или проблеме настройки. Представление деталей сервера в /mcp читает No URL configured for this server; установите url записи для подключения к нему. До версии v2.1.208 Claude Code сообщал о пустом url как о проблеме конфигурации с подсказкой переподключиться.
Предупреждения конфигурации
Claude Code предупреждает о проблемах конфигурации ниже. Каждая запись говорит, что Claude Code проверяет и как очистить предупреждение:- Скрытое пробельное пространство: Claude Code предупреждает, когда значение конфигурации MCP несёт скрытое ведущее или конечное пробельное пространство, которое часто происходит из вставки токена с конечным переводом строки. Claude Code проверяет
command,url, каждую записьargsи значения и имена ключей подenvиheaders. Claude Code показывает предупреждение в выводеclaude mcp listи в/mcp, называя затронутые поля без повторения их значений, напримерLeading or trailing whitespace in: headers.Authorization. Claude Code не обрезает пробельное пространство и использует значения точно так, как написано, поэтому отредактируйте конфигурацию, чтобы удалить его. - Одно имя в более чем одной области: если вы определяете одно имя сервера в более чем одной области с разными конечными точками, Claude Code предупреждает о конфликте в выводе
claude mcp listи в/mcp. Claude Code хранит входы OAuth для каждой конечной точки, поэтому когда вы аутентифицируете определение, которое загружается в одном проекте, вам по-прежнему нужно отдельно войти в проект, где загружается другое определение. Сохраните конечную точку, которую вы хотите, и удалите остальные с помощьюclaude mcp remove <name> --scope <scope>. В предупреждении Claude Code цитирует конечную точку каждой области, как написано в вашей конфигурации, с ссылками${VAR}не развёрнутыми, поэтому она никогда не показывает разрешённое значение, такое как ключ API. - Зарезервированные имена: Claude Code резервирует имена своих встроенных серверов, включая
workspace,claude-in-chrome,computer-use,Claude PreviewиClaude Browser. Если ваша конфигурация определяет сервер с зарезервированным именем, Claude Code пропускает его при загрузке и показывает предупреждение, прося вас переименовать его.claude mcp addотклоняет зарезервированное имя с ошибкой.Claude PreviewиClaude Browserоба называют встроенный сервер, который использует панель предпросмотра настольного приложения Claude Code. До версии v2.1.205Claude Browserне был зарезервирован, поэтому пользовательский сервер мог зарегистрироваться под этим именем. - Отсутствующая переменная окружения: если ссылка
${VAR}в конфигурации сервера называет переменную, которая не установлена и не имеет:-default, Claude Code предупреждает в выводеclaude mcp listи в/mcp, называя переменную, и по-прежнему загружает сервер с текстом${VAR}не развёрнутым. Установите переменную или добавьте резервный вариант${VAR:-default}. Вurlиheadersудалённого сервера некоторые переменные учётных данных читаются как пустые вместо этого, без предупреждения.
Доступность инструментов
Панель/mcp показывает количество инструментов рядом с каждым подключённым сервером и отмечает серверы, которые объявляют возможность инструментов, но не предоставляют инструменты.
Если ваш запрос нуждается в инструментах с сервера, который всё ещё подключается в фоне, Claude ждёт этого сервера перед продолжением. Как происходит ожидание, зависит от вашей конфигурации:
- С поиском инструментов, по умолчанию: ожидание происходит внутри вызова
ToolSearch. - Без поиска инструментов: Claude использует инструмент
WaitForMcpServersвместо этого. Конфигурации без поиска инструментов включают пользовательскийANTHROPIC_BASE_URL,ENABLE_TOOL_SEARCH=falseи модель более ранней версии, чем поколение Claude 4.5 на платформе Agent Platform Google Cloud. - На развёртывании Microsoft Foundry размещённом на Azure: Claude начинает на пути поиска инструментов, а не с
WaitForMcpServers, так как Claude Code обнаруживает отклонение на стороне сервера развёртывания только из API. После того как Claude Code переключит это развёртывание на предварительную загрузку, инструменты с сервера, который завершает подключение, становятся доступны при следующем запросе Claude.
Отключение сервера без его удаления
Переключите сервер в панели/mcp, чтобы остановить Claude Code от подключения к нему без потери его конфигурации. Claude Code по-прежнему перечисляет сервер в /mcp, отмеченный как отключённый.
Когда вы переключаете сервер, Claude Code записывает ваш выбор для каждого проекта в ~/.claude.json, в один из двух списков, которые охватывают непересекающиеся наборы серверов:
disabledMcpServers: список отказа для пользовательских серверов, серверов плагинов, серверов, которые ваша организация предоставляет через управляемые параметры, соединителей claude.ai, которые Claude Code получает сам, и встроенных серверов, которые по умолчанию включены. Claude Code не подключается к серверу, который вы перечисляете здесь. Когда вы отключаете соединитель claude.ai с помощью переключателя/mcpдля каждого проекта, описанного в Отключение соединителей claude.ai, Claude Code записывает его в этот список под его отображаемым именем, напримерclaude.ai Slack.enabledMcpServers: список включения для встроенных серверов, которые по умолчанию отключены, такие какcomputer-use. Claude Code подключается к серверу, отключённому по умолчанию, только когда вы перечисляете его здесь.
enabledMcpServers или сервер, отключённый по умолчанию, в disabledMcpServers, Claude Code игнорирует запись.
disabledMcpServers и enabledMcpServers не связаны с enabledMcpjsonServers и disabledMcpjsonServers, которые контролируют одобрение серверов, определённых в файле .mcp.json проекта.
Среды выполнения клиента MCP
Claude Code подключается к MCP серверам через одну из двух сред выполнения клиента. Среда выполнения v1 построена на MCP TypeScript SDK 1.x. Среда выполнения v2 — это тот же код на MCP TypeScript SDK 2.0, который добавляет пересмотр протокола MCP 2026-07-28. Остальная часть этой страницы применяется к обеим средам выполнения, кроме случаев, когда раздел называет среду выполнения v2. Claude Code выбирает среду выполнения каждый раз, когда вы его запускаете, и сохраняет её до выхода. В сеансах, где он получает флаги функций, он использует среду выполнения v2 на Claude Code v2.1.232 или позже. В сеансах, где он не получает флаги функций, Claude Code использует среду выполнения v2 по умолчанию на Claude Code v2.1.274 или позже:- Сеансы на Amazon Bedrock, Claude Platform на AWS, платформе Agent Platform Google Cloud или Microsoft Foundry, если платформа-хост, которая встраивает Claude Code, не устанавливает
CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST - Сеансы, вошедшие через шлюз приложений Claude
- Сеансы, где вы отключаете телеметрию или получение флагов функций, например с
DISABLE_TELEMETRY
- Спрашивает HTTP серверы, поддерживают ли они более новый пересмотр, и использует его с теми, которые это делают. Он также спрашивает серверы соединителей claude.ai в сеансах, где он получает флаги функций. Чтобы заставить его спрашивать stdio серверы или серверы соединителей в каждом сеансе, установите
MCP_PROTOCOL_NEGOTIATIONнаauto. Он подключается к каждому другому серверу, как v1 это делает. - Получает уведомления
list_changedс серверов на более новом пересмотре через поток, который он держит открытым. - Не регистрирует сервер канала, который подключается на более новом пересмотре, потому что этот пересмотр не может нести сообщения канала.
- Не удаётся вход MCP OAuth, чей ответ авторизации называет неожиданного издателя.
MCP_SDK_GENERATION на v1 или v2. Чтобы решить, спрашивает ли Claude Code, установите MCP_PROTOCOL_NEGOTIATION на auto или legacy.
Динамические обновления инструментов
Claude Code поддерживает уведомления MCPlist_changed, позволяя MCP серверам динамически обновлять свои доступные инструменты, подсказки и ресурсы без необходимости отключения и переподключения. Когда MCP сервер отправляет уведомление list_changed, Claude Code автоматически обновляет доступные возможности с этого сервера.
Если запрос обновления не удаётся, Claude Code сохраняет ранее обнаруженные инструменты, подсказки и ресурсы сервера до тех пор, пока более позднее обновление не удастся. До версии v2.1.214 переходная ошибка во время обновления заменяла инструменты, подсказки и ресурсы сервера пустым списком.
Потоки уведомлений на среде выполнения v2
На среде выполнения v2 Claude Code получает уведомленияlist_changed с сервера на более новом пересмотре протокола через поток, который он держит открытым. Когда поток закрывается, Claude Code переоткрывает его с двумя ограничениями:
- Поток закрывается снова в течение 10 секунд: Claude Code переоткрывает его до трёх раз, затем останавливается для этого соединения.
- Поток остаётся открытым дольше 10 секунд, затем закрывается, как потоки к бессерверным хостам обычно делают: после пяти переоткрытий в час Claude Code ждёт около шести часов перед следующим.
/mcp.
Автоматическое переподключение
Claude Code переподключает удалённый сервер, который отключается во время сеанса, и повторяет попытку первого подключения HTTP или SSE сервера после переходной ошибки. Stdio серверы — это локальные процессы, и Claude Code не переподключает их автоматически.Отключения удалённого сервера во время сеанса
Claude Code переподключает отключённый удалённый сервер с экспоненциальной задержкой: до пяти попыток, начиная с задержки в одну секунду и удваивая её каждый раз. То, что вы видите, зависит от того, как вы запускаете Claude Code:- В интерактивном сеансе:
/mcpпоказывает сервер как ожидающий, пока Claude Code переподключается. После пяти неудачных попыток Claude Code отмечает сервер как неудачный или как нуждающийся в аутентификации, когда сервер нуждается в авторизации снова. Когда он отмечает сервер как неудачный, вы видите уведомлениеMCP server "<name>" disconnected · open /mcp to reconnect. Вы можете повторить попытку вручную из/mcp. - В запусках
claude -pи сеансах Agent SDK: Claude Code переподключается по тому же расписанию, без панели/mcpдля показа попыток.
Неудачные первые подключения
Когда первое подключение HTTP или SSE сервера не удаётся с переходной ошибкой, такой как ответ 5xx, отказ в соединении или тайм-аут, Claude Code повторяет попытку до трёх раз. Если подключение по-прежнему не удаётся, Claude Code отмечает сервер как неудачный. Claude Code повторяет попытку таким образом при запуске и когда сервер добавляется во время сеанса. Это включает сервер, который Claude Code добавляет в облачный сеанс из его конфигурации, и сервер, который вы добавляете с помощью методаsetMcpServers() Agent SDK.
Claude Code не повторяет попытку в этих случаях:
- Первое подключение WebSocket сервера
- Ошибка аутентификации или не найдено, потому что это требует изменения конфигурации для разрешения. Когда
headersHelper— единственный источник сервера заголовкаAuthorization, Claude Code повторяет попытку ошибки аутентификации в любом случае, потому что он повторно запускает помощника при каждой попытке и может подобрать свежие учётные данные
Неудачные запросы обнаружения
После подключения сервера Claude Code отправляет ему запросы обнаружения возможностей, такие какtools/list, prompts/list и resources/list. Claude Code повторяет эти запросы до трёх раз с короткой задержкой после переходной сетевой или серверной ошибки. Он не повторяет ошибки аутентификации, ответы 4xx или тайм-ауты запросов.
Как Claude узнаёт, что сервер не удался
Сообщает ли Claude Code Claude о настроенном сервере, который не смог подключиться, зависит от поиска инструментов, который включён по умолчанию:- С поиском инструментов Claude Code сообщает Claude, какой сервер не удался и его ошибка подключения, поэтому Claude сообщает об ошибке подключения в своём ответе. Claude Code включает ту же информацию в результаты
ToolSearch, которые не находят соответствующий инструмент. - В любой конфигурации без поиска инструментов Claude Code не сообщает Claude о неудачных подключениях сервера.
Отправка сообщений с каналами
MCP сервер также может отправлять сообщения непосредственно в ваш сеанс, чтобы Claude мог реагировать на внешние события, такие как результаты CI, оповещения мониторинга или сообщения чата. Чтобы включить это, ваш сервер объявляет возможностьclaude/channel и вы выбираете его с флагом --channels при запуске. Смотрите Каналы для использования официально поддерживаемого канала или Справочник каналов для создания своего собственного.
На среде выполнения v2, если вы установите MCP_PROTOCOL_NEGOTIATION на auto и сервер канала согласует пересмотр протокола MCP 2026-07-28, он не может доставлять сообщения канала, поэтому Claude Code не регистрирует его как канал. Оставление переменной неустановленной или установка её на legacy сохраняет stdio серверы на более раннем рукопожатии.
Тайм-аут для каждого сервера — это жёсткий предел реального времени для каждого вызова инструмента, и уведомления о прогрессе с сервера не расширяют его. Значения ниже 1000 игнорируются и переходят к MCP_TOOL_TIMEOUT или к его значению по умолчанию около 28 часов, когда эта переменная не установлена. Для HTTP, SSE или соединителя claude.ai сервера также есть второй таймер для каждого запроса, который охватывает каждый запрос до первого байта ответа сервера. Claude Code устанавливает этот таймер на наибольшее из трёх значений: 60 секунд, тайм-аут инструмента, который применяется к серверу, и MCP_TIMEOUT. Значение по умолчанию 28 часов неустановленного MCP_TOOL_TIMEOUT не входит в это сравнение, и значение ниже 60 секунд не сокращает таймер. Stdio и WebSocket серверы не имеют таймера для каждого запроса.
Тайм-аут для каждого сервера не менее 1000 также действует как нижний предел для тайм-аута неактивности, описанного ниже: Claude Code никогда не прерывает вызовы инструментов этого сервера из-за неактивности раньше, чем тайм-аут для каждого сервера. Требует Claude Code v2.1.203 или позже.
Вызов инструмента к MCP серверу, который не отправляет ответ и не отправляет уведомление о прогрессе в течение окна неактивности, прерывается с ошибкой вместо ожидания предела реального времени. Тайм-аут неактивности применяется к каждому типу сервера, кроме IDE серверов и SDK встроенных серверов. Окно неактивности по умолчанию составляет пять минут для HTTP, SSE, WebSocket и соединителей claude.ai серверов и 30 минут для stdio серверов. До версии v2.1.203 stdio серверы были освобождены от тайм-аута неактивности.
Установите переменную окружения CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT в миллисекундах, чтобы изменить окно неактивности, или установите её на 0, чтобы отключить проверку.
Эти тайм-ауты ограничивают, как долго может работать вызов, не всегда как долго он блокирует сеанс: вызов основного разговора, который работает более двух минут, сначала переходит в фоновую задачу. Смотрите Автоматическое фоновое выполнение долгих вызовов инструментов.
Автоматическое фоновое выполнение долгих вызовов инструментов
Вызов инструмента MCP в основном разговоре, который всё ещё работает после двух минут, переходит в фоновую задачу вместо блокирования сеанса. Claude получает ID задачи немедленно и продолжает работать, и результат приходит как уведомление задачи, когда вызов завершается. Автоматическое фоновое выполнение требует Claude Code v2.1.212 или позже. Задача появляется в/tasks, где вы также можете её остановить, и она не сохраняется при выходе из сеанса. Ограничения для каждого вызова по-прежнему применяются, пока вызов работает в фоне: предел реального времени, установленный тайм-аутом для каждого сервера или MCP_TOOL_TIMEOUT, и тайм-аут неактивности, установленный CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT.
Установите переменную окружения CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS в миллисекундах, чтобы изменить порог, или установите её на 0, чтобы отключить автоматическое фоновое выполнение. Установка CLAUDE_CODE_DISABLE_BACKGROUND_TASKS на 1 также отключает его, наряду со всеми другими функциями фоновых задач.
Некоторые вызовы никогда не переходят в фон:
- Вызовы из подагентов; Claude Code фоновое выполнение только вызовов основного разговора
- Вызовы к IDE серверам
- Вызовы в неинтерактивном режиме, если только
CLAUDE_AUTO_BACKGROUND_TASKSне установлена на1, так как одноразовый запуск может завершиться до прибытия результата
MCP серверы, предоставляемые плагинами
Плагины могут объединять MCP серверы, которые предоставляют инструменты и интеграции при включении плагина. MCP серверы плагинов работают идентично пользовательским настроенным серверам. Как работают MCP серверы плагинов:- Плагины определяют MCP серверы в
.mcp.jsonв корне плагина или встроенные вplugin.json - Когда вы включаете плагин, Claude Code автоматически запускает его MCP серверы
- Claude Code предлагает инструменты MCP плагинов наряду с вручную настроенными инструментами MCP
- Вы добавляете и удаляете серверы плагинов, устанавливая или удаляя плагин, а не с помощью команд
/mcp. Вы по-прежнему можете переключить установленный сервер плагина в/mcp, что останавливает Claude Code от подключения к нему без удаления плагина
.mcp.json в корне плагина:
plugin.json:
- Автоматический жизненный цикл: серверы подключаются и отключаются в этих точках:
- При запуске сеанса Claude Code автоматически подключает серверы для включённых плагинов. В
/mcpудалённый (HTTP или SSE) сервер плагина, который вы использовали раньше, может показать статусcachedвместо этого; Claude Code подключает его, когда Claude впервые вызывает один из его инструментов - Если вы включаете или отключаете плагин во время сеанса, Claude Code подключает или отключает его MCP серверы, когда изменение применяется. Применение изменений плагина без перезагрузки описывает, когда это происходит. В сеансе без интерактивного терминала
/reload-pluginsне подключает и не отключает MCP серверы плагинов; эти изменения вступают в силу в вашем следующем сеансе - Когда вы перезагружаете, Claude Code сохраняет живые соединения серверов плагинов, чья конфигурация не изменилась, и делает то же самое, когда вы заменяете список MCP сервера сеанса из Agent SDK без их названия
- Когда вы перемещаете сеанс с
/cdна v2.1.246 или позже, Claude Code подключает серверы плагинов, которые включают параметры новой директории, и отключает серверы плагинов, которые больше не включены, поэтому вам не нужно запускать/reload-pluginsпосле перемещения - В облачных сеансах вызов MCP к серверу плагина, который ещё не подключён, такой как сразу после пробуждения неактивного сеанса, запускает сервер по требованию и ждёт его подключения
- При запуске сеанса Claude Code автоматически подключает серверы для включённых плагинов. В
- Заполнители пути:
${CLAUDE_PLUGIN_ROOT}разрешается в директорию установки плагина,${CLAUDE_PLUGIN_DATA}в его директорию постоянного состояния и${CLAUDE_PROJECT_DIR}в стабильный корень проекта. Подстановка применяется к:- серверам
stdio:command,args,env - серверам
http,sseиws:url,headersиheadersHelper. До версии v2.1.195headersHelperпередавал заполнитель как буквальную строку
- серверам
- Доступ к пользовательскому окружению: доступ к тем же переменным окружения, что и вручную настроенные серверы
- Несколько типов транспорта: поддержка транспортов stdio, SSE, HTTP и WebSocket, хотя поддержка транспорта может варьироваться по серверам
/mcp с индикаторами, показывающими, что они поступают из плагинов.
Имена инструментов MCP плагинов:
Инструменты с сервера MCP, объединённого с плагином, включают как имя плагина, так и ключ сервера в их вызываемое имя. Полная форма — mcp__plugin_<plugin-name>_<server-name>__<tool-name>, где любой символ вне A-Z, a-z, 0-9, _ и - заменяется на _. Для сервера database-tools, объединённого в плагин с именем my-plugin, инструмент query вызывается как:
allowed-tools навыка, поле tools подагента или сопоставителе hook. Сопоставитель hook, написанный для голого ключа сервера, такой как mcp__database-tools__.*, никогда не срабатывает для сервера, объединённого с плагином.
Сам сервер регистрируется под именем с областью plugin:<plugin-name>:<server-name>, такой как plugin:my-plugin:database-tools. Используйте это имя, где ожидается имя настроенного сервера, такое как поле server hook mcp_tool.
Смотрите справочник компонентов плагинов для деталей об объединении MCP серверов с плагинами.
Области установки MCP
MCP servers можно настроить на трех различных уровнях области. Область, которую вы выбираете, контролирует, в каких проектах загружается server и является ли конфигурация общей с вашей командой. Администраторы также могут развертывать или предоставлять servers для каждого пользователя через управляемую конфигурацию.Локальная область
Локальная область — это область по умолчанию. Server с локальной областью загружается только в проекте, где вы его добавили, и остается приватным для вас. Claude Code хранит его в~/.claude.json в пути вашего проекта, поэтому один и тот же server не будет отображаться в ваших других проектах. Используйте локальную область для личных development servers, экспериментальных конфигураций или servers с учетными данными, которые вы не хотите в контроле версий.
~/.claude.json (ваш домашний каталог), в то время как общие локальные параметры используют .claude/settings.local.json (в каталоге проекта). См. Параметры для получения подробной информации о расположении файлов параметров.~/.claude.json. Пример ниже показывает результат при запуске из /path/to/your/project:
Область проекта
Servers с областью проекта позволяют командной работе, сохраняя конфигурации в файле.mcp.json в корневом каталоге вашего проекта. Когда вы добавляете server с областью проекта, Claude Code автоматически создает или обновляет этот файл с соответствующей структурой конфигурации. Проверьте .mcp.json в контроль версий, чтобы все члены вашей команды получили одни и те же MCP tools и сервисы.
.mcp.json следует стандартизированному формату:
.mcp.json. Чтобы сбросить эти выборы одобрения, запустите claude mcp reset-project-choices.
В запусках claude -p, сеансах Agent SDK и облачных сеансах, Claude Code не может показать этот запрос: он загружает servers с областью проекта без запроса. Claude Code также пропускает запрос в сеансе, который вы запускаете в режиме bypassPermissions с skipDangerousModePermissionPrompt, установленным в ваших пользовательских параметрах или в управляемых параметрах. Чтобы все равно исключить server:
- Добавьте его в
disabledMcpjsonServers, что блокирует его в каждом режиме разрешений. - Исключите параметры проекта полностью с помощью
--setting-sourcesили опцииsettingSourcesSDK. - Запустите сеанс с
--strict-mcp-config. Claude Code затем использует только MCP servers, которые вы передаете с--mcp-config. Пропуск запроса одобрения для servers с областью проекта, которые Claude Code не загружает, требует Claude Code v2.1.246 или позже; до v2.1.246 строгий сеанс все еще ждал одобрения для них, что оставляло фоновые сеансы в ожидании при запуске. См. Исключительный контроль с managed-mcp.json для того, что флаг делает под управляемым файлом MCP.
Область пользователя
Servers с областью пользователя хранятся в~/.claude.json и обеспечивают доступность между проектами, делая их доступными во всех проектах на вашей машине, оставаясь приватными для вашей учетной записи пользователя. Эта область хорошо работает для личных utility servers, инструментов разработки или сервисов, которые вы часто используете в разных проектах.
Иерархия области и приоритет
Когда один и тот же server определен в более чем одном месте, Claude Code подключается к нему один раз, используя определение из источника с наивысшим приоритетом. Вся запись server из этого источника используется; поля не объединяются между областями.- Локальная область
- Область проекта
- Область пользователя
- Plugin-provided servers
- claude.ai connectors
:443 на https, или косой чертой в конце. Другой путь, строка запроса, userinfo или нестандартный порт делают два servers разными.
Server, который ваша организация предоставляет через управляемый параметр managedMcpServers, занимает место выше всех этих, поэтому когда один из них дублирует его, Claude Code подключает определение организации. Требует Claude Code v2.1.259 или позже.
Если вы откроете локальный сеанс на вкладке Code приложения Desktop с одним и тем же именем stdio server на верхнем уровне ~/.claude.json (область пользователя) и в .mcp.json, вкладка Code использует определение ~/.claude.json.
Расширение переменных окружения в .mcp.json
Claude Code поддерживает расширение переменных окружения в файлах .mcp.json, позволяя командам делиться конфигурациями, сохраняя гибкость для путей, специфичных для машины, и чувствительных значений, таких как ключи API.
Поддерживаемый синтаксис
${VAR}: расширяется до значения переменной окруженияVAR${VAR:-default}: расширяется доVAR, если установлена, иначе используетdefault
Места расширения
Переменные окружения могут быть расширены в:command: путь к исполняемому файлу serverargs: аргументы командной строкиenv: переменные окружения, передаваемые serverurl: для типов HTTP serverheaders: для аутентификации HTTP server
Пример с расширением переменных
Неустановленные переменные без значения по умолчанию
Если требуемая переменная окружения не установлена и не имеет значения по умолчанию, конфигурация все еще загружается: Claude Code сообщает предупреждение об отсутствующей переменной для этого server в выводеclaude mcp list и использует неразвернутый текст ${VAR} как есть. Установите переменную или добавьте резервное значение :-default, чтобы server запустился с предполагаемым значением. В url и headers удаленного server некоторые переменные учетных данных читаются как пустые вместо этого, без предупреждения.
Переменные учетных данных, которые читаются как пустые
Вurl и headers удаленного server Claude Code читает переменные учетных данных из вашего окружения как пустые, а не расширяет их. Это предотвращает отправку конфигурации .mcp.json проекта или плагина ваших учетных данных Claude Code или облачного провайдера на server, который он называет. Если вы напишете Bearer ${ANTHROPIC_AUTH_TOKEN}, server получит Bearer без учетных данных и отклонит запрос, обычно с 401. Claude Code сообщает об этом как о неудачном подключении.
Охватываемые имена:
- Собственные учетные данные Claude Code, такие как
ANTHROPIC_API_KEYиANTHROPIC_AUTH_TOKEN - Учетные данные вашего облачного провайдера, такие как
AWS_BEARER_TOKEN_BEDROCK - Другие учетные данные, которые несет ваше окружение, такие как
HTTPS_PROXYиNPM_TOKEN
:-default на нем игнорируется. URL базы провайдера, такой как ANTHROPIC_BASE_URL, все еще расширяется, поэтому "url": "${ANTHROPIC_BASE_URL}/mcp" работает, если только значение URL не встраивает учетные данные, такие как имя пользователя и пароль.
Имя вне этого набора, такое как API_KEY, расширяется как написано. Чтобы дать server одно из охватываемых учетных данных, скопируйте его в переменную с именем вашего собственного и ссылайтесь на это имя вместо этого.
Когда url или headers удаленного server ссылаются на охватываемую переменную, которую вы установили, Claude Code называет ее в строке журнала отладки. Чтобы прочитать строку, запустите claude --debug-file /tmp/claude-debug.log и найдите в этом файле never expanded toward a remote server.
Как ссылки отображаются в /mcp и выводе CLI
Для server в локальной, проектной или пользовательской области следующие поверхности показывают ссылку ${VAR} по имени, а не как ее разрешенное значение:
- URL или командная строка в представлении деталей
/mcpserver - Вывод
claude mcp listиclaude mcp get
/mcp показывает ссылки таким образом в Claude Code v2.1.268 или позже.
Для server, который ваша организация предоставляет через параметр managedMcpServers, эти поверхности показывают только хост URL.
Чтобы проверить, что показывают claude mcp list, claude mcp get и /mcp при сбое подключения, см. Деталь статуса server.
Практические примеры
Пример: подключение к GitHub для проверки кода
GitHub’s remote MCP server аутентифицируется с помощью токена личного доступа GitHub, переданного как заголовок. Чтобы получить его, откройте параметры токена GitHub, создайте новый детальный токен с доступом к репозиториям, с которыми вы хотите, чтобы Claude работал, затем добавьте сервер:YOUR_GITHUB_PAT на ваш токен личного доступа. Команда claude mcp add сохраняет конфигурацию без проверки учетных данных, поэтому здесь принимается значение-заполнитель, но сервер не подключится позже. Чтобы проверить соединение, запустите /mcp и убедитесь, что сервер показывает connected. Сервер с неправильными учетными данными показывает failed, и детали сбоя включают HTTP-статус, возвращаемый сервером, например 401.
Затем работайте с GitHub:
Пример: запрос к базе данных PostgreSQL
DBHub, пакет@bytebase/dbhub, — это MCP сервер, который подключает Claude к реляционной базе данных через строку подключения, которую вы передаете в --dsn. Используйте пользователя базы данных только для чтения в строке подключения, чтобы запросы, которые запускает Claude, не могли изменять данные:
/mcp и убедитесь, что db показывает connected.
Затем запрашивайте вашу базу данных естественным образом:
Аутентификация с удаленными MCP серверами
Многие облачные MCP серверы требуют аутентификации. Claude Code поддерживает OAuth 2.0 для безопасных соединений. Claude Code помечает удаленный сервер как требующий аутентификации, когда сервер отвечает с401 Unauthorized или 403 Forbidden. То, что показывает Claude Code, зависит от сервера:
- Для сервера, на который вы еще не вошли, любой из этих кодов состояния помечает его в
/mcp, чтобы вы могли завершить поток OAuth. - Для коннектора claude.ai,
401, вызванный отклонением claude.ai вашего токена сеанса, не помечает коннектор, потому что повторная авторизация коннектора не может исправить вашу учетную запись. Claude Code показывает состояние отклонения токена сеанса вместо этого. - Для сервера, чей заголовок
Authorizationвы настроили вheadersили черезheadersHelper,401или403при подключении не помечает сервер, потому что учетные данные для исправления — это те, которые вы настроили. Claude Code вместо этого сообщает о неудачном соединении. Если вы установили этот заголовок из ссылки${VAR}, проверьте, является ли эта переменная одной из тех, которые Claude Code читает как пустые. - Для коннектора доставленного в облачный сеанс, Claude Code не запускает поток входа, потому что прокси сеанса аутентифицируется на коннекторе с авторизацией, которую вы предоставили в claude.ai. Когда коннектор там требует повторной авторизации, переподключитесь на claude.ai/customize/connectors вместо сеанса.
401 Unauthorized, Claude Code обновляет сохраненный токен, переподключается и повторяет запрос один раз. Он помечает сервер в /mcp только если этот повтор также не удается. До v2.1.206 обновление токена, которое не удалось по временной причине, такой как ошибка сети, помечало OAuth сервер как требующий аутентификации на остаток сеанса, даже если его токен обновления был все еще действителен.
Когда сервер отклоняет сохраненный токен обновления, Claude Code немедленно показывает уведомление, указывающее на /mcp. Откройте /mcp и выберите Re-authenticate на сервере, чтобы войти снова перед следующим вызовом инструмента.
Пользовательский сервер, который возвращает заголовок WWW-Authenticate, указывающий на его сервер авторизации, получает такое же автоматическое обнаружение, как и любой другой удаленный сервер.
Claude Code также показывает уведомление при запуске, когда один или несколько настроенных серверов требуют аутентификации, поэтому вам не нужно открывать /mcp, чтобы узнать, какие серверы требуют входа. Уведомление требует Claude Code v2.1.193 или позже. Оно считает только серверы, на которые вы можете войти из Claude Code. До v2.1.218 оно также считало коннекторы claude.ai, которые не были подключены в claude.ai, которые вы можете подключить только из параметров claude.ai.
Уведомление объявляет каждый сервер один раз и исключает его из подсчета при последующих запусках, пока этот сервер не подключится и снова не потребует входа. /mcp по-прежнему перечисляет каждый сервер, который требует входа.
В неинтерактивном режиме нет панели /mcp, поэтому Claude Code не может запустить поток OAuth для вас. Начиная с v2.1.196, когда настроенный сервер требует аутентификации во время запуска claude -p или Agent SDK с включенным поиском инструментов, что является значением по умолчанию, Claude Code сообщает Claude, что инструменты сервера недоступны, пока вы его не авторизуете. Claude затем может назвать сервер, который требует входа, вместо того чтобы отвечать так, как если бы сервер не был настроен. Завершите вход из интерактивного сеанса с /mcp или claude mcp login <name>.
Если вы настроили headers.Authorization для сервера и сервер отклоняет этот заголовок, Claude Code сообщает о неудачном соединении вместо возврата к OAuth. Проверьте, что токен действителен для конечной точки MCP, или удалите заголовок, чтобы использовать поток OAuth.
Добавьте сервер, требующий аутентификации
sentry в быстром старте MCP, пропустите этот шаг: повторный запуск claude mcp add с тем же именем сервера в той же области завершится ошибкой MCP server sentry already exists in local config. В противном случае запустите:Используйте команду /mcp в Claude Code
Аутентификация из командной строки
Командаclaude mcp login <name> запускает поток OAuth настроенного сервера непосредственно из вашей оболочки, поэтому вам не нужно открывать панель /mcp внутри сеанса.
claude mcp logout <name>.
claude mcp login обнаруживает, когда локальный браузер недоступен, например во время сеанса SSH или на Linux без сервера отображения, и выводит URL авторизации вместо попытки открыть браузер. Откройте URL на вашей локальной машине, затем вставьте полный URL перенаправления из адресной строки браузера обратно в приглашение. Команде требуется интерактивный терминал для шага вставки, поэтому подключитесь с ssh -t. Передайте --no-browser, чтобы принудительно использовать приглашение URL даже при обнаружении локального браузера.
Используйте фиксированный порт обратного вызова OAuth
Некоторые MCP серверы требуют определенный URI перенаправления, зарегистрированный заранее. По умолчанию Claude Code выбирает случайный доступный порт для обратного вызова OAuth. Используйте--callback-port, чтобы зафиксировать порт так, чтобы он соответствовал предварительно зарегистрированному URI перенаправления формы http://localhost:PORT/callback. Если вход на Claude Code v2.1.229 не удается с несоответствием URI перенаправления, см. примечание версии в разделе Используйте предварительно настроенные учетные данные OAuth.
Вы можете использовать --callback-port самостоятельно (с динамической регистрацией клиента) или вместе с --client-id (с предварительно настроенными учетными данными).
Используйте предварительно настроенные учетные данные OAuth
Некоторые MCP серверы не поддерживают автоматическую настройку OAuth через Dynamic Client Registration. Если вы видите ошибку типа “Incompatible auth server: does not support dynamic client registration,” сервер требует предварительно настроенные учетные данные. Claude Code также поддерживает серверы, которые используют Client ID Metadata Document (CIMD) вместо Dynamic Client Registration, и обнаруживает их автоматически. Если автоматическое обнаружение не удается, сначала зарегистрируйте приложение OAuth через портал разработчика сервера, затем предоставьте учетные данные при добавлении сервера.Зарегистрируйте приложение OAuth на сервере
http://localhost:PORT/callback с этим портом. Вы будете использовать тот же порт на следующем шаге.В v2.1.229 Claude Code отправлял http://127.0.0.1:PORT/callback вместо этого, и серверы, которые точно совпадают с зарегистрированным URI перенаправления, отклоняли вход с несоответствием URI перенаправления. Claude Code v2.1.231 восстановил форму localhost. Чтобы восстановиться на v2.1.229, обновите Claude Code или временно добавьте форму http://127.0.0.1:PORT/callback к зарегистрированным URI перенаправления сервера.Добавьте сервер с вашими учетными данными
claude mcp add принимает ваш ID клиента и порт обратного вызова как флаги, а claude mcp add-json принимает их в объекте oauth. Если вы зарегистрировали URI перенаправления, установите порт обратного вызова на порт в этом URI.- claude mcp add
- claude mcp add-json
- claude mcp add-json (только порт обратного вызова)
- CI / переменная окружения
--client-id для передачи ID клиента вашего приложения. Флаг --client-secret запрашивает секрет с замаскированным вводом:Аутентификация в Claude Code
/mcp в Claude Code и следуйте потоку входа браузера.Переопределите обнаружение метаданных OAuth
Укажите Claude Code на определенный URL метаданных сервера авторизации OAuth, чтобы обойти цепочку обнаружения по умолчанию. УстановитеauthServerMetadataUrl, когда стандартные конечные точки MCP сервера выдают ошибки, или когда вы хотите маршрутизировать обнаружение через внутренний прокси. По умолчанию Claude Code сначала проверяет RFC 9728 Protected Resource Metadata на /.well-known/oauth-protected-resource, затем возвращается к RFC 8414 authorization server metadata на /.well-known/oauth-authorization-server.
Установите authServerMetadataUrl в объекте oauth конфигурации вашего сервера в .mcp.json:
https://. scopes_supported URL метаданных переопределяет области, которые объявляет вышестоящий сервер.
Ограничьте области OAuth
Установитеoauth.scopes, чтобы зафиксировать области, которые Claude Code запрашивает во время потока авторизации. Это поддерживаемый способ ограничить MCP сервер подмножеством, одобренным командой безопасности, когда вышестоящий сервер авторизации объявляет больше областей, чем вы хотите предоставить. Значение — это одна строка с разделением пробелами, соответствующая формату параметра scope в RFC 6749 §3.3.
oauth.scopes имеет приоритет над authServerMetadataUrl и областями, которые сервер обнаруживает на /.well-known. Оставьте его неустановленным, чтобы позволить MCP серверу определить запрашиваемый набор областей.
Начиная с v2.1.196, когда oauth.scopes не установлен, Claude Code запрашивает область, предоставленную заголовком WWW-Authenticate сервера или его метаданными защищенного ресурса, и не отправляет параметр scope, когда ни один из них не предоставляет его. Он больше не запрашивает полный каталог scopes_supported из автоматически обнаруженных метаданных сервера авторизации. Запрос этого каталога заставлял поставщиков идентификации, которые объявляют области только для администраторов или шаблонов, отклонять запрос авторизации с ошибкой invalid_scope. Метаданные, полученные из настроенного authServerMetadataUrl, по-прежнему предоставляют свой scopes_supported как запрашиваемые области.
Если сервер авторизации объявляет offline_access в scopes_supported, Claude Code добавляет его к зафиксированным областям, чтобы токен доступа можно было обновить без нового входа в браузер.
Если сервер позже возвращает 403 insufficient_scope для вызова инструмента, вызов не удается с сообщением needs additional permissions, которое называет область, которую запрашивает сервер. Сервер показывается как требующий аутентификации в /mcp.
Если эта область не находится в вашем зафиксированном oauth.scopes, добавьте ее, затем запустите /mcp и аутентифицируйте сервер снова. Claude Code запрашивает зафиксированные области, а не область, которую назвал сервер, поэтому если вы аутентифицируетесь снова без добавления ее, токен, который вы получаете, по-прежнему ей не хватает.
Используйте динамические заголовки для пользовательской аутентификации
Если ваш MCP сервер использует схему аутентификации, отличную от OAuth, такую как Kerberos, краткосрочные токены или внутреннее SSO, используйтеheadersHelper для генерации заголовков запроса во время подключения. Claude Code запускает команду и объединяет ее вывод в заголовки соединения.
- Команда должна записать объект JSON пар строк ключ-значение в stdout
- Claude Code запускает команду в оболочке и отказывается от нее через 10 секунд
- Claude Code выбирает рабочий каталог команды по месту, где вы настроили сервер, поэтому дайте скрипт как абсолютный путь или поместите его на
PATH - Динамические заголовки переопределяют любые статические
headersс тем же именем
401 Unauthorized или 403 Forbidden, Claude Code автоматически повторно запускает помощника под тем же правилом, переподключается со свежими заголовками и повторяет вызов один раз. Claude Code помечает сервер как требующий аутентификации в /mcp только если этот повтор также не удается.
Когда вывод помощника включает заголовок Authorization, Claude Code использует это учетное данное как аутентификацию сервера и не возвращается к OAuth для сервера.
Если сервер отклоняет учетное данное помощника при подключении, Claude Code сообщает о неудачном соединении, а не помечает сервер как требующий аутентификации. Исправьте учетное данное, которое возвращает ваш помощник, затем переподключитесь из /mcp, чтобы повторно запустить помощника.
Claude Code устанавливает эти переменные окружения при выполнении помощника:
headersHelper не может ссылаться на значения ${user_config.*} плагина, потому что команда запускается через оболочку. Claude Code сообщает о неправильной конфигурации сервера с ошибкой и не подставляет значение. Поместите ${user_config.KEY} в поле headers сервера вместо этого, которое не анализируется оболочкой, или попросите скрипт помощника прочитать значение из файла конфигурации. До v2.1.207 headersHelper подставлял значения ${user_config.*}.
Где запускается помощник
Claude Code выбирает рабочий каталог командыheadersHelper из конфигурации, которая объявляет сервер. cd, который Claude запускает в Bash, не перемещает его, и /cd перемещает его только для серверов, которые запускаются из основного рабочего каталога сеанса. Каждая строка ниже дает каталог, в котором относительный путь в вашей команде headersHelper разрешается.
Какие переменные может читать помощник
headersHelper, который поставляет репозиторий или плагин, — это команда, которую вы не писали, поэтому Claude Code запускает ее без переменных учетных данных из вашей среды, таких как ANTHROPIC_API_KEY. Место, где вы настроили сервер, определяет, применяется ли это:
- Удалено: сервер в проекте
.mcp.jsonили в плагине, и встроенный сервер в файле агента из вашего проекта или из каталога--add-dir - Не удалено: сервер в области пользователя или локальной области, в управляемом MCP, из коннектора claude.ai, или предоставленный SDK или
--mcp-config, и встроенный сервер в файле агента из~/.claude/agents/, из управляемых параметров или переданный с--agents
GIT_CONFIG_KEY_<n> Git, Claude Code удаляет каждую переменную из вашей среды, чье имя выглядит как учетное данное, такое как имя с TOKEN, SECRET, PASSWORD, KEY или AUTH в нем в любом регистре, поэтому ANTHROPIC_API_KEY и MY_REGISTRY_TOKEN оба удаляются. Claude Code также удаляет фиксированный список переменных учетных данных, чьи имена не следуют этому шаблону, такие как ANTHROPIC_CUSTOM_HEADERS.
Когда это применяется к вашему помощнику, попросите скрипт прочитать его учетное данные из файла или хранилища учетных данных. Если URL сервера несет живое значение одной из этих переменных, такой как MY_REGISTRY_TOKEN, значение CLAUDE_CODE_MCP_SERVER_URL, которое получает помощник, имеет эту часть заменена на REDACTED также.
Доверьте папку перед запуском ее headersHelper
Claude Code выполняетheadersHelper как произвольную команду оболочки. Для сервера в проекте .mcp.json или в локальной области, он запускает помощника только после того, как вы примете диалог доверия для каталога проекта, в котором объявлен сервер. До v2.1.238 сеанс claude -p или SDK запускал этих помощников без проверки доверия, и интерактивный сеанс запускал их один раз, когда вы доверили родительской папке.
- Доверие, которое не считается: доверие родительской папки и автоматическое доверие, которое получает сеанс
claude -pили SDK для hooks в файлах параметров - Пока вы не доверите папке: Claude Code подключает сервер только с его статическими
headers. В сеансеclaude -pили SDK он также выводит одну строкуheadersHelper not runна stderr, сообщая вам, как предоставить доверие. - Доверие без диалога: установите
projects["<path>"].hasTrustDialogAcceptedнаtrueв~/.claude.json.<path>— это папка, на которой Project allow rules and workspace trust говорит Claude Code ключ доверия.
.claude/agents/, или каталог --add-dir. Пока вы не доверите этому проекту или каталогу самому, Claude Code не загружает сервер вообще, поэтому его помощник никогда не запускается либо.
Добавьте MCP servers из конфигурации JSON
Если у вас есть конфигурация JSON для MCP server, вы можете добавить ее напрямую:Добавьте MCP server из JSON
Проверьте, что server был добавлен
Импортируйте MCP servers из Claude Desktop
Если вы уже настроили MCP servers в Claude Desktop, вы можете их импортировать:Импортируйте servers из Claude Desktop
Выберите, какие servers импортировать
Проверьте, что servers были импортированы
claude mcp, могут содержать только буквы, цифры, дефисы и подчеркивания. Claude Desktop не применяет это ограничение, поэтому server Claude Desktop, имя которого содержит любой другой символ, например пробел, не может быть импортирован. Импорт сообщает о каждом отклоненном имени и все еще импортирует другие выбранные вами servers. До версии 2.1.205 первое недопустимое имя останавливало импорт и ни один из выбранных servers не был добавлен.
Использование MCP серверов из claude.ai
Если вы вошли в Claude Code с помощью учётной записи claude.ai, MCP серверы, которые вы добавили в claude.ai, известные как connectors, автоматически доступны в Claude Code:Настройте MCP серверы в claude.ai
Аутентифицируйте MCP сервер
Просмотрите и управляйте серверами в Claude Code
/mcp отображает claude.ai Claude Docs без настройки, и Claude использует его, когда вы просите документ, предназначенный для других людей. Чтобы отключить его, добавьте запись serverName со значением "claude.ai Claude Docs" в deniedMcpServers или используйте переключатель /mcp, оба описаны в разделе Отключение connectors claude.ai.
Claude Code помечает connector как managed в /mcp и в менеджере /plugin когда ваша организация управляет его аутентификацией в claude.ai. Статус managed не изменяет способ подключения Claude Code к connector или применение инструментов управления вашей организации.
Connectors, в которые вы никогда не входили, свёрнуты за строкой Show unused connectors в конце раздела claude.ai, поэтому список, предоставленный организацией, не заполняет панель. Выберите строку, чтобы развернуть их. Connector, в который вы входили ранее, остаётся видимым даже если в настоящий момент требуется повторная аутентификация.
Connectors из claude.ai загружаются только когда ваш активный метод аутентификации — это вход по подписке claude.ai. Они не загружаются, даже если вы ранее запустили /login, когда:
ANTHROPIC_API_KEY,ANTHROPIC_AUTH_TOKENилиapiKeyHelperактивны- Активен сторонний поставщик, такой как Amazon Bedrock или Agent Platform Google Cloud
ANTHROPIC_PROFILE, переменные федерации или активный профиль Anthropic предоставляют учётные данныеCLAUDE_CODE_OAUTH_TOKENсодержит токен изclaude setup-token, который может только делать запросы к модели
/mcp не отображает connector, который вы добавили, запустите /status, чтобы подтвердить, какой метод аутентификации активен. Отмените установку этой переменной окружения, удалите параметр apiKeyHelper или отключите профиль, затем запустите /login, чтобы выбрать вашу учётную запись claude.ai.
Если временная проблема с сетью препятствует загрузке списка connectors при запуске сеанса, Claude Code повторяет попытку загрузки до трёх раз в фоновом режиме, и connectors появляются после успешной повторной попытки. Если они всё ещё не появились, перезагрузите Claude Code, чтобы загрузить список снова.
Если /mcp показывает connector как connected · session token rejected или его подробное представление показывает claude.ai rejected the session token, claude.ai отклонил токен из вашего входа в Claude Code, обычно потому что вход истёк и не мог быть обновлён. Повторная авторизация connector не очищает это состояние, потому что собственная авторизация connector в claude.ai — это не то, что было отклонено. Чтобы очистить это:
- Запустите
/login, чтобы войти снова. - Переподключите connector из
/mcp.
/mcp отображает connector как скрытый и показывает, как удалить дубликат, если вы предпочитаете использовать connector.
Некоторые размещённые Anthropic connectors, такие как Microsoft 365, Gmail и Google Calendar, не поддерживают локальный OAuth из Claude Code, потому что вышестоящий поставщик идентификации принимает только URL перенаправления, зарегистрированный claude.ai. Когда сервер, который вы добавили с помощью claude mcp add или в .mcp.json, указывает на один из этих хостов и вы входите в него из /mcp или с помощью claude mcp login, Claude Code показывает is Anthropic-hosted and doesn't support local OAuth, направляя вас подключить сервис на claude.ai/customize/connectors вместо этого.
После удаления вашей записи с помощью claude mcp remove <name> и подключения сервиса на claude.ai, connector появляется в Claude Code автоматически.
Как connectors достигают Claude Code
Какие параметры управляют connector из claude.ai, зависит от того, где работает ваш сеанс, потому что только некоторые сеансы сами загружают connectors из claude.ai. Каждая строка ниже указывает, как connectors поступают в один вид сеанса и что ими управляет там. WSL сеансы настольного приложения не имеют строки, потому что connectors в них пока недоступны.disableClaudeAiConnectors, ENABLE_CLAUDEAI_MCP_SERVERS и allowAllClaudeAiMcps действуют только на первую строку, connectors, которые Claude Code загружает сам. Две другие строки отличаются от неё следующим образом:
- Облачные сеансы: записи
allowedMcpServersиdeniedMcpServers, которые достигают сеанса, например через параметры, управляемые сервером, также фильтруют доставленные connectors. Прокси сеанса переписывает URL каждого connector, поэтому шаблонserverUrl, написанный для собственного URL connector, не совпадает с ним. Чтобы допустить доставленные connectors наряду со списком разрешений URL в самостоятельной среде, добавьте записиserverUrl, указанные в разделе Трафик Connector покидает вашу сеть. Claude Code отбрасывает доставленные connectors, когда на хосте, который запускает сеанс, присутствуетmanaged-mcp.json, например хост самостоятельного runner, независимо от того, установили ли выallowAllClaudeAiMcps. - Локальные и SSH сеансы настольного приложения: настольное приложение регистрирует connectors как внутрипроцессные серверы
type: "sdk", и никакой параметр MCP илиmanaged-mcp.jsonне достигает их. Пользователь держит connector вне своих собственных сеансов, отключив его на claude.ai/customize/connectors. Организация блокирует инструменты connector или полностью отключает Claude Code в настольном приложении.
Элементы управления организацией для инструментов connector
Ваша организация может установить элементы управления для каждого инструмента на connectors claude.ai. Claude Code читает эти параметры при запуске и применяет их локально, кроме как в локальных и SSH сеансах настольного приложения. Там настольное приложение скрывает инструментыblocked перед доставкой connector, и параметр ask не достигает Claude Code, поэтому он применяет обычные правила разрешений сеанса к этим инструментам вместо запроса при каждом вызове. В сеансах, где Claude Code загружает connectors сам, запустите /mcp, чтобы увидеть, какой параметр применяется к каждому инструменту на connector.
- Инструмент установлен на
ask: Claude Code запрашивает при каждом вызове с причинойYour organization requires approval for this tool. Запрос появляется даже в режимах разрешенийacceptEdits,autoиbypassPermissionspermission modes, и никогда не предлагает опцию запомнить ваш выбор. Правила разрешений, которые совпадают с инструментом, также не пропускают запрос. В режимеdontAsk, который никогда не запрашивает, Claude Code отклоняет вызов вместо этого. - Инструмент установлен на
blocked: Claude Code фильтрует инструмент перед тем, как Claude его видит, поэтому он никогда не появляется в списке инструментов. Настольное приложение и чат claude.ai применяют тот же параметрblocked, поэтому Claude не может использовать инструмент там либо, и вы не можете скрыть инструмент из сеансов настольного приложения, сохраняя его доступным в чате. Настольное приложение пропускает connector, все инструменты которого заблокированы.
Отключение connectors claude.ai
Claude Code применяетdisableClaudeAiConnectors только к connectors, которые он загружает сам, а не к connectors, которые доставляет облачный хост или настольное приложение. Чтобы отключить connectors, которые он загружает, установите параметр на true в любой области параметров:
true в любом источнике параметров имеет приоритет. Проверенный в репозитории .claude/settings.json проекта может отключить connectors, которые Claude Code загружает сам, но уровень проекта false не может повторно включить connectors, которые уровень пользователя или политики true отключил. Серверы, переданные явно через --mcp-config, не затронуты.
Вы также можете установить переменную окружения ENABLE_CLAUDEAI_MCP_SERVERS на false, что имеет тот же эффект для текущего сеанса оболочки:
deniedMcpServers по имени или по шаблону URL. Например, запись serverName из "claude.ai Slack" блокирует connector Slack. Вы также можете запустить /mcp, чтобы переключить любой connector, который Claude Code загружает, включить или отключить только для текущего проекта.
Использование Claude Code в качестве MCP сервера
Вы можете использовать Claude Code в качестве MCP сервера, к которому могут подключаться другие приложения:Ограничения и предупреждения выходных данных MCP
Когда инструменты MCP производят большие объемы выходных данных, Claude Code помогает управлять использованием токенов, чтобы не перегружать контекст вашего разговора:- Порог предупреждения выходных данных: Claude Code отображает предупреждение, когда выходные данные любого инструмента MCP превышают 10 000 токенов
- Настраиваемый лимит: вы можете отрегулировать максимально допустимое количество токенов выходных данных MCP, используя переменную окружения
MAX_MCP_OUTPUT_TOKENS - Лимит по умолчанию: максимум по умолчанию составляет 25 000 токенов
- Область действия: переменная окружения применяется к инструментам, которые не объявляют свой собственный лимит. Инструменты, которые устанавливают
anthropic/maxResultSizeChars, используют это значение вместо этого для текстового содержимого, независимо от того, какое значение установлено дляMAX_MCP_OUTPUT_TOKENS. Инструменты, которые возвращают данные изображений, по-прежнему подчиняютсяMAX_MCP_OUTPUT_TOKENS - Превышение лимита: когда результат без содержимого изображения превышает лимит, Claude Code сохраняет его в файл и заменяет его в разговоре сообщением, которое указывает путь к файлу, чтобы Claude прочитал файл, когда ему нужно содержимое. Файл находится в директории
tool-resultsсеанса в~/.claude/projects/.
Повысить лимит для конкретного инструмента
Если вы создаете сервер MCP, вы можете разрешить отдельным инструментам возвращать результаты, превышающие порог сохранения на диск по умолчанию, установив_meta["anthropic/maxResultSizeChars"] в записи ответа tools/list инструмента. Claude Code повышает порог этого инструмента до аннотированного значения, вплоть до жесткого потолка в 500 000 символов.
Это полезно для инструментов, которые возвращают по своей природе большие, но необходимые выходные данные, такие как схемы баз данных или полные деревья файлов. Без аннотации результаты, превышающие порог по умолчанию, сохраняются на диск и заменяются ссылкой на файл в разговоре.
MAX_MCP_OUTPUT_TOKENS для текстового содержимого, поэтому пользователям не нужно повышать переменную окружения для инструментов, которые ее объявляют. Инструменты, которые возвращают данные изображений, по-прежнему подчиняются лимиту токенов.
Изображения в результатах инструментов
Когда инструмент MCP возвращает изображение PNG, JPEG, GIF или WebP, Claude видит изображение встроенным в разговор. Встроенная копия может быть уменьшена или сжата, чтобы соответствовать ограничениям размера изображения модели. Claude Code также сохраняет исходные байты в файл в директорииtool-results сеанса в ~/.claude/projects/ и предоставляет Claude путь к файлу. Claude затем может обрезать, конвертировать или повторно использовать полнофункциональный файл с помощью инструментов, таких как Bash.
Если вы отключите сохранение сеанса с помощью --no-session-persistence или CLAUDE_CODE_SKIP_PROMPT_HISTORY, Claude Code не будет записывать файл изображения, и Claude получит только встроенную копию.
Сохранение результатов изображений MCP в файл требует Claude Code версии 2.1.283 или более поздней.
Схемы входных данных инструментов с комбинатором корневого уровня
Некоторые серверы MCP объявляют схему входных данных инструмента как объединение JSON Schema сanyOf, oneOf или allOf на верхнем уровне схемы. Claude API не принимает эти ключевые слова в корне схемы. Он принимает комбинаторы, вложенные в properties, которые Claude Code отправляет без изменений.
Инструменты с комбинатором корневого уровня остаются доступными. Перед отправкой инструмента в API, Claude Code преобразует схему в один объект и добавляет предложение к описанию инструмента, которое указывает Claude, какие группы параметров принадлежат друг другу:
allOf: свойства из каждой ветви объединяются, и списокrequiredкаждой ветви по-прежнему применяетсяanyOfиoneOf: свойства из каждой ветви объединяются, и списокrequiredкаждой ветви описывается в описании инструмента вместо того, чтобы быть принудительно применяемым схемой
anyOf, oneOf или allOf.
Инструменты с недействительными схемами входных данных
Claude API проверяет схему входных данных каждого инструмента в запросе и отклоняет весь запрос, когда любая схема не проходит проверку, поэтому один инструмент MCP с неправильной схемой приведет к тому, что каждый запрос, который его включает, завершится ошибкой 400. Claude Code запускает две проверки API самостоятельно при загрузке инструментов сервера и исключает каждый инструмент, который не пройдет их, поэтому другие инструменты сервера продолжают работать:- Имена свойств верхнего уровня должны быть длиной от 1 до 64 символов и использовать только буквы и цифры ASCII,
_,.и- - Схема должна быть действительной в соответствии с метасхемой JSON Schema draft 2020-12. Claude Code применяет эту проверку к схемам, которые не объявляют
$schema, и к схемам, которые объявляют draft 2020-12. Схема, которая объявляет любой другой диалект, пропускает эту проверку, хотя проверка имен свойств выше все еще применяется
Требование одобрения для конкретного инструмента
Если вы создаёте MCP сервер, вы можете отметить инструмент как требующий явного одобрения при каждом вызове, установив_meta["anthropic/requiresUserInteraction"] в значение true в записи инструмента в ответе tools/list. Значение должно быть логическим значением JSON true; любое другое значение игнорируется.
Claude Code показывает запрос разрешения этого инструмента при каждом вызове, даже в режимах разрешений acceptEdits, auto и bypassPermissions режимы разрешений, и не предлагает опцию “не спрашивать снова” для него. Правила разрешения, которые соответствуют инструменту, также не пропускают запрос. В режиме dontAsk, который никогда не запрашивает, Claude Code отклоняет вызов вместо этого.
Запрос должен достичь человека. В неинтерактивном режиме с --permission-prompt-tool, результат allow из инструмента запроса разрешения для отмеченного инструмента преобразуется в отклонение с сообщением MCP tool requires user interaction; not supported via --permission-prompt-tool. Обратный вызов canUseTool Agent SDK получает эти вызовы и может их одобрить, потому что ваше приложение SDK должно показывать их пользователю.
Используйте это для инструментов, чей запрос разрешения сам по себе является целью, например шаг согласия или предоставления доступа, где автоматическое одобрение означало бы, что ни один человек никогда не согласился. Другие инструменты с того же сервера сохраняют своё обычное поведение разрешений.
Следующая запись tools/list отмечает один инструмент как всегда требующий одобрения.
anthropic/requiresUserInteraction требует Claude Code v2.1.199 или более поздней версии. Более ранние версии игнорируют её и применяют стандартный поток разрешений.
Некоторые поверхности, такие как Remote Control и приложения, созданные на основе Agent SDK, обычно позволяют вам одобрять вызовы инструментов одним касанием. Для инструмента, отмеченного этой аннотацией, Claude Code скрывает действие одного касания и вместо этого показывает полный запрос разрешения инструмента, поэтому одобрение по-прежнему исходит от человека, отвечающего на запрос, а не от касания.
Claude Code скрывает одобрение одним касанием таким же образом для любого запроса разрешения, который только диалог терминала может полностью отобразить, например того, который содержит предупреждение безопасности или опцию всегда разрешить, которую удалённая поверхность не может показать. Вы отвечаете на этот запрос в диалоге терминала, а не из Remote Control. Требует Claude Code v2.1.214 или более поздней версии.
Ответ на запросы elicitation MCP
MCP серверы могут запрашивать у вас структурированный ввод во время выполнения задачи, используя elicitation. Когда серверу требуется информация, которую он не может получить самостоятельно, Claude Code отображает интерактивный диалог и передает ваш ответ обратно серверу. С вашей стороны не требуется никакой конфигурации: диалоги elicitation появляются автоматически, когда сервер их запрашивает. Серверы могут запрашивать ввод двумя способами:- Режим формы: Claude Code показывает диалог с полями формы, определенными сервером (например, запрос имени пользователя и пароля). Заполните поля и отправьте.
- Режим URL: Claude Code спрашивает, открыть ли ссылку в вашем браузере, и открывает её при вашем согласии. Серверы используют этот режим для потока, который завершается вне терминала, например для входа в систему.
% или &, считается четыре раза в сторону ограничения: сам символ плюс три символа экранирования. URL без них достигает ограничения примерно на 8000 символов. URL, построенный в основном из процентных экранирований, где каждый третий символ — это %, достигает его примерно на 4000.
Для автоматического ответа на запросы elicitation без отображения диалога используйте hook Elicitation.
Если вы создаете MCP сервер, который использует elicitation, см. спецификацию MCP elicitation для деталей протокола и примеров схемы.
На соединениях, которые используют revision протокола 2026-07-28, Claude Code объявляет elicitation: {form: {}, url: {}} в своих возможностях клиента, поэтому сервер там может запросить любой режим через стандартный запрос elicitation протокола.
Использование ресурсов MCP
Серверы MCP могут предоставлять ресурсы, на которые вы можете ссылаться с помощью упоминаний @, аналогично тому, как вы ссылаетесь на файлы.Ссылка на ресурсы MCP
Список доступных ресурсов
@ в вашу подсказку, чтобы увидеть доступные ресурсы со всех подключённых серверов MCP. Ресурсы отображаются рядом с файлами в меню автодополнения.Ссылка на конкретный ресурс
@server:protocol://resource/path для ссылки на ресурс:Несколько ссылок на ресурсы
ui:// или типом мультимедиа text/html;profile=mcp-app: страницы для отображения хост-приложением, а не контент для чтения Claude. Они не отображаются в предложениях @ или в результатах инструмента списка ресурсов, и сервер, предлагающий только ресурсы UI, показывает пустой список ресурсов. Чтение ресурса UI по его URI по-прежнему работает.
Масштабирование с помощью поиска инструментов MCP
Поиск инструментов снижает использование контекста MCP, отложив определения инструментов до момента, когда они понадобятся Claude. При запуске сеанса загружаются только имена инструментов и инструкции сервера, поэтому добавление дополнительных серверов MCP имеет минимальное влияние на окно контекста. Claude Code не устанавливает фиксированный лимит инструментов на сервер; практический лимит определяется бюджетом окна контекста.ENABLE_TOOL_SEARCH не может переопределить это, так как отклонение исходит от самого развертывания.Для авторов серверов MCP
Если вы создаете сервер MCP, поле инструкций сервера становится более полезным при включенном поиске инструментов. Инструкции сервера помогают Claude понять, когда следует искать ваши инструменты, аналогично тому, как работают skills. Добавьте четкие, описательные инструкции сервера, которые объясняют:- Какую категорию задач обрабатывают ваши инструменты
- Когда Claude должен искать ваши инструменты
- Ключевые возможности, которые предоставляет ваш сервер
CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH на количество символов. Эта переменная требует Claude Code v2.1.280 или позже.
Настройка поиска инструментов
Поиск инструментов включен по умолчанию: инструменты MCP отложены и обнаруживаются по требованию. Claude Code отключает его, когдаANTHROPIC_BASE_URL указывает на хост, не принадлежащий первой стороне, так как большинство прокси не пересылают блоки tool_reference. Установите ENABLE_TOOL_SEARCH явно, чтобы переопределить этот резервный вариант.
Установка CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS отключает поиск инструментов. Вы не можете переопределить это, установив ENABLE_TOOL_SEARCH самостоятельно. Ваша организация может оставить поиск инструментов включенным через управляемые параметры, на Claude Code v2.1.227 или позже. Отключение предварительных возможностей охватывает, где применяется переопределение и что переменная удаляет.
Поиск инструментов требует модель, которая поддерживает блоки tool_reference: Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.5 и более поздние модели. См. совместимость моделей в документации API для получения текущего списка.
На Agent Platform Google Cloud, Claude Code решает по поколению модели:
- Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 и позже: поиск инструментов включен по умолчанию, как и на API Anthropic.
- Более ранние модели Agent Platform: Claude Code загружает все инструменты MCP заранее, потому что их стеки обслуживания отклоняют требуемый заголовок бета-версии.
ENABLE_TOOL_SEARCH=trueне переопределяет это.
ENABLE_TOOL_SEARCH=true.
Управляйте поведением поиска инструментов с помощью переменной окружения ENABLE_TOOL_SEARCH:
env.
Вы также можете отключить инструмент ToolSearch специально:
Исключение сервера из отложения
Если инструменты сервера всегда должны быть видны Claude без этапа поиска, установитеalwaysLoad в значение true в конфигурации этого сервера. Каждый инструмент с этого сервера затем загружается в контекст при запуске сеанса независимо от параметра ENABLE_TOOL_SEARCH. Используйте это для небольшого количества инструментов, которые Claude нужны на каждом ходу, так как каждый заранее загруженный инструмент потребляет контекст, который иначе был бы доступен для вашего разговора.
Следующая запись .mcp.json исключает один HTTP-сервер, оставляя другие серверы отложенными:
alwaysLoad доступно на всех типах серверов. Сервер MCP также может отметить отдельные инструменты как всегда загружаемые, включив "anthropic/alwaysLoad": true в объект _meta инструмента, что имеет тот же эффект только для этого инструмента.
Установка alwaysLoad: true также заставляет запуск ждать инструментов сервера, ограниченных стандартным тайм-аутом подключения в 5 секунд, так как они должны присутствовать при построении первого запроса. Удаленный сервер с действительной записью cached предоставляет свои инструменты из кэша без подключения, поэтому он не задерживает запуск. Другие серверы подключаются в фоновом режиме по умолчанию; установите MCP_CONNECTION_NONBLOCKING=0, чтобы запуск ждал и их тоже.
Использование MCP prompts как команд
MCP серверы могут предоставлять prompts, которые становятся доступными как команды в Claude Code. Prompts с сервера с именемanthropic-skills не отображаются, потому что Claude Code зарезервировал это имя для skills, синхронизированных с claude.ai. Инструменты сервера по-прежнему работают. Переименуйте сервер в конфигурации MCP, чтобы отобразить его prompts.
Выполнение MCP prompts
Обнаружение доступных prompts
/ чтобы увидеть доступные вам команды, включая те, которые поступают с MCP серверов. Claude Code отображает каждый MCP prompt как /servername:promptname (MCP). Ввод /mcp__servername__promptname также запускает его.Выполнение prompt без аргументов
Выполнение prompt с аргументами
Управляемая конфигурация MCP
Для организаций, которым требуется централизованный контроль над тем, какие серверы MCP могут подключать пользователи, см. Управляемая конфигурация MCP. В ней описывается развертывание фиксированного набора серверов с помощьюmanaged-mcp.json, предоставление серверов каждому пользователю с помощью managedMcpServers, ограничение серверов с помощью allowedMcpServers и deniedMcpServers, а также то, что видят пользователи, когда сервер заблокирован.