Егор Урванов

Области MCP в Claude CodeLocal, project и user — где хранится сервер и кто его видит

Три области MCP-серверов в Claude Code: local, project и user. Где лежит настройка, кто её видит, что победит при совпадении имён, как делиться серверами с командой и не коммитить секреты.

· 4 мин · · Харнесс

Область MCP-сервера отвечает на два вопроса: в каких проектах он работает и кто его видит. В Claude Code областей три: local, project и user. Ниже: чем они различаются, какую выбрать, что победит при совпадении имён и как делиться серверами с командой. Что такое MCP и как его подключить — в статье MCP для ИИ-агента.

Три области

Localвы · этот проектProjectвся командаUserвы · все проекты● модель, люди, системы, данные  ● агент и харнесс
ОбластьГде работаетКто видитГде лежит
Localтекущий проекттолько вы~/.claude.json
Projectтекущий проектвся команда, через репозиторий.mcp.json в корне
Userвсе ваши проектытолько вы~/.claude.json
Вывод
В этом примереОдин и тот же сервер можно подключить для себя в одном проекте, для всей команды или для всех своих проектов.
В общем случаеLocal стоит по умолчанию: сервер виден только вам и только в этом проекте.
Что сделатьПосмотрите, в какой области лежит каждый ваш сервер: claude mcp list.

Какую выбрать

Скажите агенту

Покажи, в каких областях у меня настроены MCP-серверы, и подскажи, какие стоит перенести в project для команды.

Команды агент запустит сам: claude mcp list и claude mcp get.

Как это делается рукамиLocalличные и пробные серверы, серверы с личными ключамиProjectобщие инструменты командыUserличные утилиты для всех проектов● модель, люди, системы, данные  ● агент и харнесс
# local — по умолчанию
claude mcp add --transport http stripe https://mcp.stripe.com
# project — вся команда, файл .mcp.json
claude mcp add --transport http shared-server --scope project https://example.com/mcp
# user — все ваши проекты
claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic

Список серверов: claude mcp list; подробности: claude mcp get <name>; удалить: claude mcp remove <name>; внутри Claude Code: /mcp.

Вывод
В этом примереЭксперимент начинается в local, общий инструмент живёт в project, личная утилита в user.
В общем случаеОбласть решает, кто увидит сервер и где лежит его настройка.
Что сделатьДобавляйте общий инструмент с --scope project, личный с --scope user.

Что победит при совпадении имён

Если сервер с одним именем есть в нескольких местах, берётся запись из самого верхнего слоя целиком.

Managed MCP (v2.1.259+)коннекторы claude.aiплагиныUserProjectLocalберётся запись верхнего слоя целиком, поля не смешиваются● модель, люди, системы, данные  ● агент и харнесс
Вывод
В этом примереLocal перекрывает project и user, project перекрывает user, ниже идут плагины, коннекторы claude.ai и managed MCP.
В общем случаеЛичная запись перекрывает общую с тем же именем целиком: поля двух записей не объединяются.
Что сделатьДавайте личным серверам другие имена, чтобы они не перекрывали общие.

Project: общая настройка для команды

.mcp.jsonФайл лежит в корне проекта, в репозитории: вся команда получает те же серверы.
ОдобрениеВ интерактивной сессии Claude Code спрашивает разрешение перед использованием серверов из .mcp.json.
Без вопросовВ неинтерактивных запусках (claude -p, Agent SDK, облачные сессии) серверы загружаются без запроса.
Доверие к папкеВ непроверенной папке сервер ждёт одобрения («Pending approval») до диалога доверия.
ОтключитьЛишний сервер вносят в disabledMcpjsonServers, а выбор одобрений сбрасывает claude mcp reset-project-choices.
Вывод
В этом примереФайл в репозитории делает настройку агента общей: новый участник получает серверы вместе с кодом.
В общем случаеОдобрение защищает от чужого сервера в интерактивной работе, а в автоматических запусках сервер включается сразу.
Что сделатьПроверяйте .mcp.json на ревью так же, как код.

Секреты в .mcp.json

В файл пишут имена переменных окружения. Запись ${VAR} подставляет значение, ${VAR:-значение} задаёт запасное. Подстановка работает в command, args, env, url и headers.

.mcp.jsonв файле${API_KEY}у каждого свой ключв переменной окружения● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, граница
{
  "mcpServers": {
    "api-server": {
      "type": "http",
      "url": "${API_BASE_URL:-https://api.example.com}/mcp",
      "headers": { "Authorization": "Bearer ${API_KEY}" }
    }
  }
}

Если переменная не задана и запасного значения нет, конфиг загружается как есть, а claude mcp list и /mcp показывают предупреждение. Учётные данные Claude Code (ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN) и ряд других в url и headers читаются как пустые: скопируйте значение в переменную с другим именем.

Вывод
В этом примереВ репозитории лежит ${API_KEY}, настоящий ключ у каждого разработчика свой, в переменной окружения.
В общем случаеТак общий файл безопасно коммитить.
Что сделатьУберите ключи из .mcp.json и замените их переменными.

С чего начать

claude mcp list1посмотреть список2общее в project3ключи в переменные● модель, люди, системы, данные  ● агент и харнесс  ● риск, стоп, граница
Вывод
В этом примереТри шага: посмотреть, поделиться, спрятать ключи.
В общем случаеСначала порядок в своих серверах, потом общая настройка для команды.
Что сделатьВыполните claude mcp list и найдите сервер, который нужен всей команде.
© 2026 Егор Урванов