SpyBara
Go Premium

managed-mcp.md 2026-06-16 21:57 UTC to 2026-06-17 17:02 UTC

1 added, 1 removed.

2026
Tue 30 23:02 Mon 29 23:02 Sat 27 01:01 Fri 26 23:00 Thu 25 23:58 Wed 24 22:02 Tue 23 22:00 Mon 22 23:59 Fri 19 22:58 Thu 18 22:00 Wed 17 17:02 Tue 16 21:57 Mon 15 23:02 Sat 13 21:59 Fri 12 22:00 Thu 11 23:01 Wed 10 23:57 Tue 9 06:34 Mon 8 06:52 Sat 6 06:24 Fri 5 06:45 Thu 4 06:52 Wed 3 06:53 Tue 2 06:51

Контролируйте доступ к серверам MCP для вашей организации

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

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

На этой странице рассматривается, как:

Выбор шаблона

Claude Code поддерживает различные уровни ограничений. Каждый шаблон использует один или оба механизма, описанные ниже: managed-mcp.json для развертывания фиксированного набора и allowedMcpServers/deniedMcpServers для фильтрации того, что настраивают пользователи.

Шаблон Что он делает Конфигурация
Отключить MCP Серверы не загружаются нигде managed-mcp.json с пустой картой серверов
Фиксированное развертывание Каждый пользователь получает одни и те же серверы и не может добавлять другие managed-mcp.json с нужными вам серверами
Одобренный каталог Опубликуйте список одобренных серверов; пользователи добавляют нужные им, все остальное блокируется allowedMcpServers + allowManagedMcpServersOnly: true
Только серверы плагинов Серверы могут поступать только из плагинов; пользователи не могут добавлять свои собственные strictPluginOnlyCustomization с mcp в списке
Мягкий список разрешений Применить список разрешений, который пользователи могут расширить в своих собственных настройках allowedMcpServers без allowManagedMcpServersOnly
Только список запретов Заблокируйте известные плохие серверы, разрешите все остальное deniedMcpServers
Без ограничений Пользователи добавляют что угодно Не развертывайте никакую управляемую конфигурацию MCP

Исключительный контроль с managed-mcp.json

Если вы развернете файл managed-mcp.json, Claude Code загружает только серверы, которые определены в этом файле. Пользователи не могут добавлять, изменять или использовать какие-либо другие MCP серверы, включая серверы, предоставляемые плагинами. Файл также подавляет соединители claude.ai, если вы не разрешите их наряду с управляемым набором.

Два других параметра могут дополнительно фильтровать управляемый набор:

  • allowedMcpServers и deniedMcpServers также применяются к управляемым серверам, поэтому управляемый сервер, который не проходит их, не будет загружен.
  • Собственный deniedMcpServers пользователя объединяется из его настроек, поэтому пользователи могут заблокировать управляемый сервер для себя.

Полный порядок проверок см. в разделе How a server is evaluated.

managed-mcp.json — это отдельный файл, поэтому он не может быть доставлен через server-managed settings. Любой процесс, который может писать в системный путь с правами администратора, может развернуть его. В масштабе это обычно происходит через инструменты управления устройствами, такие как Jamf или профиль конфигурации на macOS, Group Policy или Intune на Windows, или выбранное вами управление флотом на Linux. Claude Code ищет файл по одному из этих путей:

Платформа Путь
macOS /Library/Application Support/ClaudeCode/managed-mcp.json
Linux и WSL /etc/claude-code/managed-mcp.json
Windows C:\Program Files\ClaudeCode\managed-mcp.json

Файл использует тот же формат, что и файл проекта .mcp.json:

{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    },
    "sentry": {
      "type": "http",
      "url": "https://mcp.sentry.dev/mcp"
    },
    "company-internal": {
      "type": "stdio",
      "command": "/usr/local/bin/company-mcp-server",
      "args": ["--config", "/etc/company/mcp-config.json"],
      "env": {
        "COMPANY_API_URL": "https://internal.example.com"
      }
    }
  }
}

Аутентификация с учетными данными для каждого пользователя

Любой пользователь на машине может прочитать этот файл, поэтому не сохраняйте ключи API или другие учетные данные в блоках env. Передавайте учетные данные для каждого пользователя одним из следующих способов:

Проверка конфигурации

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

  1. claude mcp list показывает только серверы в managed-mcp.json. Если собственные серверы пользователя все еще отображаются, файл не читается; проверьте путь и разрешения.
  2. claude mcp add --transport http test https://example.com/mcp завершается с ошибкой Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers. URL не должен быть реальным сервером, так как проверка политики отклоняет команду перед тем, как что-либо будет контактировано.

Полное отключение MCP

Разверните managed-mcp.json, содержащий пустую карту серверов, чтобы заблокировать каждый MCP сервер:

{
  "mcpServers": {}
}

Пользователи не видят никаких MCP серверов в /mcp, и claude mcp add завершается с ошибкой политики предприятия, указанной выше. Серверы, которые пользователи ранее настроили, перестают загружаться при следующем запуске сеанса без предупреждения о том, что причина в политике.

Разрешить соединители claude.ai наряду с управляемым набором

Развертывание managed-mcp.json подавляет соединители claude.ai по умолчанию, включая соединители, которые администратор настроил для организации в консоли администратора claude.ai. Чтобы загружать эти соединители наряду с серверами в managed-mcp.json, установите "allowAllClaudeAiMcps": true в источнике управляемых настроек. Требуется Claude Code версии 2.1.149 или позже.

Когда параметр включен, Claude Code загружает те же соединители claude.ai, которые он загружал бы, если бы managed-mcp.json не был развернут. Списки разрешений и запретов по-прежнему применяются к этим соединителям, поэтому вы можете заблокировать конкретные с помощью deniedMcpServers. Параметр влияет только на соединители claude.ai; серверы, предоставляемые плагинами, остаются подавленными.

Claude Code читает этот параметр только из контролируемых администратором уровней политики: server-managed settings, развернутый через MDM plist или ключ реестра HKLM, или системный файл managed-settings.json. Размещение его в пользовательских или проектных настройках не имеет эффекта, поэтому пользователи не могут повторно включить соединители, которые исключительный контроль подавил.

Контроль на основе политики со списками разрешений и запретов

Списки разрешений и запретов фильтруют, какие настроенные серверы разрешены для загрузки. Это не реестр: сервер все еще должен быть добавлен пользователем, плагином или managed-mcp.json перед тем, как список разрешений или запретов применится к нему. Чтобы развернуть серверы для пользователей, используйте managed-mcp.json.

Чтобы сделать список разрешений авторитетным, установите allowedMcpServers и allowManagedMcpServersOnly: true вместе в источник управляемых настроек, такой как server-managed settings или развернутый файл managed-settings.json. Ограничение списка разрешений только управляемыми настройками показывает конфигурацию. Без allowManagedMcpServersOnly списки разрешений из каждого источника настроек объединяются, включая собственный ~/.claude/settings.json пользователя, поэтому пользователь может расширить то, что разрешает ваш список разрешений. Списки запретов объединяются из каждого источника независимо.

Сопоставление серверов по URL, команде или имени

allowedMcpServers и deniedMcpServers — это списки записей. Каждая запись — это объект с одним ключом, который идентифицирует серверы по их URL, команде или имени:

Ключ Совпадает Используется для
serverUrl URL удаленного сервера, точный или с подстановочными знаками * HTTP и SSE серверы
serverCommand Точная команда и аргументы, которые запускают сервер stdio Серверы stdio
serverName Метка, назначенная пользователем. Только точное совпадение; подстановочные знаки не расширяются Любой тип, но см. предупреждение ниже

Оставление allowedMcpServers неустановленным отличается от установки его в пустой массив:

Параметр Не установлен (по умолчанию) Пустой массив [] Заполненный
allowedMcpServers Все серверы разрешены Серверы не разрешены Разрешены только совпадающие серверы
deniedMcpServers Серверы не блокируются Серверы не блокируются Совпадающие серверы блокируются

Как оценивается сервер

Перед загрузкой сервера, включая сервер из managed-mcp.json, Claude Code выполняет три проверки по порядку:

  1. Объедините списки. Записи списка разрешений и запретов из каждого источника настроек объединяются в один список разрешений и один список запретов. Когда allowManagedMcpServersOnly имеет значение true, сохраняется только управляемый список разрешений; список запретов всегда объединяется из каждого источника.
  2. Проверьте список запретов. Сервер, который совпадает с любой записью списка запретов по URL, команде или имени, блокируется. Ничто не переопределяет совпадение списка запретов.
  3. Проверьте список разрешений. Если allowedMcpServers не установлен нигде, каждый сервер, который прошел список запретов, загружается. Если он установлен, то, с чем должен совпадать сервер, зависит от его типа, показанного в таблице ниже.
Тип сервера Разрешено, когда совпадает
Удаленный (HTTP или SSE) Запись serverUrl. Совпадение serverName считается только когда список разрешений не содержит записей serverUrl
Stdio Запись serverCommand. Совпадение serverName считается только когда список разрешений не содержит записей serverCommand

Два правила сопоставления применяются внутри этих проверок:

  • Команды совпадают точно. Каждый аргумент по порядку. ["npx", "-y", "server"] не совпадает с ["npx", "server"] или ["npx", "-y", "server", "--flag"].
  • URL поддерживают подстановочные знаки * в любом месте шаблона, включая схему. Сопоставление имени хоста не учитывает регистр и игнорирует конечную точку FQDN, поэтому https://Mcp.Example.com/* совпадает с https://mcp.example.com/api. Пути остаются чувствительными к регистру.
Шаблон Разрешает
https://mcp.example.com/* Все пути на конкретном домене
https://mcp.example.com Также все пути на этом домене. Шаблон без пути совпадает с любым путем
https://*.example.com/* Любой поддомен example.com
http://localhost:*/* Любой порт на localhost
*://mcp.example.com/* Любая схема к конкретному домену

Пример конфигурации

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

{
  "allowedMcpServers": [
    { "serverUrl": "https://api.githubcopilot.com/*" },
    { "serverUrl": "https://mcp.sentry.dev/*" },
    { "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem", "."] },
    { "serverCommand": ["python", "/usr/local/bin/approved-server.py"] },
    { "serverUrl": "https://mcp.example.com/*" },
    { "serverUrl": "https://*.internal.example.com/*" }
  ],
  "deniedMcpServers": [
    { "serverName": "dangerous-server" },
    { "serverCommand": ["npx", "-y", "unapproved-package"] },
    { "serverUrl": "https://*.untrusted.example.com/*" }
  ]
}
  • Строка 3: первая запись serverUrl. Как только она существует, каждый удаленный сервер должен совпадать с шаблоном URL, поэтому пользователь не может получить неуказанный удаленный сервер, дав ему разрешенное имя.
  • Строка 5: первая запись serverCommand. Тот же эффект для серверов stdio, поэтому каждый локальный сервер должен совпадать с указанной командой точно.
  • Строка 11: запись serverName в списке запретов. Записи списка запретов всегда применяются, поэтому любой сервер с именем dangerous-server блокируется независимо от его URL или команды.

Запись serverName в этом списке разрешений никогда не совпадет ни с чем, так как оба типа транспорта уже имеют более строгие записи.

Аккордеоны ниже проходят через то, как сервер оценивается в сравнении с другими комбинациями списков разрешений и запретов.

Список разрешений только по URL
{
"allowedMcpServers": [
{ "serverUrl": "https://mcp.example.com/*" },
{ "serverUrl": "https://*.internal.example.com/*" }
]
}
Сервер Результат
HTTP сервер в https://mcp.example.com/api Разрешено: совпадает с шаблоном URL
HTTP сервер в https://api.internal.example.com/mcp Разрешено: совпадает с подстановочным поддоменом
HTTP сервер в https://external.example.com/mcp Блокировано: не совпадает ни с одним шаблоном URL
Сервер stdio с любой командой Блокировано: нет записей имени или команды для совпадения
Список разрешений только по команде
{
"allowedMcpServers": [
{ "serverCommand": ["npx", "-y", "approved-package"] }
]
}
Сервер Результат
Сервер stdio с ["npx", "-y", "approved-package"] Разрешено: совпадает с командой
Сервер stdio с ["node", "server.js"] Блокировано: не совпадает с командой
HTTP сервер с именем my-api Блокировано: нет записей имени для совпадения
Смешанный список разрешений имени и команды
{
"allowedMcpServers": [
{ "serverName": "github" },
{ "serverCommand": ["npx", "-y", "approved-package"] }
]
}
Сервер Результат
Сервер stdio с именем local-tool и ["npx", "-y", "approved-package"] Разрешено: совпадает с командой
Сервер stdio с именем local-tool и ["node", "server.js"] Блокировано: записи команды существуют, но не совпадают
Сервер stdio с именем github и ["node", "server.js"] Блокировано: серверы stdio должны совпадать с командами, когда существуют записи команды
HTTP сервер с именем github Разрешено: совпадает с именем
HTTP сервер с именем other-api Блокировано: имя не совпадает
Список разрешений только по имени
{
"allowedMcpServers": [
{ "serverName": "github" },
{ "serverName": "internal-tool" }
]
}
Сервер Результат
Сервер stdio с именем github с любой командой Разрешено: нет ограничений команды
Сервер stdio с именем internal-tool с любой командой Разрешено: нет ограничений команды
HTTP сервер с именем github Разрешено: совпадает с именем
Любой сервер с именем other Блокировано: имя не совпадает
Список разрешений с переопределением списка запретов
{
"allowedMcpServers": [
{ "serverUrl": "https://*.example.com/*" }
],
"deniedMcpServers": [
{ "serverUrl": "https://staging.example.com/*" }
]
}
Сервер Результат
HTTP сервер в https://mcp.example.com/api Разрешено: совпадает с шаблоном URL списка разрешений, нет совпадения списка запретов
HTTP сервер в https://staging.example.com/api Блокировано: совпадает с обоими, но список запретов имеет приоритет
HTTP сервер в https://other.com/mcp Блокировано: не совпадает со списком разрешений

Ограничение списка разрешений только управляемыми настройками

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

{
  "allowManagedMcpServersOnly": true,
  "allowedMcpServers": [
    { "serverUrl": "https://api.githubcopilot.com/*" },
    { "serverUrl": "https://*.internal.example.com/*" }
  ]
}

Когда allowManagedMcpServersOnly имеет значение true, списки разрешений из пользовательских, проектных и локальных настроек игнорируются. Список запретов все еще объединяется из всех источников, поэтому пользователи всегда могут блокировать серверы для себя.

Как ограничения отображаются пользователям

Когда ограничение блокирует сервер, пользователь либо видит ошибку от claude mcp add, либо сервер молча перестает загружаться. Используйте эту таблицу, чтобы распознать эти отчеты и сообщить пользователям, чего ожидать перед развертыванием изменения:

Ограничение Что видит пользователь
managed-mcp.json присутствует и пользователь запускает claude mcp add Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers
Сервер находится в списке запретов и пользователь запускает claude mcp add Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy
Сервер не находится в списке разрешений и пользователь запускает claude mcp add Cannot add MCP server "<name>": not allowed by enterprise policy
Ранее настроенный сервер теперь заблокирован политикой Сервер молча исчезает из /mcp и claude mcp list без предупреждения

В последнем случае пользователь не получает сигнала о том, что причина в политике, поэтому сообщите затронутым пользователям, какие серверы блокируются при развертывании нового ограничения.

Мониторинг использования MCP

Когда OpenTelemetry export настроен, Claude Code может записывать, какие MCP серверы и инструменты вызывают пользователи. Установите OTEL_LOG_TOOL_DETAILS=1, чтобы включить имена MCP серверов и инструментов в события инструментов, затем агрегируйте их в вашем сборщике, чтобы увидеть, какие серверы фактически подключают ваши пользователи. См. Monitoring для настройки экспортера и полной схемы событий.

Сводка конфигурации

Каждый файл и параметр, рассмотренные на этой странице, что они контролируют и как их доставить:

Поверхность Что она контролирует Где она находится Как доставить
managed-mcp.json Фиксированный набор серверов, исключительный контроль Системный путь: /Library/Application Support/ClaudeCode/, /etc/claude-code/ или C:\Program Files\ClaudeCode\ MDM, GPO, управление флотом или любой процесс с правами администратора. Не может быть установлен через server-managed settings
allowedMcpServers Список разрешений разрешенных серверов Любой файл настроек; записи из каждого источника объединяются, если не установлен allowManagedMcpServersOnly Для применения, источник управляемых настроек: server-managed settings, managed-settings.json, профиль MDM или реестр
deniedMcpServers Список запретов заблокированных серверов Любой файл настроек; записи из каждого источника объединяются То же, что allowedMcpServers
allowManagedMcpServersOnly Блокирует список разрешений только управляемыми источниками Только источники управляемых настроек; параметр не имеет эффекта в других местах То же, что allowedMcpServers
allowAllClaudeAiMcps Загружает соединители claude.ai наряду с managed-mcp.json вместо их подавления Только источники управляемых настроек; параметр не имеет эффекта в других местах То же, что allowedMcpServers
  • Decide what to enforce: ограничения MCP наряду с правилами разрешений, песочницей и другими элементами управления администратора
  • Connect Claude Code to tools via MCP: полная справка MCP, включая транспорты, области и аутентификацию
  • Settings: иерархия настроек и способ приоритета управляемых настроек
  • Server-managed settings: доставка allowedMcpServers и deniedMcpServers из консоли администратора Claude.ai
  • Security: модель угроз, которую защищают эти элементы управления
  • Claude Enterprise Administrator Guide: SSO, SCIM, управление местами и сценарий развертывания