SpyBara
Go Premium

mcp.md 2026-10-01 23:59 UTC to 2026-10-02 13:00 UTC

This page contains 175 additions and 167 deletions.

2026
Thu 1 23:59 Fri 2 13:00

Подключите Claude Code к инструментам через MCP

Узнайте, как подключить Claude Code к вашим инструментам с помощью Model Context Protocol.

Claude Code может подключаться к сотням внешних инструментов и источников данных через Model Context Protocol (MCP), открытый стандарт для интеграции AI с инструментами. MCP servers предоставляют Claude Code доступ к вашим инструментам, базам данных и API.

Подключите server, когда вы обнаружите, что копируете данные в чат из другого инструмента, например из трекера проблем или панели мониторинга. После подключения Claude может читать и действовать на этой системе напрямую вместо работы с тем, что вы вставляете.

Если вы подключаете свой первый server, начните с MCP quickstart для пошагового руководства. Эта страница является полным справочником.

Что вы можете делать с 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.

1

Установите плагин

В расширении VS Code или настольном приложении вместо этого шага следуйте инструкциям из раздела Установка плагина. В терминале запустите Claude Code командой claude, затем введите в промпт:

/plugin install mcp-server-dev@claude-plugins-official

Если установка не удается, сопоставьте сообщение, которое сообщает Claude Code:

  • 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.

2

Запустите skill сборки

/mcp-server-dev:build-mcp-server

Claude спросит о вашем варианте использования и создаст удаленный HTTP или локальный stdio server.

Установка MCP-серверов

MCP-серверы можно настроить несколькими способами в зависимости от ваших потребностей:

Вариант 1: Добавление удалённого HTTP-сервера

HTTP-серверы — рекомендуемый вариант для подключения к удалённым MCP-серверам. Это наиболее широко поддерживаемый транспорт для облачных сервисов.

# Базовый синтаксис
claude mcp add --transport http <name> <url>

# Реальный пример: подключение к Notion
claude mcp add --transport http notion https://mcp.notion.com/mcp

# Пример с Bearer-токеном
claude mcp add --transport http secure-api https://api.example.com/mcp \
  --header "Authorization: Bearer your-token"

При настройке MCP-серверов через JSON в .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:

# Базовый синтаксис
claude mcp add --transport sse <name> <url>

# Реальный пример: подключение к Asana
claude mcp add --transport sse asana https://mcp.asana.com/sse

# Пример с заголовком аутентификации
claude mcp add --transport sse private-api https://api.company.com/sse \
  --header "X-API-Key: your-key-here"

Вариант 3: Добавление локального stdio-сервера

Stdio-серверы работают как локальные процессы на вашей машине. Они идеально подходят для инструментов, которым нужен прямой доступ к системе, или для пользовательских скриптов.

Claude Code устанавливает в окружении запускаемого сервера переменную CLAUDE_PROJECT_DIR, указывающую на корень проекта, поэтому ваш сервер может разрешать пути относительно проекта, не завися от рабочего каталога. Это тот же каталог, который хуки получают в своей переменной 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} напрямую и не нуждаются в значении по умолчанию.

# Базовый синтаксис
claude mcp add [options] <name> -- <command> [args...]

# Реальный пример: добавление сервера Airtable
claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
  -- npx -y airtable-mcp-server

Вариант 4: Добавление удалённого WebSocket-сервера

WebSocket-серверы поддерживают постоянное двунаправленное соединение, что подходит для удалённых MCP-серверов, которые отправляют Claude события по собственной инициативе. Используйте вместо этого HTTP, если ваш сервер только отвечает на запросы, так как HTTP поддерживает OAuth и флаг claude mcp add --transport, а WebSocket не поддерживает ни то, ни другое.

Настраивайте WebSocket-серверы в .mcp.json или с помощью claude mcp add-json:

claude mcp add-json events-server \
  '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'

Запись 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: конфигурация, написанная для файла настроек другого клиента.

Каждый из них — один из входных данных, которые принимают четыре варианта из раздела Установка MCP-серверов. Найдите ниже свой случай, чтобы превратить его в команду, которую принимает Claude Code. Каждая команда записывает конфигурацию в локальную область действия, если вы не добавите --scope project или --scope user.

Из URL

URL означает, что сервер удалённый. Для эндпоинта https:// добавьте его с --transport http или следуйте Варианту 2, если в инструкциях сказано, что эндпоинт использует SSE. Для эндпоинта wss:// используйте вместо этого Вариант 4, так как --transport не принимает ws:

claude mcp add --transport http example https://mcp.example.com/mcp

Если в инструкциях также указан API-ключ или заголовок с токеном, передайте его с --header, как показано в Варианте 1.

Из команды `npx`, `uvx` или двоичного файла

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

claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server

Вариант 3 подробно описывает разделитель --.

Из блока 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 не работает.
  • Ключ с символами, отличными от букв, цифр, дефисов и подчёркиваний: выберите имя сервера, в котором используются только эти символы. В остальных случаях ключ и есть имя сервера.

Например, этот блок:

{
  "mcpServers": {
    "example": {
      "command": "npx",
      "args": ["-y", "@example/mcp-server"]
    }
  }
}

превращается в эту команду:

claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'

Раздел Добавление MCP-серверов из конфигурации JSON описывает экранирование в оболочке и флаг --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 list

# Получить сведения о конкретном сервере
claude mcp get notion

# Удалить сервер
claude mcp remove notion

# (внутри Claude Code) Проверить статус сервера
/mcp

Когда вы удаляете удалённый сервер, Claude Code также удаляет токены OAuth и регистрацию клиента, которые он хранил для этого сервера.

Статус сервера

claude mcp add подтверждает успешное добавление, выводя строку Added ..., что означает, что конфигурация записана. Если вместо этого команда выводит сообщение was not saved, см. MCP server was not saved or removed; для сообщения may not have been saved см. MCP server may not have been saved or removed.

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.

WebSocket-серверы не отображаются в выводе 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 Code также применяет одобрения из неотслеживаемого .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 сервера, который может содержать секреты. К статусу ✘ Connection error Claude Code подробности не добавляет, потому что текст исключения, который он вывел бы там, может содержать этот URL. До версии v2.1.219 обе команды показывали только сам статус сбоя, без кода статуса и текста ошибки сервера.

Когда вы завершаете аутентификацию из /mcp, а подключение по-прежнему не удаётся с HTTP-статусом или кодом ошибки транспорта, Claude Code добавляет этот код и origin URL сервера в сообщение, которое выводит после попытки. Origin — это схема и хост, плюс порт, если он указан в URL, например https://mcp.example.com.

  • Путь и строка запроса никогда не появляются в этом сообщении.
  • Для сервера в локальной, проектной или пользовательской области действия или в управляемой конфигурации MCP origin показывает хост в том виде, в каком он записан в этой конфигурации, поэтому ссылка ${VAR} в хосте в сообщении не раскрывается.
  • Для сбоя без статуса или кода ошибки Claude Code показывает текст ошибки без origin.

Удалённый сервер, в конфигурации которого указан пустой 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.
  • Отсутствующая переменная окружения: если ссылка ${VAR} в конфигурации сервера указывает на переменную, которая не установлена и не имеет :-default, Claude Code выводит предупреждение в claude mcp list и в /mcp, называя переменную, и всё равно загружает сервер с нераскрытым текстом ${VAR}. Установите переменную или добавьте резервный вариант ${VAR:-default}. В url и headers удалённого сервера некоторые переменные учётных данных вместо этого читаются как пустые, без предупреждения.

Доступность инструментов

Панель /mcp показывает количество инструментов рядом с каждым подключённым сервером и помечает серверы, которые объявляют возможность tools, но не предоставляют ни одного инструмента.

Если для вашего запроса нужны инструменты сервера, который всё ещё подключается в фоне, 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.

При включённом поиске инструментов, когда сервер завершает подключение, пока Claude работает, Claude Code сообщает Claude имена инструментов сервера при его следующем запросе в том же ходе. Затем 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 подключается к серверу, отключённому по умолчанию, только если вы укажете его здесь.

Для каждого сервера 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 on AWS, Agent Platform от Google Cloud или Microsoft Foundry, если платформа-хост, встраивающая Claude Code, не устанавливает CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST
  • Сессии с входом через шлюз приложений Claude
  • Сессии, в которых вы отключаете телеметрию или получение флагов функций, например с помощью DISABLE_TELEMETRY

В v2 Claude Code также:

  • Спрашивает HTTP-серверы, поддерживают ли они более новую ревизию, и использует её с теми, которые поддерживают. Он также спрашивает серверы коннекторов claude.ai в сессиях, где получает флаги функций. Чтобы он спрашивал stdio-серверы или серверы коннекторов в каждой сессии, установите MCP_PROTOCOL_NEGOTIATION в auto. Ко всем остальным серверам он подключается так же, как v1.
  • Получает уведомления list_changed от серверов на более новой ревизии через поток, который держит открытым.
  • Не регистрирует сервер канала, который подключается на более новой ревизии, потому что эта ревизия не может передавать сообщения канала.
  • Прерывает вход через MCP OAuth, если ответ авторизации указывает неожиданного издателя.
  • Отправляет учётные данные MCP OAuth только на эндпоинт токена, обслуживаемый по HTTPS или на localhost, 127.0.0.1 или ::1. Вход не удаётся для сервера, эндпоинт токена которого — простой http:// в любом другом месте, например на устройстве в вашей локальной сети. См. Refusing to send credentials to non-https token endpoint.

Anthropic может оставить конкретный сервер на более раннем протоколе или без этого потока с помощью флага функции, который получает Claude Code.

Чтобы выбрать среду выполнения самостоятельно, установите MCP_SDK_GENERATION в v1 или v2. Чтобы определить, будет ли Claude Code спрашивать, установите MCP_PROTOCOL_NEGOTIATION в auto или legacy.

Динамическое обновление инструментов

Claude Code поддерживает уведомления MCP list_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 не повторяет попытку в следующих случаях:

  • Первое подключение WebSocket-сервера
  • Ошибка аутентификации или «не найдено», потому что для её устранения требуется изменить конфигурацию. Когда headersHelper — единственный источник заголовка Authorization для сервера, Claude Code всё равно повторяет попытку при ошибке аутентификации, потому что перезапускает helper при каждой попытке и может получить свежие учётные данные

Неудачные запросы обнаружения

После подключения сервера Claude Code отправляет ему запросы обнаружения возможностей, такие как tools/list, prompts/list и resources/list. Claude Code повторяет эти запросы до трёх раз с короткой задержкой после временной сетевой или серверной ошибки. Он не повторяет попытки при ошибках аутентификации, ответах 4xx или таймаутах запросов.

Самостоятельная повторная попытка для сбойных серверов

Чтобы повторить попытку для каждого сервера, у которого произошёл сбой или который требует аутентификации, выполните /mcp reconnect all. В интерактивном терминале для этого требуется Claude Code v2.1.284 или новее; более ранние версии выводят там MCP server "all" not found.

Как 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-серверы останутся на более раннем рукопожатии.

timeout отдельного сервера — это жёсткий лимит реального времени на каждый вызов инструмента, и уведомления о прогрессе от сервера его не продлевают. Значения меньше 1000 игнорируются, и используется MCP_TOOL_TIMEOUT или его значение по умолчанию около 28 часов, если эта переменная не установлена. Для HTTP-, SSE-сервера или сервера коннектора claude.ai также есть второй таймер на каждый запрос, который охватывает каждый запрос вплоть до первого байта ответа сервера. Claude Code устанавливает этот таймер в наибольшее из трёх значений: 60 секунд, таймаут инструментов, применяемый к серверу, и MCP_TIMEOUT. Значение по умолчанию 28 часов для неустановленного MCP_TOOL_TIMEOUT в этом сравнении не участвует, а значение меньше 60 секунд не сокращает таймер. У stdio- и WebSocket-серверов нет таймера на каждый запрос.

timeout отдельного сервера не менее 1000 также служит нижней границей для описанного ниже таймаута бездействия: Claude Code никогда не прерывает вызовы инструментов этого сервера из-за бездействия раньше, чем истечёт timeout этого сервера. Требуется 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, где вы также можете её остановить, и она не сохраняется после выхода из сессии. В записи задачи отображается последний прогресс, о котором сообщил сервер.

Ограничения на каждый вызов продолжают действовать, пока вызов выполняется в фоне: лимит реального времени, заданный timeout отдельного сервера или 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, так как однократный запуск может завершиться до получения результата

Вызов, ожидающий открытого диалогового окна elicitation, не переводится в фон, пока окно открыто; сервер ждёт вашего ввода, а не работает медленно, поэтому Claude Code откладывает перевод до закрытия диалогового окна.

MCP-серверы, предоставляемые плагинами

Плагины могут включать MCP-серверы, которые предоставляют инструменты и интеграции при включении плагина. MCP-серверы плагинов работают так же, как серверы, настроенные пользователем.

Как работают MCP-серверы плагинов:

  • Плагины определяют MCP-серверы в .mcp.json в корне плагина или встроенно в plugin.json
  • Когда вы включаете плагин, Claude Code автоматически запускает его MCP-серверы
  • Claude Code предлагает инструменты MCP плагинов наряду с вручную настроенными инструментами MCP
  • Вы добавляете и удаляете серверы плагинов, устанавливая или удаляя плагин, а не с помощью команд /mcp. Вы по-прежнему можете выключить сервер установленного плагина в /mcp, после чего Claude Code перестанет к нему подключаться без удаления плагина

Пример конфигурации MCP плагина:

В .mcp.json в корне плагина:

{
  "mcpServers": {
    "database-tools": {
      "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
      "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
      "env": {
        "DB_URL": "${DB_URL}"
      }
    }
  }
}

Или встроенно в plugin.json:

{
  "name": "my-plugin",
  "mcpServers": {
    "plugin-api": {
      "command": "${CLAUDE_PLUGIN_ROOT}/servers/api-server",
      "args": ["--port", "8080"]
    }
  }
}

Возможности MCP плагинов:

  • Автоматический жизненный цикл: серверы подключаются и отключаются в следующие моменты:
    • При запуске сессии 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_PLUGIN_ROOT} разрешается в каталог установки плагина, ${CLAUDE_PLUGIN_DATA} — в каталог его постоянного состояния, а ${CLAUDE_PROJECT_DIR} — в стабильный корень проекта. Подстановка применяется к:
    • серверам stdio: command, args, env
    • серверам http, sse и ws: url, headers и headersHelper
  • Доступ к пользовательскому окружению: доступ к тем же переменным окружения, что и у вручную настроенных серверов
  • Несколько типов транспорта: поддержка транспортов stdio, SSE, HTTP и WebSocket, хотя поддержка транспортов может различаться в зависимости от сервера

Серверы плагинов отображаются в /mcp с индикаторами, показывающими, что они получены из плагинов.

Для stdio-сервера плагина claude mcp get выводит Command: stdio, пустую строку Args: и каждую переменную окружения в виде NAME=[REDACTED]. Значения скрыты, потому что они могут содержать учётные данные.

Имена инструментов MCP плагинов:

Инструменты MCP-сервера, входящего в состав плагина, содержат в своём вызываемом имени и имя плагина, и ключ сервера. Полная форма — mcp__plugin_<plugin-name>_<server-name>__<tool-name>, где любой символ вне A-Z, a-z, 0-9, _ и - заменяется на _. Для сервера database-tools из плагина с именем my-plugin инструмент query вызывается как:

mcp__plugin_my-plugin_database-tools__query

Используйте это полное имя при указании инструмента в правилах разрешений, списке allowed-tools скилла, поле tools субагента или matcher хука. Matcher хука, написанный для голого ключа сервера, например mcp__database-tools__.*, никогда не срабатывает для сервера, входящего в состав плагина.

Сам сервер регистрируется под именем с областью действия plugin:<plugin-name>:<server-name>, например plugin:my-plugin:database-tools. Используйте это имя там, где ожидается имя настроенного сервера, например в поле server хука mcp_tool.

Подробнее о включении MCP-серверов в плагины см. в справочнике по компонентам плагинов.

Области установки MCP

MCP servers можно настроить на трех различных уровнях области. Область, которую вы выбираете, контролирует, в каких проектах загружается server и является ли конфигурация общей с вашей командой. Администраторы также могут развертывать или предоставлять servers для каждого пользователя через управляемую конфигурацию.

Область Загружается в Общий доступ с командой Хранится в
Локальная Только текущий проект Нет ~/.claude.json
Проект Только текущий проект Да, через контроль версий .mcp.json в корне проекта
Пользователь Все ваши проекты Нет ~/.claude.json

Локальная область

Локальная область — это область по умолчанию. Server с локальной областью загружается только в проекте, где вы его добавили, и остается приватным для вас. Claude Code хранит его в ~/.claude.json в пути вашего проекта, поэтому один и тот же server не будет отображаться в ваших других проектах. Используйте локальную область для личных development servers, экспериментальных конфигураций или servers с учетными данными, которые вы не хотите в контроле версий.

# Добавить server с локальной областью (по умолчанию)
claude mcp add --transport http stripe https://mcp.stripe.com

# Явно указать локальную область
claude mcp add --transport http stripe --scope local https://mcp.stripe.com

Команда записывает server в запись для вашего текущего проекта внутри ~/.claude.json. Пример ниже показывает результат при запуске из /path/to/your/project:

{
  "projects": {
    "/path/to/your/project": {
      "mcpServers": {
        "stripe": {
          "type": "http",
          "url": "https://mcp.stripe.com"
        }
      }
    }
  }
}

Область проекта

Servers с областью проекта позволяют командной работе, сохраняя конфигурации в файле .mcp.json в корневом каталоге вашего проекта. Когда вы добавляете server с областью проекта, Claude Code автоматически создает или обновляет этот файл с соответствующей структурой конфигурации. Проверьте .mcp.json в контроль версий, чтобы все члены вашей команды получили одни и те же MCP tools и сервисы.

# Добавить server с областью проекта
claude mcp add --transport http shared-server --scope project https://example.com/mcp

Результирующий файл .mcp.json следует стандартизированному формату:

{
  "mcpServers": {
    "shared-server": {
      "type": "http",
      "url": "https://example.com/mcp"
    }
  }
}

По соображениям безопасности Claude Code запрашивает одобрение в интерактивных сеансах перед использованием servers с областью проекта из файлов .mcp.json. Чтобы сбросить эти выборы одобрения, запустите claude mcp reset-project-choices.

В запусках claude -p, сеансах Agent SDK и облачных сеансах, Claude Code не может показать этот запрос: он загружает servers с областью проекта без запроса. Claude Code также пропускает запрос в сеансе, который вы запускаете в режиме bypassPermissions с skipDangerousModePermissionPrompt, установленным в ваших пользовательских параметрах или в управляемых параметрах. Чтобы все равно исключить server:

  • Добавьте его в disabledMcpjsonServers, что блокирует его в каждом режиме разрешений.
  • Исключите параметры проекта полностью с помощью --setting-sources или опции settingSources SDK.
  • Запустите сеанс с --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 проекта и доверие рабочей области охватывает, как одобрения, зафиксированные в репозитории, взаимодействуют с доверием рабочей области.

Область пользователя

Servers с областью пользователя хранятся в ~/.claude.json и обеспечивают доступность между проектами, делая их доступными во всех проектах на вашей машине, оставаясь приватными для вашей учетной записи пользователя. Эта область хорошо работает для личных utility servers, инструментов разработки или сервисов, которые вы часто используете в разных проектах.

# Добавить server пользователя
claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic

Иерархия области и приоритет

Когда один и тот же server определен в более чем одном месте, Claude Code подключается к нему один раз, используя определение из источника с наивысшим приоритетом. Вся запись server из этого источника используется; поля не объединяются между областями.

  1. Локальная область
  2. Область проекта
  3. Область пользователя
  4. Plugin-provided servers
  5. claude.ai connectors

Claude Code совпадает дубликаты по трем областям по имени. Плагины и соединители совпадают по конечной точке, поэтому тот, который указывает на тот же URL или команду, что и server выше, рассматривается как дубликат.

Два написания URL считаются одной конечной точкой, когда они отличаются только буквой регистра схемы или хоста, портом по умолчанию схемы, таким как :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: путь к исполняемому файлу server
  • args: аргументы командной строки
  • env: переменные окружения, передаваемые server
  • url: для типов HTTP server
  • headers: для аутентификации HTTP server

Пример с расширением переменных

{
  "mcpServers": {
    "api-server": {
      "type": "http",
      "url": "${API_BASE_URL:-https://api.example.com}/mcp",
      "headers": {
        "Authorization": "Bearer ${API_KEY}"
      }
    }
  }
}

Неустановленные переменные без значения по умолчанию

Если требуемая переменная окружения не установлена и не имеет значения по умолчанию, конфигурация все еще загружается: 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 или командная строка в представлении деталей /mcp server
  • Вывод 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 работал, затем добавьте сервер:

claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
  --header "Authorization: Bearer YOUR_GITHUB_PAT"

Замените YOUR_GITHUB_PAT на ваш токен личного доступа. Команда claude mcp add сохраняет конфигурацию без проверки учетных данных, поэтому здесь принимается значение-заполнитель, но сервер не подключится позже. Чтобы проверить соединение, запустите /mcp и убедитесь, что сервер показывает connected. Сервер с неправильными учетными данными показывает failed, и детали сбоя включают HTTP-статус, возвращаемый сервером, например 401.

Затем работайте с GitHub:

Проверьте PR #456 и предложите улучшения
Создайте новую проблему для найденной нами ошибки
Покажите мне все открытые PR, назначенные мне

Пример: запрос к базе данных PostgreSQL

DBHub, пакет @bytebase/dbhub, — это MCP сервер, который подключает Claude к реляционной базе данных через строку подключения, которую вы передаете в --dsn. Используйте пользователя базы данных только для чтения в строке подключения, чтобы запросы, которые запускает Claude, не могли изменять данные:

claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
  --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"

Чтобы подтвердить, что сервер запущен, запустите /mcp и убедитесь, что db показывает connected.

Затем запрашивайте вашу базу данных естественным образом:

Какой у нас общий доход в этом месяце?
Покажите мне схему для таблицы orders
Найдите клиентов, которые не совершали покупку в течение 90 дней

Аутентификация с удаленными 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 вместо сеанса.

Когда запрос к OAuth серверу, на который вы уже вошли, возвращает 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.

1

Добавьте сервер, требующий аутентификации

Если вы уже добавили сервер sentry в быстром старте MCP, пропустите этот шаг: повторный запуск claude mcp add с тем же именем сервера в той же области завершится ошибкой MCP server sentry already exists in local config. В противном случае запустите:

claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
2

Используйте команду /mcp в Claude Code

В Claude Code используйте команду:

/mcp

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

Аутентификация из командной строки

Команда claude mcp login <name> запускает поток OAuth настроенного сервера непосредственно из вашей оболочки, поэтому вам не нужно открывать панель /mcp внутри сеанса.

claude mcp login sentry

Чтобы позже очистить сохраненные учетные данные, запустите claude mcp logout <name>.

claude mcp login обнаруживает, когда локальный браузер недоступен, например во время сеанса SSH или на Linux без сервера отображения, и выводит URL авторизации вместо попытки открыть браузер. Откройте URL на вашей локальной машине, затем вставьте полный URL перенаправления из адресной строки браузера обратно в приглашение. Команде требуется интерактивный терминал для шага вставки, поэтому подключитесь с ssh -t. Передайте --no-browser, чтобы принудительно использовать приглашение URL даже при обнаружении локального браузера.

claude mcp login sentry --no-browser

Используйте фиксированный порт обратного вызова OAuth

Некоторые MCP серверы требуют определенный URI перенаправления, зарегистрированный заранее. По умолчанию Claude Code выбирает случайный доступный порт для обратного вызова OAuth. Используйте --callback-port, чтобы зафиксировать порт так, чтобы он соответствовал предварительно зарегистрированному URI перенаправления формы http://localhost:PORT/callback. Если вход на Claude Code v2.1.229 не удается с несоответствием URI перенаправления, см. примечание версии в разделе Используйте предварительно настроенные учетные данные OAuth.

Вы можете использовать --callback-port отдельно (с динамической регистрацией клиента) или вместе с --client-id (с предварительно настроенными учетными данными).

# Фиксированный порт обратного вызова с динамической регистрацией клиента
claude mcp add --transport http \
  --callback-port 8080 \
  my-server https://mcp.example.com/mcp

Используйте предварительно настроенные учетные данные 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 через портал разработчика сервера, затем предоставьте учетные данные при добавлении сервера.

1

Зарегистрируйте приложение OAuth на сервере

Создайте приложение через портал разработчика сервера и запишите ваш ID клиента и секрет клиента.

Если форма регистрации запрашивает URI перенаправления, выберите любой доступный порт и введите 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 перенаправления сервера.

2

Добавьте сервер с вашими учетными данными

Вкладки охватывают обе команды: claude mcp add принимает ваш ID клиента и порт обратного вызова как флаги, а claude mcp add-json принимает их в объекте oauth. Если вы зарегистрировали URI перенаправления, установите порт обратного вызова на порт в этом URI.

Используйте --client-id для передачи ID клиента вашего приложения. Флаг --client-secret запрашивает секрет с замаскированным вводом:

claude mcp add --transport http \
--client-id your-client-id --client-secret --callback-port 8080 \
my-server https://mcp.example.com/mcp
3

Аутентификация в 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:

{
  "mcpServers": {
    "my-server": {
      "type": "http",
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "authServerMetadataUrl": "https://auth.example.com/.well-known/openid-configuration"
      }
    }
  }
}

URL должен использовать https://. scopes_supported URL метаданных переопределяет области, которые объявляет вышестоящий сервер.

Ограничьте области OAuth

Установите oauth.scopes, чтобы зафиксировать области, которые Claude Code запрашивает во время потока авторизации. Это поддерживаемый способ ограничить MCP сервер подмножеством, одобренным командой безопасности, когда вышестоящий сервер авторизации объявляет больше областей, чем вы хотите предоставить. Значение — это одна строка с разделением пробелами, соответствующая формату параметра scope в RFC 6749 §3.3.

{
  "mcpServers": {
    "slack": {
      "type": "http",
      "url": "https://mcp.slack.com/mcp",
      "oauth": {
        "scopes": "channels:read chat:write search:read"
      }
    }
  }
}

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 запускает команду и объединяет ее вывод в заголовки подключения.

{
  "mcpServers": {
    "internal-api": {
      "type": "http",
      "url": "https://mcp.internal.example.com",
      "headersHelper": "/opt/bin/get-mcp-auth-headers.sh"
    }
  }
}

Команда также может быть встроенной:

{
  "mcpServers": {
    "internal-api": {
      "type": "http",
      "url": "https://mcp.internal.example.com",
      "headersHelper": "echo '{\"Authorization\": \"Bearer '\"$(get-token)\"'\"}'"
    }
  }
}

Требования:

  • Команда должна записать объект JSON пар строк ключ-значение в stdout
  • Claude Code запускает команду в оболочке и отказывается от нее через 10 секунд
  • Claude Code выбирает рабочий каталог команды по месту, где вы настроили сервер, поэтому дайте скрипт как абсолютный путь или поместите его на PATH
  • Динамические заголовки переопределяют любые статические headers с тем же именем

Claude Code запускает помощника заново при каждом подключении, при запуске сеанса и при переподключении, как только правило доверия для серверов области проекта и локальной области позволяет ему запуститься. Он не кэширует результат, поэтому ваш скрипт отвечает за любое повторное использование токена.

Если вызов инструмента возвращает 401 Unauthorized или 403 Forbidden, Claude Code автоматически повторно запускает помощника под тем же правилом, переподключается со свежими заголовками и повторяет вызов один раз. Claude Code помечает сервер как требующий аутентификации в /mcp только если этот повтор также не удается.

Когда вывод помощника включает заголовок Authorization, Claude Code использует это учетное данное как аутентификацию сервера и не возвращается к OAuth для сервера.

Если сервер отклоняет учетное данное помощника при подключении, Claude Code сообщает о неудачном подключении, а не помечает сервер как требующий аутентификации. Исправьте учетное данное, которое возвращает ваш помощник, затем переподключитесь из /mcp для повторного запуска помощника.

Claude Code устанавливает эти переменные окружения при выполнении помощника:

Переменная Значение
CLAUDE_CODE_MCP_SERVER_NAME имя MCP сервера
CLAUDE_CODE_MCP_SERVER_URL URL MCP сервера
CLAUDE_PLUGIN_ROOT корневой каталог плагина. Установлено только когда плагин предоставляет сервер

Используйте их для написания одного скрипта помощника, который служит нескольким MCP серверам.

headersHelper, предоставленный плагином, не может ссылаться на значения ${user_config.*} плагина, потому что команда запускается через оболочку. Claude Code сообщает о неправильной конфигурации сервера с ошибкой и не подставляет значение. Вместо этого поместите ${user_config.KEY} в поле headers сервера, которое не анализируется оболочкой, или попросите скрипт помощника прочитать значение из файла конфигурации. До v2.1.207 headersHelper подставлял значения ${user_config.*}.

Где запускается помощник

Claude Code выбирает рабочий каталог команды headersHelper из конфигурации, которая объявляет сервер. cd, который Claude запускает в Bash, не перемещает его, и /cd перемещает его только для серверов, которые запускаются из основного рабочего каталога сеанса. Каждая строка ниже дает каталог, в котором относительный путь в вашей команде headersHelper разрешается.

Где вы настроили сервер Рабочий каталог
Плагин Корневой каталог плагина
Проект .mcp.json или сервер локальной области Каталог проекта, в котором объявлен сервер
Файл агента в вашем проекте, сервер из опции mcpServers SDK или метода setMcpServers(), или --mcp-config Основной рабочий каталог сеанса
Область пользователя, управляемый MCP, коннектор claude.ai или файл агента из вне вашего проекта, включая один из каталога --add-dir Ваш каталог конфигурации, ~/.claude если вы не установили CLAUDE_CONFIG_DIR

До v2.1.238 Claude Code также запускал помощников серверов области пользователя, управляемых и коннекторов claude.ai, и файлов агентов из вне вашего проекта, из каталога, в котором вы его запустили.

Какие переменные может читать помощник

headersHelper, который поставляет репозиторий или плагин, — это команда, которую вы не писали, поэтому Claude Code запускает ее без переменных учетных данных из вашей среды, таких как ANTHROPIC_API_KEY. Место, где вы настроили сервер, определяет, применяется ли это:

Помимо переменных 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 для хуков в файлах настроек
  • До тех пор, пока вы не доверите папке: Claude Code подключает сервер только с его статическими headers. В сеансе claude -p или SDK он также выводит одну строку headersHelper not run на stderr, сообщая вам, как предоставить доверие.
  • Доверие без диалога: установите projects["<path>"].hasTrustDialogAccepted на true в ~/.claude.json. <path> — это папка, на которую Claude Code ключает доверие согласно Project allow rules and workspace trust.

Claude Code применяет то же правило к серверу, объявленному встроенным в файл агента, проверяя, откуда этот файл агента пришел: ваш проект, для файла в его каталоге .claude/agents/, или каталог --add-dir. До тех пор, пока вы не доверите этому проекту или каталогу самому, Claude Code не загружает сервер вообще, поэтому его помощник никогда не запускается.

Добавьте MCP servers из конфигурации JSON

Если у вас есть конфигурация JSON для MCP server, вы можете добавить ее напрямую:

1

Добавьте MCP server из JSON

# Базовый синтаксис
claude mcp add-json <name> '<json>'

# Пример: добавление HTTP server с конфигурацией JSON
claude mcp add-json weather-api '{"type":"http","url":"https://api.weather.com/mcp","headers":{"Authorization":"Bearer token"}}'

# Пример: добавление stdio server с конфигурацией JSON
claude mcp add-json local-weather '{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'

# Пример: добавление HTTP server с предварительно настроенными учетными данными OAuth
claude mcp add-json my-server '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"clientId":"your-client-id","callbackPort":8080}}' --client-secret
2

Проверьте, что server был добавлен

claude mcp get weather-api

Импортируйте MCP servers из Claude Desktop

Если вы уже настроили MCP servers в Claude Desktop, вы можете их импортировать:

1

Импортируйте servers из Claude Desktop

# Базовый синтаксис 
claude mcp add-from-claude-desktop 
2

Выберите, какие servers импортировать

После запуска команды вы увидите интерактивный диалог, который позволяет вам выбрать, какие servers вы хотите импортировать.

3

Проверьте, что servers были импортированы

claude mcp list 

Имена 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:

1

Настройте MCP серверы в claude.ai

Добавьте серверы на claude.ai/customize/connectors. В планах Team и Enterprise только администраторы могут добавлять серверы.

2

Аутентифицируйте MCP сервер

Выполните все необходимые шаги аутентификации в claude.ai.

3

Просмотрите и управляйте серверами в Claude Code

В Claude Code используйте команду:

/mcp

Серверы из claude.ai появляются в списке с индикаторами, показывающими, что они поступают из claude.ai.

Anthropic также предоставляет некоторые connectors самостоятельно, без добавления вами или администратором. На учётных записях, где доступны Claude Docs, /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 как session token rejected, или его подробное представление показывает claude.ai rejected the session token, claude.ai отклонил токен из вашего входа в Claude Code. Повторная авторизация connector не очищает это состояние, потому что собственная авторизация connector в claude.ai — это не то, что было отклонено. Чтобы очистить это:

  1. Запустите /login, чтобы войти снова.
  2. Переподключите connector из /mcp.

До версии 2.1.222 Claude Code помечал connectors как требующие аутентификации, и их авторизация не решала проблему.

Сервер, который вы добавили в Claude Code, имеет приоритет над connector из claude.ai, который указывает на тот же URL. Когда это происходит, /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 в них пока недоступны.

Где работает сеанс Как поступают connectors Что ими управляет
Сеансы Terminal, VS Code, JetBrains и Agent SDK Claude Code загружает их из claude.ai Параметры в этом разделе и управляемая конфигурация MCP
Облачные сеансы Удалённый хост передаёт их Параметры организации claude.ai, плюс параметры allowlist и denylist, которые достигают сеанса, и любой managed-mcp.json на хосте, который его запускает
Настольное приложение локальные и SSH сеансы Настольное приложение доставляет их в процессе Записи blocked в инструментах управления connector вашей организации

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 и bypassPermissions permission modes, и никогда не предлагает опцию запомнить ваш выбор. Правила разрешений, которые совпадают с инструментом, также не пропускают запрос. В режиме dontAsk, который никогда не запрашивает, Claude Code отклоняет вызов вместо этого.
  • Инструмент установлен на blocked: Claude Code фильтрует инструмент перед тем, как Claude его видит, поэтому он никогда не появляется в списке инструментов Claude. В сеансах, где Claude Code загружает connectors сам, список инструментов /mcp всё ещё показывает инструмент, помеченный как disabled by your organization.

Настольное приложение и чат claude.ai применяют тот же параметр blocked, поэтому Claude не может использовать инструмент там либо, и вы не можете скрыть инструмент из сеансов настольного приложения, сохраняя его доступным в чате. Настольное приложение пропускает connector, все инструменты которого заблокированы.

Отключение connectors claude.ai

Claude Code применяет disableClaudeAiConnectors только к connectors, которые он загружает сам, а не к connectors, которые доставляет облачный хост или настольное приложение. Чтобы отключить connectors, которые он загружает, установите параметр на true в любой области параметров:

{
  "disableClaudeAiConnectors": true
}

Этот параметр использует семантику any-source-true: true в любом источнике параметров имеет приоритет. Проверенный в репозитории .claude/settings.json проекта может отключить connectors, которые Claude Code загружает сам, но уровень проекта false не может повторно включить connectors, которые уровень пользователя или политики true отключил. Серверы, переданные явно через --mcp-config, не затронуты.

Вы также можете установить переменную окружения ENABLE_CLAUDEAI_MCP_SERVERS на false, что имеет тот же эффект для текущего сеанса оболочки:

ENABLE_CLAUDEAI_MCP_SERVERS=false claude

Чтобы заблокировать отдельные connectors claude.ai вместо всех них, добавьте их в deniedMcpServers по имени или по шаблону URL. Например, запись serverName из "claude.ai Slack" блокирует connector Slack. Вы также можете запустить /mcp, чтобы переключить любой connector, который Claude Code загружает, включить или отключить только для текущего проекта.

Использование Claude Code в качестве MCP сервера

Вы можете использовать Claude Code в качестве MCP сервера, к которому могут подключаться другие приложения:

# Запустить Claude как stdio MCP сервер
claude mcp serve

Команда ничего не выводит при запуске. Stdio MCP сервер взаимодействует через stdin и stdout, поэтому молчаливый, заблокированный терминал означает, что сервер работает и ожидает подключения клиента.

Вы можете использовать это в Claude Desktop, добавив эту конфигурацию в claude_desktop_config.json:

{
  "mcpServers": {
    "claude-code": {
      "type": "stdio",
      "command": "claude",
      "args": ["mcp", "serve"],
      "env": {}
    }
  }
}

Ограничения и предупреждения выходных данных 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/.

Чтобы увеличить лимит для инструментов, которые производят большие объемы выходных данных:

export MAX_MCP_OUTPUT_TOKENS=50000
claude

Повысить лимит для конкретного инструмента

Если вы создаете сервер MCP, вы можете разрешить отдельным инструментам возвращать результаты, превышающие порог сохранения на диск по умолчанию, установив _meta["anthropic/maxResultSizeChars"] в записи ответа tools/list инструмента. Claude Code повышает порог этого инструмента до аннотированного значения, вплоть до жесткого потолка в 500 000 символов.

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

{
  "name": "get_schema",
  "description": "Returns the full database schema",
  "_meta": {
    "anthropic/maxResultSizeChars": 200000
  }
}

Аннотация применяется независимо от 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 каждой ветви описывается в описании инструмента вместо того, чтобы быть принудительно применяемым схемой

Ваш сервер получает любые аргументы, которые выбрал Claude, поэтому продолжайте проверять комбинацию на стороне сервера.

Когда Claude Code не может создать схему, которую принимает API, или при развёртывании, которое не получает удалённую конфигурацию, включающую переписывание, он пропускает этот инструмент, записывает причину в журнал сервера и оставляет другие инструменты сервера доступными.

Инструменты с недействительными схемами входных данных

Claude API проверяет схему входных данных каждого инструмента в запросе и отклоняет весь запрос, когда любая схема не проходит проверку, поэтому один инструмент MCP с неправильной схемой приведет к тому, что каждый запрос, который его включает, завершится ошибкой 400. Claude Code запускает две проверки API самостоятельно при загрузке инструментов сервера и исключает каждый инструмент, который не пройдет их, поэтому другие инструменты сервера продолжают работать:

  • Имена свойств верхнего уровня должны быть длиной от 1 до 64 символов и использовать только буквы и цифры ASCII, _, . и -
  • Схема должна быть действительной в соответствии с метасхемой JSON Schema draft 2020-12. Claude Code применяет эту проверку к схемам, которые не объявляют $schema, и к схемам, которые объявляют draft 2020-12. Схема, которая объявляет любой другой диалект, пропускает эту проверку, хотя проверка имен свойств выше все еще применяется

Когда Claude Code исключает инструмент, он записывает причину в журнал сервера и сообщает Claude, какие инструменты он исключил и почему, чтобы вы могли спросить Claude, почему инструмент отсутствует. Если вы исправите схему на сервере, инструмент вернется в следующий раз, когда Claude Code загрузит инструменты сервера.

Claude Code включает исключение через флаг функции, который он получает от Anthropic. На развертывании, где получение флагов отключено, или на машине, флаги которой никогда не поступали, например на изолированной машине, Claude Code все еще запускает проверки и записывает в журнал сервера, какой инструмент будет отклонен, но отправляет схему инструмента в API в любом случае. API отклоняет запрос, который включает эту схему с ошибкой 400, называющей инструмент по его позиции. До версии 2.1.216 ни одно развертывание не запускало эти проверки.

Обработка комбинатора корневого уровня отделена и сохраняет свое собственное поведение, когда получение флагов отключено или флаги никогда не поступали.

Требование одобрения для конкретного инструмента

Если вы создаёте 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 отмечает один инструмент как всегда требующий одобрения.

{
  "name": "grant_access",
  "description": "Requests access to a protected resource",
  "_meta": {
    "anthropic/requiresUserInteraction": true
  }
}

Аннотация 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 Claude Code передает URL в качестве аргумента командной строки обработчику URL вашей системы и ограничивает длину этого аргумента. Когда URL, после экранирования для командной строки, превышает это ограничение, вы можете только отклонить запрос. Каждый символ, который требует экранирования, такой как % или &, считается четыре раза в сторону ограничения: сам символ плюс три символа экранирования. URL без них достигает ограничения примерно на 8000 символов. URL, построенный в основном из процентных экранирований, где каждый третий символ — это %, достигает его примерно на 4000.

Для автоматического ответа на запросы elicitation без отображения диалога используйте hook Elicitation.

Если вы создаете MCP сервер, который использует elicitation, см. спецификацию MCP elicitation для деталей протокола и примеров схемы.

На соединениях, которые используют revision протокола 2026-07-28, Claude Code объявляет elicitation: {form: {}, url: {}} в своих возможностях клиента, поэтому сервер там может запросить любой режим через стандартный запрос elicitation протокола.

Использование ресурсов MCP

Серверы MCP могут предоставлять ресурсы, на которые вы можете ссылаться с помощью упоминаний @, аналогично тому, как вы ссылаетесь на файлы.

Ссылка на ресурсы MCP

1

Список доступных ресурсов

Введите @ в вашу подсказку, чтобы увидеть доступные ресурсы со всех подключённых серверов MCP. Ресурсы отображаются рядом с файлами в меню автодополнения.

2

Ссылка на конкретный ресурс

Используйте формат @server:protocol://resource/path для ссылки на ресурс:

Can you analyze @github:issue://123 and suggest a fix?
Please review the API documentation at @docs:file://api/authentication
3

Несколько ссылок на ресурсы

Вы можете ссылаться на несколько ресурсов в одной подсказке:

Compare @postgres:schema://users with @docs:file://database/user-model

Ресурсы MCP Apps UI — это записи с URI ui:// или типом мультимедиа text/html;profile=mcp-app: страницы для отображения хост-приложением, а не контент для чтения Claude. Они не отображаются в предложениях @ или в результатах инструмента списка ресурсов, и сервер, предлагающий только ресурсы UI, показывает пустой список ресурсов. Чтение ресурса UI по его URI по-прежнему работает.

Поиск инструментов снижает использование контекста MCP, отложив определения инструментов до момента, когда они понадобятся Claude. При запуске сеанса загружаются только имена инструментов и инструкции сервера, поэтому добавление дополнительных серверов MCP имеет минимальное влияние на окно контекста. Claude Code не устанавливает фиксированный лимит инструментов на сервер; практический лимит определяется бюджетом окна контекста.

Для авторов серверов MCP

Если вы создаете сервер MCP, поле инструкций сервера становится более полезным при включенном поиске инструментов. Инструкции сервера помогают Claude понять, когда следует искать ваши инструменты, аналогично тому, как работают skills.

Добавьте четкие, описательные инструкции сервера, которые объясняют:

  • Какую категорию задач обрабатывают ваши инструменты
  • Когда Claude должен искать ваши инструменты
  • Ключевые возможности, которые предоставляет ваш сервер

Claude Code усекает описания инструментов и инструкции сервера на 2 048 символов по умолчанию. Держите их в краткой форме, и поместите критические детали в начало.

Чтобы изменить лимит для каждого сервера MCP в вашем сеансе, установите 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 не переопределяет это.

До версии 2.1.221 Claude Code отключал поиск инструментов для всех моделей на Agent Platform Google Cloud, если вы не установили ENABLE_TOOL_SEARCH=true.

Управляйте поведением поиска инструментов с помощью переменной окружения ENABLE_TOOL_SEARCH:

Значение Поведение
(не установлено) Все инструменты MCP отложены и загружаются по требованию. Переходит на загрузку заранее на моделях Agent Platform Google Cloud более ранних, чем поколение Claude 4.5, когда ANTHROPIC_BASE_URL является хостом, не принадлежащим первой стороне, или на развертывании Microsoft Foundry, размещенном на Azure
true Все инструменты MCP отложены, кроме развертывания Microsoft Foundry, размещенного на Azure, где отклонение на стороне сервера все еще вынуждает загрузку заранее, и на моделях Agent Platform Google Cloud более ранних, чем поколение Claude 4.5, где Claude Code продолжает загружать инструменты заранее. Claude Code отправляет заголовок бета-версии через прокси, и запросы не выполняются на прокси, которые не поддерживают блоки tool_reference
auto Режим порога: Claude Code загружает инструменты, которые он иначе отложил бы, заранее, пока их определения составляют менее 10% окна контекста, и отложит все из них, как только определения достигнут 10%
auto:N Режим порога с пользовательским процентом, где N — это 0-100. Например, auto:5 для 5%
false Все инструменты MCP загружены заранее, без отложения
# Использование пользовательского порога 5%
ENABLE_TOOL_SEARCH=auto:5 claude

# Полное отключение поиска инструментов
ENABLE_TOOL_SEARCH=false claude

Или установите значение в поле settings.json env.

Вы также можете отключить инструмент ToolSearch специально:

{
  "permissions": {
    "deny": ["ToolSearch"]
  }
}

Исключение сервера из отложения

Если инструменты сервера всегда должны быть видны Claude без этапа поиска, установите alwaysLoad в значение true в конфигурации этого сервера. Каждый инструмент с этого сервера затем загружается в контекст при запуске сеанса независимо от параметра ENABLE_TOOL_SEARCH. Используйте это для небольшого количества инструментов, которые Claude нужны на каждом ходу, так как каждый заранее загруженный инструмент потребляет контекст, который иначе был бы доступен для вашего разговора.

Следующая запись .mcp.json исключает один HTTP-сервер, оставляя другие серверы отложенными:

{
  "mcpServers": {
    "core-tools": {
      "type": "http",
      "url": "https://mcp.example.com/mcp",
      "alwaysLoad": true
    }
  }
}

Поле 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

1

Обнаружение доступных prompts

Введите / чтобы увидеть доступные вам команды, включая те, которые поступают с MCP серверов. Claude Code отображает каждый MCP prompt как /servername:promptname (MCP). Ввод /mcp__servername__promptname также запускает его.

2

Выполнение prompt без аргументов

/mcp__github__list_prs
3

Выполнение prompt с аргументами

Многие prompts принимают аргументы. Передавайте их через пробел после команды. Claude Code разделяет аргументы по пробелам, поэтому каждый аргумент — это один токен:

/mcp__github__pr_review 456
/mcp__jira__create_issue login-bug high

Управляемая конфигурация MCP

Для организаций, которым требуется централизованный контроль над тем, какие серверы MCP могут подключать пользователи, см. Управляемая конфигурация MCP. В ней описывается развертывание фиксированного набора серверов с помощью managed-mcp.json, предоставление серверов каждому пользователю с помощью managedMcpServers, ограничение серверов с помощью allowedMcpServers и deniedMcpServers, а также то, что видят пользователи, когда сервер заблокирован.