Por padrão, qualquer pessoa que execute Claude Code pode conectar qualquer servidor MCP que escolher. A Anthropic analisa conectores em relação aos seus critérios de listagem antes de adicioná-los ao Diretório Anthropic, mas não realiza auditoria de segurança ou gerencia nenhum servidor MCP. Como administrador, você pode restringir quais servidores são executados em sua organização, desde a implantação de um conjunto fixo aprovado até a desabilitação completa do MCP. Esta página aborda como:Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
- Escolher um padrão que corresponda ao nível de controle necessário
- Implantar um conjunto de servidor fixo com
managed-mcp.json, incluindo como desabilitar MCP completamente - Controlar servidores com listas de permissão e listas de bloqueio
- Informar aos usuários o que esperar quando uma restrição bloqueia um servidor
- Monitorar quais servidores sua organização realmente usa
A página Segurança aborda o modelo de ameaça do MCP e como avaliar um servidor antes de aprová-lo. Decidir o que aplicar aborda restrições de MCP junto com os outros controles administrativos.
Escolher um padrão
Claude Code suporta uma variedade de níveis de restrição. Cada padrão usa um ou ambos os mecanismos abordados abaixo:managed-mcp.json para implantar um conjunto fixo, e allowedMcpServers/deniedMcpServers para filtrar o que os usuários configuram.
| Padrão | O que faz | Configurar |
|---|---|---|
| Desabilitar MCP | Nenhum servidor é carregado em lugar nenhum | managed-mcp.json com um mapa de servidor vazio |
| Implantação fixa | Cada usuário obtém os mesmos servidores e não pode adicionar outros | managed-mcp.json com os servidores que você deseja |
| Catálogo aprovado | Publique uma lista de servidores aprovados; os usuários adicionam os que desejam, qualquer outro é bloqueado | allowedMcpServers + allowManagedMcpServersOnly: true |
| Apenas servidores de plugins | Os servidores podem vir apenas de plugins; os usuários não podem adicionar os seus próprios | strictPluginOnlyCustomization com mcp na lista |
| Lista de permissão suave | Aplicar uma lista de permissão que os usuários podem ampliar em suas próprias configurações | allowedMcpServers sem allowManagedMcpServersOnly |
| Apenas lista de bloqueio | Bloqueie servidores conhecidos como ruins, permita tudo o mais | deniedMcpServers |
| Sem restrições | Os usuários adicionam qualquer coisa | Não implante nenhuma configuração gerenciada de MCP |
Claude Code não possui um registro de servidor MCP integrado que os usuários possam procurar e instalar. Para o padrão de catálogo aprovado, compartilhe a lista aprovada e seus comandos
claude mcp add em algum lugar onde seus usuários a encontrem, como um wiki interno, ou distribua os servidores como plugins através de um marketplace de plugins gerenciado para que os usuários possam procurar e instalá-los em /plugin.Controle exclusivo com managed-mcp.json
Se você implantar um arquivomanaged-mcp.json, Claude Code carrega apenas os servidores que esse arquivo define. Os usuários não podem adicionar, modificar ou usar nenhum outro servidor MCP, incluindo servidores fornecidos por plugins e conectores do claude.ai.
Duas outras configurações podem filtrar ainda mais o conjunto gerenciado:
allowedMcpServersedeniedMcpServerstambém se aplicam a servidores gerenciados, portanto um servidor gerenciado que não passar por eles não será carregado.- O próprio
deniedMcpServersde um usuário é mesclado a partir de suas configurações, portanto os usuários podem bloquear um servidor gerenciado para si mesmos.
managed-mcp.json é um arquivo autônomo, portanto não pode ser entregue através de configurações gerenciadas pelo servidor. Qualquer processo que possa escrever em um caminho do sistema com privilégios de administrador pode implantá-lo. Em escala, isso geralmente é feito através de ferramentas de gerenciamento de dispositivos, como Jamf ou um perfil de configuração no macOS, Política de Grupo ou Intune no Windows, ou seu gerenciamento de frota de escolha no Linux. Claude Code procura o arquivo em um destes caminhos:
| Plataforma | Caminho |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/managed-mcp.json |
| Linux e WSL | /etc/claude-code/managed-mcp.json |
| Windows | C:\Program Files\ClaudeCode\managed-mcp.json |
.mcp.json:
Autenticar com credenciais por usuário
Qualquer usuário na máquina pode ler este arquivo, portanto não armazene chaves de API ou outras credenciais em blocosenv. Passe credenciais por usuário com uma destas alternativas:
- Expansão
${VAR}para ler segredos do ambiente de cada usuário. - OAuth ou cabeçalhos por usuário para que cada usuário se autentique como si mesmo.
headersHelperpara gerar credenciais no momento da conexão.
Validar a configuração
Para confirmar que o arquivo está em vigor, execute duas verificações em uma máquina gerenciada:claude mcp listmostra apenas os servidores emmanaged-mcp.json. Se os próprios servidores de um usuário ainda aparecerem, o arquivo não está sendo lido; verifique o caminho e as permissões.claude mcp add --transport http test https://example.com/mcpfalha comCannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers. A URL não precisa ser um servidor real, pois a verificação de política rejeita o comando antes de qualquer coisa ser contatada.
Desabilitar MCP completamente
Implante ummanaged-mcp.json contendo um mapa de servidor vazio para bloquear todos os servidores MCP:
/mcp, e claude mcp add falha com o erro de política empresarial acima. Os servidores que os usuários configuraram anteriormente param de ser carregados na próxima vez que iniciam uma sessão, sem aviso de que a política é o motivo.
Controle baseado em política com listas de permissão e listas de bloqueio
Listas de permissão e listas de bloqueio filtram quais servidores configurados podem ser carregados. Elas não são um registro: um servidor ainda precisa ser adicionado por um usuário, um plugin oumanaged-mcp.json antes que a lista de permissão ou lista de bloqueio se aplique a ele. Para implantar servidores para usuários, use managed-mcp.json.
Para tornar a lista de permissão autoritária, defina allowedMcpServers e allowManagedMcpServersOnly: true juntos em uma fonte de configurações gerenciadas, como configurações gerenciadas pelo servidor ou um arquivo managed-settings.json implantado. Restringir a lista de permissão apenas a configurações gerenciadas mostra a configuração. Sem allowManagedMcpServersOnly, listas de permissão de todas as fontes de configurações são mescladas, incluindo o próprio ~/.claude/settings.json de um usuário, portanto um usuário pode ampliar o que sua lista de permissão permite. Listas de bloqueio são mescladas de todas as fontes independentemente.
allowManagedMcpServersOnly é separado de allowManagedPermissionRulesOnly, que bloqueia apenas regras de permissão. Definir esse sinalizador não aplica a lista de permissão de MCP.Corresponder servidores por URL, comando ou nome
allowedMcpServers e deniedMcpServers são listas de entradas. Cada entrada é um objeto com uma única chave que identifica servidores por sua URL, seu comando ou seu nome:
| Chave | Corresponde | Use para |
|---|---|---|
serverUrl | Uma URL de servidor remoto, exata ou com curingas * | Servidores HTTP e SSE |
serverCommand | O comando exato e argumentos que iniciam um servidor stdio | Servidores stdio |
serverName | O rótulo atribuído pelo usuário. Correspondência exata apenas; curingas não são expandidos | Qualquer tipo, mas veja o Aviso abaixo |
allowedMcpServers não definido é diferente de defini-lo como uma matriz vazia:
| Configuração | Não definido (padrão) | Matriz vazia [] | Preenchido |
|---|---|---|---|
allowedMcpServers | Todos os servidores permitidos | Nenhum servidor permitido | Apenas servidores correspondentes permitidos |
deniedMcpServers | Nenhum servidor bloqueado | Nenhum servidor bloqueado | Servidores correspondentes bloqueados |
Como um servidor é avaliado
Antes de carregar um servidor, incluindo um demanaged-mcp.json, Claude Code executa três verificações em ordem:
- Mesclar as listas. Entradas de lista de permissão e lista de bloqueio de todas as fontes de configurações se combinam em uma lista de permissão e uma lista de bloqueio. Quando
allowManagedMcpServersOnlyétrue, apenas a lista de permissão gerenciada é mantida; a lista de bloqueio sempre é mesclada de todas as fontes. - Verificar a lista de bloqueio. Um servidor que corresponde a qualquer entrada da lista de bloqueio, por URL, comando ou nome, é bloqueado. Nada substitui uma correspondência da lista de bloqueio.
- Verificar a lista de permissão. Se
allowedMcpServersnão estiver definido em lugar nenhum, todos os servidores que passaram na lista de bloqueio são carregados. Se estiver definido, o que o servidor deve corresponder depende de seu tipo, mostrado na tabela abaixo.
| Tipo de servidor | Permitido quando corresponde |
|---|---|
| Remoto (HTTP ou SSE) | Uma entrada serverUrl. Uma correspondência serverName conta apenas quando a lista de permissão não contém entradas serverUrl |
| Stdio | Uma entrada serverCommand. Uma correspondência serverName conta apenas quando a lista de permissão não contém entradas serverCommand |
- Comandos correspondem exatamente. Cada argumento, em ordem.
["npx", "-y", "server"]não corresponde a["npx", "server"]ou["npx", "-y", "server", "--flag"]. - URLs suportam curingas
*em qualquer lugar do padrão, incluindo o esquema. A correspondência de nome de host não diferencia maiúsculas de minúsculas e ignora um ponto FQDN à direita, portantohttps://Mcp.Example.com/*corresponde ahttps://mcp.example.com/api. Os caminhos permanecem sensíveis a maiúsculas e minúsculas.
| Padrão | Permite |
|---|---|
https://mcp.example.com/* | Todos os caminhos em um domínio específico |
https://mcp.example.com | Também todos os caminhos nesse domínio. Um padrão sem caminho corresponde a qualquer caminho |
https://*.example.com/* | Qualquer subdomínio de example.com |
http://localhost:*/* | Qualquer porta em localhost |
*://mcp.example.com/* | Qualquer esquema para um domínio específico |
Configuração de exemplo
A configuração abaixo configura uma lista de permissão rígida com uma lista de bloqueio. As linhas destacadas alteram como o resto da lista é avaliado, e os textos explicativos após o bloco explicam cada uma:- Linha 3: a primeira entrada
serverUrl. Uma vez que existe uma, cada servidor remoto deve corresponder a um padrão de URL, portanto um usuário não pode obter um servidor remoto não listado dando-lhe um nome permitido. - Linha 5: a primeira entrada
serverCommand. Mesmo efeito para servidores stdio, portanto cada servidor local deve corresponder a um comando listado exatamente. - Linha 11: uma entrada
serverNamena lista de bloqueio. Entradas da lista de bloqueio sempre se aplicam, portanto qualquer servidor nomeadodangerous-serveré bloqueado independentemente de sua URL ou comando.
serverName nesta lista de permissão nunca corresponderia a nada, pois ambos os tipos de transporte já têm entradas mais rigorosas.
Os acordeões abaixo percorrem como um servidor é avaliado em relação a outras combinações de lista de permissão e lista de bloqueio.
Lista de permissão apenas de URL
Lista de permissão apenas de URL
| Servidor | Resultado |
|---|---|
Servidor HTTP em https://mcp.example.com/api | Permitido: corresponde ao padrão de URL |
Servidor HTTP em https://api.internal.example.com/mcp | Permitido: corresponde ao subdomínio curinga |
Servidor HTTP em https://external.example.com/mcp | Bloqueado: não corresponde a nenhum padrão de URL |
| Servidor stdio com qualquer comando | Bloqueado: sem entradas de nome ou comando para corresponder |
Lista de permissão apenas de comando
Lista de permissão apenas de comando
| Servidor | Resultado |
|---|---|
Servidor stdio com ["npx", "-y", "approved-package"] | Permitido: corresponde ao comando |
Servidor stdio com ["node", "server.js"] | Bloqueado: não corresponde ao comando |
Servidor HTTP nomeado my-api | Bloqueado: sem entradas de nome para corresponder |
Lista de permissão mista de nome e comando
Lista de permissão mista de nome e comando
| Servidor | Resultado |
|---|---|
Servidor stdio nomeado local-tool com ["npx", "-y", "approved-package"] | Permitido: corresponde ao comando |
Servidor stdio nomeado local-tool com ["node", "server.js"] | Bloqueado: entradas de comando existem mas não correspondem |
Servidor stdio nomeado github com ["node", "server.js"] | Bloqueado: servidores stdio devem corresponder a comandos quando entradas de comando existem |
Servidor HTTP nomeado github | Permitido: corresponde ao nome |
Servidor HTTP nomeado other-api | Bloqueado: nome não corresponde |
Lista de permissão apenas de nome
Lista de permissão apenas de nome
| Servidor | Resultado |
|---|---|
Servidor stdio nomeado github com qualquer comando | Permitido: sem restrições de comando |
Servidor stdio nomeado internal-tool com qualquer comando | Permitido: sem restrições de comando |
Servidor HTTP nomeado github | Permitido: corresponde ao nome |
Qualquer servidor nomeado other | Bloqueado: nome não corresponde |
Lista de permissão com substituição de lista de bloqueio
Lista de permissão com substituição de lista de bloqueio
| Servidor | Resultado |
|---|---|
Servidor HTTP em https://mcp.example.com/api | Permitido: corresponde ao padrão de URL da lista de permissão, sem correspondência da lista de bloqueio |
Servidor HTTP em https://staging.example.com/api | Bloqueado: corresponde a ambos, mas a lista de bloqueio tem precedência |
Servidor HTTP em https://other.com/mcp | Bloqueado: não corresponde à lista de permissão |
Restringir a lista de permissão apenas a configurações gerenciadas
Para tornar a lista de permissão gerenciada a única que se aplica, definaallowManagedMcpServersOnly no arquivo de configurações gerenciadas:
allowManagedMcpServersOnly é true, listas de permissão de configurações de usuário, projeto e local são ignoradas. A lista de bloqueio ainda é mesclada de todas as fontes, portanto os usuários sempre podem bloquear servidores para si mesmos.
Como as restrições aparecem para os usuários
Quando uma restrição bloqueia um servidor, o usuário vê um erro declaude mcp add ou o servidor para de ser carregado silenciosamente. Use esta tabela para reconhecer esses relatórios e para informar aos usuários o que esperar antes de implementar uma alteração:
| Restrição | O que o usuário vê |
|---|---|
managed-mcp.json está presente e o usuário executa claude mcp add | Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers |
O servidor está em uma lista de bloqueio e o usuário executa claude mcp add | Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy |
O servidor não está na lista de permissão e o usuário executa claude mcp add | Cannot add MCP server "<name>": not allowed by enterprise policy |
| Um servidor configurado anteriormente agora é bloqueado pela política | O servidor desaparece silenciosamente de /mcp e claude mcp list sem aviso |
Monitorar o uso de MCP
Quando exportação OpenTelemetry está configurada, Claude Code pode registrar quais servidores MCP e ferramentas os usuários invocam. DefinaOTEL_LOG_TOOL_DETAILS=1 para incluir nomes de servidor MCP e ferramentas em eventos de ferramentas, depois agregue-os em seu coletor para ver quais servidores seus usuários realmente conectam. Consulte Monitoramento para configurar o exportador e para o esquema de evento completo.
Resumo de configuração
Cada arquivo e configuração que esta página aborda, o que controla e como entregá-lo:| Superfície | O que controla | Onde fica | Como entregar |
|---|---|---|---|
managed-mcp.json | Conjunto de servidor fixo, controle exclusivo | Caminho do sistema: /Library/Application Support/ClaudeCode/, /etc/claude-code/, ou C:\Program Files\ClaudeCode\ | MDM, GPO, gerenciamento de frota ou qualquer processo com privilégios de administrador. Não pode ser definido através de configurações gerenciadas pelo servidor |
allowedMcpServers | Lista de permissão de servidores permitidos | Qualquer arquivo de configurações; entradas de todas as fontes são mescladas a menos que allowManagedMcpServersOnly esteja definido | Para aplicação, uma fonte de configurações gerenciadas: configurações gerenciadas pelo servidor, managed-settings.json, perfil MDM ou registro |
deniedMcpServers | Lista de bloqueio de servidores bloqueados | Qualquer arquivo de configurações; entradas de todas as fontes são mescladas | Mesmo que allowedMcpServers |
allowManagedMcpServersOnly | Bloqueia a lista de permissão apenas para fontes gerenciadas | Apenas fontes de configurações gerenciadas; a configuração não tem efeito em outro lugar | Mesmo que allowedMcpServers |
Recursos relacionados
- Decidir o que aplicar: restrições de MCP junto com regras de permissão, sandboxing e os outros controles de administrador
- Conectar Claude Code a ferramentas via MCP: a referência completa de MCP, incluindo transportes, escopos e autenticação
- Configurações: a hierarquia de configurações e como as configurações gerenciadas têm precedência
- Configurações gerenciadas pelo servidor: entregar
allowedMcpServersedeniedMcpServersdo console de administrador do Claude.ai - Segurança: o modelo de ameaça que esses controles defendem
- Guia do Administrador Empresarial Claude: SSO, SCIM, gerenciamento de assentos e playbook de implementação