Редакция Зерокодера. Мы держим MCP-серверы в рабочих проектах Claude Code с весны 2026 — базы, трекеры, свои скрипты. Обновлено: июль 2026.

MCP (Model Context Protocol) — открытый стандарт, который подключает Claude Code к внешним инструментам: GitHub, базам данных, трекерам задач, Sentry. Чтобы добавить сервер, выполните в терминале claude mcp add. Для облачного — claude mcp add --transport http <имя> <url>, для локального — claude mcp add <имя> -- <команда>. Статус проверяется командой /mcp внутри сессии.

Главное в двух минутах:

  • MCP по определению modelcontextprotocol.io — это «порт USB-C для ИИ»: один стандарт вместо самописной интеграции под каждый сервис.
  • Три транспорта: stdio (локальный процесс), http (облачный, рекомендуемый) и устаревший sse.
  • Три области хранения: local (по умолчанию, только вам), project.mcp.json, всей команде), user (во всех ваших проектах).
  • Удалённые серверы логинятся через OAuth 2.0 прямо из /mcp — токены не надо вставлять в конфиг руками.
  • С 2026 инструменты серверов по умолчанию откладываются (Tool Search): десятки серверов почти не съедают контекст.

Что такое MCP простыми словами

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

Механически MCP — клиент-серверная связка. Claude Code выступает клиентом, MCP-сервер отдаёт ему инструменты (действия), ресурсы (данные) и подсказки (готовые команды). Стандарт открытый, поэтому один и тот же сервер понимают и Claude, и Cursor, и VS Code — написали интеграцию один раз, работает везде.

Практический критерий из нашей работы: если вы регулярно вручную носите данные между Claude и сервисом, у которого есть API, — заводите MCP-сервер. Разовая задача сервера не стоит.

Как подключить MCP-сервер: команда claude mcp add

Базовый инструмент один — claude mcp add. Меняется транспорт под тип сервера.

Облачный (HTTP) — рекомендуемый вариант для SaaS. Синтаксис и реальный пример с Sentry:

claude mcp add --transport http <имя> <url> claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

Локальный (stdio) — сервер как процесс на вашей машине, для доступа к файлам и своих скриптов. Здесь критична двойная черта --:

claude mcp add [опции] <имя> -- <команда> [аргументы...] claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \ --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"

Всё, что стоит после --, уходит серверу без изменений. Без -- Claude Code попытается разобрать флаги сервера (тот же --dsn) как свои и упадёт с ошибкой — это первая ловушка, о которой молчат гайды рунета.

Устаревший (SSE)claude mcp add --transport sse <имя> <url>. Официальная дока помечает SSE как deprecated: где есть HTTP, берите HTTP.

Для сервисов с токеном добавьте заголовок. Так подключается GitHub — через персональный токен доступа:

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

Ещё одна тихая ловушка CLI: флаг --env жадный, он читает следующие слова как пары KEY=value. Если имя сервера идёт сразу за --env, оно съедается и команда отклоняется. Ставьте между --env и именем хотя бы ещё один флаг (--transport), как в примере с базой выше.

Подключайте только серверы, которым доверяете: сервер, тянущий внешний контент, — это вектор prompt injection (предупреждение из той же официальной доки).

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

Сервер Транспорт Область (пример) Команда добавления
GitHub http user claude mcp add --transport http github https://api.githubcopilot.com/mcp/ --header "Authorization: Bearer PAT"
Notion http user claude mcp add --transport http notion https://mcp.notion.com/mcp
Sentry http local claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
PostgreSQL stdio local claude mcp add --transport stdio db -- npx -y @bytebase/dbhub --dsn "..."
Stripe http local claude mcp add --transport http stripe https://mcp.stripe.com

Область (--scope) в таблице — рекомендация: секреты и личные серверы держите в local, командные — в project. Разберём почему.

Области хранения: local, project, user и кто кого перебивает

Флаг --scope (короткая форма -s) решает, где лежит конфиг и увидит ли его команда:

Область Загружается в Шарится с командой Хранится в
local (по умолчанию) только текущий проект нет ~/.claude.json
project только текущий проект да, через VCS .mcp.json в корне
user все ваши проекты нет ~/.claude.json

Того, что идёт дальше, нет ни в одном разборе топ-10 рунета. Если один сервер по имени определён в нескольких местах, Claude Code подключается один раз — по источнику с наивысшим приоритетом. Порядок такой:

  1. local
  2. project
  3. user
  4. серверы из плагинов
  5. коннекторы claude.ai

Важная деталь: берётся вся запись из старшего источника, поля между областями не сливаются. Положили в local урезанную версию сервера поверх командной из project — команда из project игнорируется целиком, а не дополняется. На этом легко потерять полдня, гадая, почему правка в .mcp.json «не применяется».

Серверы из .mcp.json при первом запуске требуют явного одобрения — по безопасности. Сбросить решения: claude mcp reset-project-choices.

Рабочий .mcp.json целиком

Команды claude mcp add в итоге пишут вот такой файл. Его же можно вести руками и коммитить в репозиторий. Пример с обоими транспортами и подстановкой секретов из окружения:

{ "mcpServers": { "github": { "type": "http", "url": "https://api.githubcopilot.com/mcp/", "headers": { "Authorization": "Bearer ${GITHUB_PAT}" } }, "postgres": { "type": "stdio", "command": "npx", "args": ["-y", "@bytebase/dbhub", "--dsn", "${DB_DSN:-postgresql://localhost:5432/dev}"] } } }

Два поля, на которых спотыкаются. Первое — type: запись с url, но без type Claude Code читает как stdio-сервер, пропускает его и пишет MCP server "<name>" has a "url" but no "type"; add "type": "http". Второе — переменные: в command, args, env, url и headers работает подстановка ${VAR} и ${VAR:-значение-по-умолчанию}. Так секреты остаются в окружении, а .mcp.json спокойно уходит в git.

Если вы уже настраивали серверы в Claude Desktop, не переписывайте вручную — импортируйте: claude mcp add-from-claude-desktop (работает на macOS и WSL).

Проверка, управление и вход по OAuth

После добавления сервером управляют четырьмя командами:

claude mcp list # все серверы и их статус claude mcp get github # детали конкретного сервера claude mcp remove github # удалить

Внутри сессии статус показывает панель /mcp: сколько инструментов у сервера, кто подключён, кто упал. Она же запускает вход. Удалённые серверы аутентифицируются по OAuth 2.0 — Claude Code помечает сервер как требующий входа, когда тот отвечает 401 или 403. Открываете /mcp, жмёте вход, логинитесь в браузере. То же делается из шелла: claude mcp login sentry. Токены хранятся в связке ключей и обновляются сами — в конфиг их вставлять не нужно.

Если осваиваете Claude Code с нуля и хотите собрать личную ИИ-команду из инструментов без единой строки кода, связке «MCP + скиллы + субагенты» на курсе Зерокодера по вайб-кодингу посвящён отдельный модуль.

MCP Tool Search: почему десять серверов не убивают контекст

Раньше каждый MCP-сервер грузил все свои определения инструментов в контекст на старте — пять серверов, и окно уже наполовину занято. С 2026 в Claude Code по умолчанию включён Tool Search: при запуске грузятся только имена инструментов и инструкции сервера, а полные схемы откладываются и подтягиваются, когда задача реально их требует. Практический итог — добавление серверов почти не ест контекст, и жёсткого лимита на число инструментов нет: потолок — ваш бюджет окна.

Поведением рулит переменная ENABLE_TOOL_SEARCH:

Значение Что делает
не задано всё откладывается, грузится по требованию (дефолт)
true принудительно откладывать всё, даже через прокси
auto порог: грузить заранее, если влезает в 10% окна, остальное отложить
auto:N тот же порог с процентом N (например auto:5)
false грузить все инструменты заранее, без откладывания

Два следствия для практики. Первое: если конкретный сервер нужен Claude на каждом ходу, выведите его из откладывания — "alwaysLoad": true в его записи в .mcp.json (нужен Claude Code v2.1.121+). Второе: при включённом Tool Search описания инструментов и инструкции сервера усекаются на 2KB каждое — если пишете свой сервер, кладите главное в начало, хвост обрежется.

Skill, subagent, MCP или слэш-команда: что выбрать

MCP часто путают с другими способами расширить Claude Code. Они про разное:

Механизм Что это Когда брать
MCP-сервер внешний процесс с инструментами: API, база, браузер доступ к внешним системам, которых у Claude нет из коробки
Skill папка с инструкциями, грузится по требованию повторяемая процедура, стиль, чек-лист
Subagent отдельный контекст со своим промптом изолированная многошаговая задача: ресёрч, ревью
Слэш-команда объединена со скиллами (.claude/commands/x.md = /x) ручной триггер процедуры

Короткое правило: MCP отвечает на «какими внешними инструментами», скилл — «что делать», субагент — «где и чьими руками». Механизмы комбинируются: субагент вполне себе дёргает MCP-инструменты.

Типичные ошибки подключения

  • Сервер не стартует после add. Чаще всего забыт -- перед командой stdio-сервера — Claude Code разбирает флаги сервера как свои. Проверьте claude mcp get <имя>.
  • has a "url" but no "type". В JSON-записи есть url, но нет type. Добавьте "type": "http".
  • Имя сервера «съелось». Оно шло сразу за --env. Вставьте между ними ещё один флаг.
  • Удалённый сервер висит. Он ждёт OAuth — откройте /mcp или claude mcp login <имя>. Признак: статусы 401/403.
  • Правка в .mcp.json не применяется. Тот же сервер перекрыт записью из области с более высоким приоритетом (local бьёт project). Записи не сливаются — ищите дубль имени.
  • Занятое имя. workspace, claude-in-chrome, computer-use, Claude Preview, Claude Browser зарезервированы. Переименуйте свой сервер.

Чек-лист перед работой: сервер в claude mcp list со статусом «подключён» → у HTTP-серверов пройден вход через /mcp → секреты вынесены в ${VAR}, а не вписаны в .mcp.json → командные серверы в project, личные с токенами в local.

Частые вопросы

Что такое MCP-сервер простыми словами?
Это внешняя программа, которая по стандарту Model Context Protocol отдаёт Claude Code набор действий и данных: сходить в GitHub, выполнить запрос к базе, прочитать задачу в трекере. Claude работает с системой напрямую вместо копипаста в чат.

Как добавить MCP-сервер в Claude Code?
Командой claude mcp add. Для облачного сервиса — claude mcp add --transport http <имя> <url>, для локального — claude mcp add <имя> -- <команда>. Затем проверьте статус командой /mcp внутри сессии.

В чём разница между stdio, HTTP и SSE?
stdio — локальный процесс на вашей машине, для файлов и своих скриптов. http — удалённый облачный сервер, рекомендуемый транспорт с поддержкой OAuth. sse устарел, используйте вместо него HTTP.

Где хранится конфигурация MCP-серверов?
Зависит от области. local (по умолчанию) и user — в ~/.claude.json, project — в файле .mcp.json в корне проекта, который можно коммитить в репозиторий. При совпадении имён приоритет: local → project → user.

Как подключить приватный сервер с токеном?
Передайте токен заголовком: claude mcp add --transport http <имя> <url> --header "Authorization: Bearer ТОКЕН". В .mcp.json вынесите токен в переменную окружения через ${VAR}, чтобы не хранить секрет в файле.

Чем MCP отличается от скилла?
MCP даёт доступ к внешним системам через отдельный процесс с инструментами. Скилл — это инструкция-процедура внутри Claude Code, без внешнего процесса. MCP отвечает «какими инструментами», скилл — «что делать».