CoreCodeБлог

Руководства

Настройка MCP в Claude Code: как добавить сервер MCP, поделиться им и устранить неполадки

Опубликовано · Проверено

MCP (Model Context Protocol) — открытый стандарт подключения AI-инструментов. Сервер MCP даёт Claude Code прямой доступ к вашим инструментам, базам данных и API, так что данные больше не нужно копировать в чат. Эта страница — пошаговая инструкция: какая команда нужна каждому из трёх транспортов, где хранится конфигурация, как поделиться ею с командой, как аутентифицироваться и что проверить при сбое. Она следует документации Anthropic Connect Claude Code to tools via MCP, сверенной с ней 30 октября 2026 г.

Главное
  • Добавьте сервер командой claude mcp add: --transport http — для удалённого сервера, stdio — для процесса на вашей машине. SSE объявлен устаревшим.
  • По умолчанию конфигурация попадает в область local (~/.claude.json, только этот проект, приватно для вас). Чтобы поделиться ею с командой, добавьте --scope project, и она запишется в .mcp.json в корне проекта.
  • claude mcp list, claude mcp get <name> и claude mcp remove <name> управляют серверами; /mcp внутри Claude Code показывает статус и завершает вход по OAuth.
  • Доверяйте серверу, прежде чем подключать его: серверы, получающие внешнее содержимое, могут подвергнуть вас prompt injection.

Что такое MCP и когда подключать сервер

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

Безопасность: убедитесь, что вы доверяете каждому серверу, прежде чем подключать его. Серверы, получающие внешнее содержимое, могут подвергнуть вас риску prompt injection.

Добавление сервера для каждого транспорта

Все способы используют claude mcp add. Исходите из того, что вам даёт сервер: адрес https:// означает удалённый сервер, а команда запуска вроде npx — сервер, работающий на вашей машине.

ТранспортДля чегоПримечания
HTTPУдалённые серверыРекомендуется. Наиболее широко поддерживаемый транспорт для облачных сервисов.
SSEУдалённые серверы, предоставляющие только эндпоинт SSEУстарел. Используйте HTTP, где возможно.
stdioЛокальные процессыПодходит для инструментов, которым нужен прямой доступ к системе, и для собственных скриптов.

Удалённый сервер HTTP

# Basic syntax
claude mcp add --transport http <name> <url>

# Real example: Connect to Notion
claude mcp add --transport http notion https://mcp.notion.com/mcp

# Example with Bearer token
claude mcp add --transport http secure-api https://api.example.com/mcp \
  --header "Authorization: Bearer your-token"

В конфигурации JSON поле type принимает streamable-http как алиас http. Запись JSON с url, но без type — ошибка конфигурации: Claude Code читает запись без type как сервер stdio и пропускает её.

Удалённый сервер SSE

Транспорт SSE (Server-Sent Events) устарел; используйте HTTP, где возможно. Некоторые сервисы по-прежнему предоставляют только эндпоинт SSE. Добавляйте их той же командой claude mcp add --transport http <name> <url>: Claude Code сначала пробует HTTP и переключается на SSE, если сервер его не принимает. Для этого автоматического переключения нужен Claude Code v2.1.265 или новее. В более ранней версии или чтобы подключиться по SSE напрямую, передайте --transport sse:

# Basic syntax
claude mcp add --transport sse <name> <url>

# Real example: Connect to Asana
claude mcp add --transport sse asana https://mcp.asana.com/sse

# Example with authentication header
claude mcp add --transport sse private-api https://api.company.com/sse \
  --header "X-API-Key: your-key-here"

Локальный сервер stdio

Серверы stdio работают как локальные процессы на вашей машине.

# Basic syntax
claude mcp add [options] <name> -- <command> [args...]

# Real example: Add Airtable server
claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
  -- npx -y airtable-mcp-server

Перевод инструкций, написанных для другого клиента

Инструкции по настройке сервера могут быть написаны для Claude Desktop, Cursor или другого клиента MCP и не содержать команды claude mcp add. Ищите в них URL, команду запуска или блок JSON:

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

С add-json записи url без type сначала нужно добавить "type": "http", "type": "sse" или "type": "ws". Серверы WebSocket настраиваются в .mcp.json или через claude mcp add-json, потому что claude mcp add --transport не принимает ws. Имя сервера может содержать только буквы, цифры, дефисы и подчёркивания.

Области: где хранится конфигурация

Серверы MCP можно настраивать в трёх областях. Область определяет, в каких проектах загружается сервер и делится ли конфигурация с командой. Выберите её через -s или --scope; по умолчанию local.

ОбластьГде загружаетсяДоступна командеГде хранится
local (по умолчанию)Только текущий проектНет~/.claude.json
projectТолько текущий проектДа, через систему контроля версий.mcp.json в корне проекта
userВсе ваши проектыНет~/.claude.json
# Local scope
claude mcp add --transport http stripe --scope local https://mcp.stripe.com

# Project scope
claude mcp add --transport http shared-server --scope project https://example.com/mcp

# User scope
claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic

Сервер в области local хранится в ~/.claude.json под путём этого проекта, поэтому в других проектах не появляется. Используйте её для личных серверов разработки, экспериментальных конфигураций и серверов с учётными данными, которые не должны попасть в систему контроля версий. Заметьте, что «local scope» для серверов MCP — это не то же самое, что общий локальный файл настроек .claude/settings.local.json.

Когда один и тот же сервер определён в нескольких местах, Claude Code подключается к нему один раз, используя определение из источника с наивысшим приоритетом. Запись используется целиком; поля из разных областей не объединяются. Порядок, от высшего: область local, область project, область user, серверы из плагинов, коннекторы claude.ai.

Общий доступ к серверу для команды через .mcp.json

Область project хранит конфигурацию в файле .mcp.json в корне проекта. Когда вы добавляете сервер в области project, Claude Code создаёт или обновляет этот файл сам. Добавьте его в систему контроля версий, чтобы у всех в команде были одни и те же инструменты MCP.

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

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

Переменные окружения в .mcp.json

.mcp.json поддерживает подстановку переменных окружения, так что команда может делиться одной конфигурацией, а пути, специфичные для машины, и чувствительные значения вроде ключей API остаются в окружении каждого. Переменную можно указать в значении command, args, env, url или headers сервера:

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

Если указанная переменная не задана и не имеет значения по умолчанию, конфигурация всё равно загружается: Claude Code выводит предупреждение об отсутствующей переменной в claude mcp list и использует неподставленный текст ${VAR} как есть. В url и headers удалённого сервера переменные с учётными данными, такие как ANTHROPIC_API_KEY и ANTHROPIC_AUTH_TOKEN, читаются как пустые, а не подставляются. Чтобы передать серверу одну из этих учётных данных, скопируйте её в переменную с собственным именем и сошлитесь на это имя.

Просмотр, проверка и удаление серверов

# List all configured servers
claude mcp list

# Get details for a specific server
claude mcp get notion

# Remove a server
claude mcp remove notion

# (within Claude Code) Check server status
/mcp

При успехе claude mcp add выводит строку Added ..., которая означает, что конфигурация записана. Он не проверяет учётные данные, поэтому токен-заглушка принимается, а сервер потом не подключается. Чтобы убедиться, что Claude Code действительно подключился, выполните claude mcp get <name> или /mcp в Claude Code и найдите галочку в строке сервера.

claude mcp list показывает статус состояния рядом с каждым сервером:

СтатусЗначение
✔ ConnectedПодключён
! Needs authenticationНужен вход; см. следующий раздел
✘ Failed to connectClaude Code не смог подключиться. claude mcp list добавляет подробности сбоя к строке, а claude mcp get <name> показывает их в строке Issue:
⏸ Pending approval (run claude to approve)Сервер из .mcp.json, который вы ещё не одобрили. Запустите claude в интерактивном режиме, чтобы просмотреть и одобрить его

Когда вы удаляете удалённый сервер, Claude Code также удаляет токены OAuth и регистрацию клиента, сохранённые для него, но не отзывает токены на сервере авторизации. Если сервер авторизации поддерживает отзыв, выполните в оболочке claude mcp logout <name> перед claude mcp remove <name>.

Чтобы перестать пользоваться сервером, не теряя его конфигурацию, отключите его в панели /mcp. Claude Code перестанет подключаться к нему и сохранит конфигурацию.

Аутентификация на удалённых серверах

Многим облачным серверам MCP требуется аутентификация, и Claude Code поддерживает OAuth 2.0. Он помечает удалённый сервер как требующий аутентификации, когда сервер отвечает 401 Unauthorized или 403 Forbidden.

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

Затем выполните /mcp внутри Claude Code и следуйте шагам в браузере, чтобы войти.

Чтобы войти, не открывая сессию, выполните процедуру из оболочки:

claude mcp login sentry

Чтобы позже удалить сохранённые учётные данные, выполните claude mcp logout <name>. В сессии SSH или в Linux без сервера отображения claude mcp login определяет, что локального браузера нет, и выводит URL авторизации вместо его открытия: откройте URL на своей локальной машине, затем вставьте полный URL перенаправления из адресной строки браузера обратно в запрос. Для этого шага нужен интерактивный терминал, поэтому подключайтесь через ssh -t. Передайте --no-browser, чтобы принудительно получить запрос URL, даже если локальный браузер обнаружен.

Если вы настроили для сервера headers.Authorization, а сервер его отклоняет, Claude Code сообщает о неудаче подключения, а не переходит на OAuth. Проверьте, что токен действителен для эндпоинта MCP, или удалите заголовок, чтобы использовать процедуру OAuth. В запуске claude -p или Agent SDK нет панели /mcp, поэтому сначала войдите из интерактивной сессии или командой claude mcp login <name>.

Тайм-ауты и ограничения вывода

export MAX_MCP_OUTPUT_TOKENS=50000
claude

Порог предупреждения фиксирован. Если сервер не повышает собственный лимит инструмента, успешные текстовые результаты длиннее 50 000 символов сохраняются в файл независимо от этой переменной.

Устранение неполадок

СимптомПричина и решение
Ошибка, содержащая has a "url" but no "type"У записи JSON есть url, но нет type, поэтому она читается как stdio и пропускается. Добавьте "type": "http" (или "sse" / "ws").
Флаги сервера stdio читаются как опции ClaudeОтсутствует --. Поместите всю команду сервера после --.
--env поглощает имя сервераПоставьте между --env и именем сервера другую опцию, например --transport stdio.
⏸ Pending approvalСервер из .mcp.json не одобрен. Запустите claude и одобрите его в интерактивном режиме; чтобы переделать решения, выполните claude mcp reset-project-choices.
✘ Failed to connectВыполните claude mcp get <name> и прочитайте строку Issue: — там статус HTTP или текст ошибки. claude mcp add не проверяет учётные данные, поэтому 401 обычно означает неверный токен.
! Needs authenticationВыполните /mcp или claude mcp login <name> в оболочке.
Предупреждение о пробелах в claude mcp listЧастая причина — вставленный токен с завершающим переводом строки. Предупреждение выглядит как Leading or trailing whitespace in: headers.Authorization. Claude Code его не обрезает, поэтому отредактируйте конфигурацию и уберите его.
У одного имени сервера разные эндпоинты в нескольких областяхclaude mcp list и /mcp предупреждают об этом. Оставьте нужный эндпоинт и удалите остальные командой claude mcp remove <name> --scope <scope>.
Сервер отключился и остаётся в сбоеВ интерактивной сессии выберите Reconnect в меню сервера в /mcp. Чтобы повторить попытку для всех серверов со сбоем, выполните /mcp reconnect all (нужна v2.1.284 или новее).

FAQ

Добавлять сервер по HTTP или по SSE?

По HTTP. HTTP — рекомендуемый транспорт, а SSE устарел. Для сервиса, предоставляющего только эндпоинт SSE, подходит та же команда с --transport http, потому что Claude Code переключается на SSE, если сервер не принимает HTTP (v2.1.265 или новее); в более ранней версии передайте --transport sse.

Как выбрать между областями local, project и user?

Используйте local (по умолчанию) для сервера, нужного только вам, или с учётными данными, которые не должны попасть в систему контроля версий. Используйте project, когда сервер должен быть у всей команды: конфигурация попадает в .mcp.json в корне проекта, который вы коммитите. Используйте user для сервера, нужного во всех ваших проектах. Если одно и то же имя есть в нескольких местах, local важнее project, а project — важнее user.

Где настраивать Claude Code, когда он работает через прокси?

Эта страница касается только конфигурации серверов MCP, а страница Anthropic о прокси не говорит. Работа Claude Code через прокси настраивается в настройке Claude Code.

Источники