Редакция Зерокодера. Мы держим 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 подключается один раз — по источнику с наивысшим приоритетом. Порядок такой:
- local
- project
- user
- серверы из плагинов
- коннекторы 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 отвечает «какими инструментами», скилл — «что делать».