SpyBara
Go Premium

managed-mcp.md 2026-09-08 20:00 UTC to 2026-09-09 22:58 UTC

This page contains 48 additions and 25 deletions.

2026
Wed 9 22:58 Sat 12 03:02 Fri 18 23:58 Fri 25 23:58

Controlar el acceso al servidor MCP para su organización

Restrinja qué servidores MCP pueden agregar o conectar los usuarios con archivos de configuración administrados, listas de permitidos y listas de bloqueados.

De forma predeterminada, cualquiera que ejecute Claude Code puede conectar cualquier servidor MCP que elija. Anthropic revisa los conectores según sus criterios de listado antes de agregarlos al Directorio de Anthropic, pero no realiza auditorías de seguridad ni administra ningún servidor MCP. Como administrador, puede restringir qué servidores se ejecutan en su organización, desde implementar un conjunto fijo aprobado hasta deshabilitar MCP completamente.

Estas restricciones cubren los servidores que Claude Code carga por sí mismo, incluidos los conectores que obtiene de claude.ai. Los conectores que la aplicación de escritorio entrega a sus sesiones locales y SSH llegan en proceso y se rigen desde la configuración de su organización en claude.ai; Cómo llegan los conectores a Claude Code muestra qué controles se aplican a los conectores en cada tipo de sesión, incluidas las sesiones en la nube.

Esta página cubre cómo:

Elegir un patrón

Claude Code admite una variedad de niveles de restricción. Cada patrón utiliza uno o ambos de los mecanismos cubiertos a continuación: managed-mcp.json para implementar un conjunto fijo, y allowedMcpServers/deniedMcpServers para filtrar lo que los usuarios configuran.

Patrón Qué hace Configurar
Deshabilitar MCP Ningún servidor se carga, aparte de servidores en proceso que la aplicación que inició la sesión registra managed-mcp.json con un mapa de servidor vacío
Implementación fija Cada usuario obtiene los mismos servidores y no puede agregar otros managed-mcp.json con los servidores que desea
Catálogo aprobado Publique una lista de servidores aprobados; los usuarios agregan los que desean, todo lo demás se bloquea allowedMcpServers + allowManagedMcpServersOnly: true
Solo servidores de plugins Los usuarios no pueden agregar servidores a través de ~/.claude.json o .mcp.json; los servidores de plugins aún se cargan strictPluginOnlyCustomization con mcp en la lista
Lista de permitidos suave Aplicar una lista de permitidos que los usuarios pueden ampliar en su propia configuración allowedMcpServers sin allowManagedMcpServersOnly
Solo lista de bloqueados Bloquee servidores conocidos como malos, permita todo lo demás deniedMcpServers
Sin restricciones Los usuarios agregan cualquier cosa No implemente ninguna configuración administrada de MCP

Control exclusivo con managed-mcp.json

Si implementa un archivo managed-mcp.json, Claude Code carga solo los servidores que ese archivo define, más cualquier servidor en proceso que la aplicación que inició la sesión registra, como el servidor propio de la extensión de VS Code o los conectores que entrega la aplicación de escritorio. Los usuarios no pueden agregar, modificar ni usar ningún otro servidor MCP, incluidos los servidores proporcionados por plugins y los servidores pasados con la bandera CLI --mcp-config. El archivo también suprime los conectores de claude.ai que Claude Code obtiene por sí mismo a menos que los permita junto con el conjunto administrado.

Lo que ve un usuario cuando una sesión recibe servidores --mcp-config depende de dónde se ejecute la sesión:

  • En una estación de trabajo, Claude Code sale al inicio con You cannot dynamically configure MCP servers when an enterprise MCP config is present.
  • En sesiones en la nube en un host donde se implementa el archivo, como un ejecutor autohospedado, Claude Code se inicia solo con los servidores administrados y omite los conectores de claude.ai y otros servidores que el host en la nube entrega a través de --mcp-config. Nada en la sesión le dice al usuario qué servidores se dejaron fuera. Claude Code los nombra en una advertencia en su stderr, que un ejecutor autohospedado registra en el nivel de registro debug. Antes de v2.1.229, estas sesiones salían con el mismo error que muestra una estación de trabajo.

Si un usuario pasa --strict-mcp-config, Claude Code sale al inicio en una estación de trabajo y en una sesión en la nube por igual, porque esa bandera solicita reemplazar el conjunto administrado.

Dos otras configuraciones pueden filtrar aún más el conjunto administrado:

  • allowedMcpServers y deniedMcpServers también se aplican a servidores administrados, por lo que un servidor administrado que no los cumpla no se cargará.
  • El propio deniedMcpServers de un usuario se fusiona desde su configuración, por lo que los usuarios pueden bloquear un servidor administrado para sí mismos.

Consulte Cómo se evalúa un servidor para el orden completo de verificaciones.

managed-mcp.json es un archivo independiente, por lo que no se puede entregar a través de configuración administrada por servidor. Cualquier proceso que pueda escribir en una ruta del sistema con privilegios de administrador puede implementarlo. A escala, eso suele ser a través de herramientas de administración de dispositivos, como Jamf o un perfil de configuración en macOS, Directiva de grupo o Intune en Windows, o su administración de flota de su elección en Linux. Claude Code busca el archivo en una de estas rutas:

Plataforma Ruta
macOS /Library/Application Support/ClaudeCode/managed-mcp.json
Linux y WSL /etc/claude-code/managed-mcp.json
Windows C:\Program Files\ClaudeCode\managed-mcp.json

El archivo utiliza el mismo formato que un archivo de proyecto .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"
      }
    }
  }
}

Autenticar con credenciales por usuario

Cualquier usuario en la máquina puede leer este archivo, así que no almacene claves API u otras credenciales en bloques env. Pase credenciales por usuario con una de estas en su lugar:

Validar la configuración

Para confirmar que el archivo está en vigor, ejecute dos verificaciones en una máquina administrada:

  1. claude mcp list muestra solo los servidores en managed-mcp.json. Si los propios servidores de un usuario aún aparecen, el archivo no se está leyendo; verifique la ruta y los permisos.
  2. claude mcp add --transport http test https://example.com/mcp falla con Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers. La URL no necesita ser un servidor real, ya que la verificación de política rechaza el comando antes de que se contacte con nada.

Deshabilitar MCP completamente

Implemente un managed-mcp.json que contenga un mapa de servidor vacío para bloquear cada servidor MCP aparte de servidores en proceso que la aplicación que inició la sesión registra:

{
  "mcpServers": {}
}

claude mcp add falla con el error de política empresarial anterior. Los servidores que los usuarios habían configurado previamente dejan de cargarse la próxima vez que inician una sesión, sin advertencia de que la política es la razón.

Permitir conectores de claude.ai junto con el conjunto administrado

De forma predeterminada, implementar managed-mcp.json suprime los conectores de claude.ai que Claude Code obtiene por sí mismo, incluidos los conectores que un administrador configuró para la organización en la consola de administración de claude.ai. Para cargar esos conectores junto con los servidores en managed-mcp.json, establezca "allowAllClaudeAiMcps": true en una fuente de configuración administrada.

Con la configuración habilitada, Claude Code carga los mismos conectores de claude.ai que cargaría si managed-mcp.json no estuviera implementado. Las listas de permitidos y denegar aún se aplican a esos conectores, por lo que puede bloquear los específicos con deniedMcpServers. La configuración afecta solo a los conectores de claude.ai que Claude Code obtiene por sí mismo; los servidores proporcionados por plugins permanecen suprimidos.

Las sesiones en la nube y las sesiones locales y SSH de la aplicación de escritorio reciben conectores de otra manera, descrita en Cómo los conectores llegan a Claude Code. Un managed-mcp.json en el host que ejecuta una sesión en la nube, como un host de ejecutor autohospedado, suprime los conectores de esa sesión independientemente de si establece allowAllClaudeAiMcps. Ningún managed-mcp.json llega a los conectores que la aplicación de escritorio entrega a sus sesiones locales y SSH.

Claude Code lee allowAllClaudeAiMcps solo desde niveles de política controlados por administrador: configuración administrada por servidor, una clave de registro plist o HKLM implementada por MDM, o un archivo managed-settings.json del sistema. Colocarla en configuración de usuario o proyecto no tiene efecto, por lo que los usuarios no pueden volver a habilitar los conectores que el control exclusivo suprimió.

Control basado en políticas con listas de permitidos y listas de bloqueados

Las listas de permitidos y listas de bloqueados filtran qué servidores configurados pueden cargarse. No son un registro: un servidor aún tiene que ser agregado por un usuario, un plugin o managed-mcp.json antes de que la lista de permitidos o la lista de bloqueados se aplique a él. Para implementar servidores a los usuarios, use managed-mcp.json. Ambas listas también filtran servidores pasados con la bandera CLI --mcp-config, excepto entradas type: "sdk" en proceso; --strict-mcp-config limita qué archivos de configuración se cargan y no omite ninguna de las dos listas.

Para hacer que la lista de permitidos sea autoritaria, establezca allowedMcpServers y allowManagedMcpServersOnly: true juntos en una fuente de configuración administrada, como configuración administrada por servidor o un archivo managed-settings.json implementado. Restringir la lista de permitidos solo a configuración administrada muestra la configuración. Sin allowManagedMcpServersOnly, las listas de permitidos de cada fuente de configuración se fusionan, incluido el propio ~/.claude/settings.json de un usuario, por lo que un usuario puede ampliar lo que su lista de permitidos permite. Las listas de bloqueados se fusionan desde cada fuente independientemente.

Hacer coincidir servidores por URL, comando o nombre

allowedMcpServers y deniedMcpServers son listas de entradas. Cada entrada es un objeto con una sola clave que identifica servidores por su URL, su comando o su nombre:

Clave Coincide Usar para
serverUrl Una URL de servidor remoto, exacta o con comodines * Servidores HTTP y SSE
serverCommand El comando exacto y los argumentos que inician un servidor stdio Servidores stdio
serverName La etiqueta asignada por el usuario. Solo coincidencia exacta; los comodines no se expanden Cualquier tipo, pero vea la Advertencia a continuación

Dejar allowedMcpServers sin establecer es diferente a establecerlo en una matriz vacía:

Configuración Sin establecer (predeterminado) Matriz vacía [] Poblada
allowedMcpServers Todos los servidores permitidos Ningún servidor permitido Solo servidores coincidentes permitidos
deniedMcpServers Ningún servidor bloqueado Ningún servidor bloqueado Servidores coincidentes bloqueados

Vea Entradas inválidas en configuración administrada para saber qué sucede cuando una entrada falla la validación del esquema.

La validación de serverName difiere entre las dos listas:

  • En deniedMcpServers, serverName acepta cualquier cadena no vacía, por lo que puede bloquear conectores de claude.ai por su nombre mostrado. Por ejemplo, { "serverName": "claude.ai Slack" } bloquea el conector de Slack. Prefiera una entrada serverUrl cuando necesite que la denegación sea robusta ante cambios de nombre, o cuando un nombre de conector colisiona y gana un sufijo (N).
  • En allowedMcpServers, serverName se limita a letras, números, guiones e guiones bajos. Use serverUrl para permitir un conector de claude.ai que Claude Code obtiene por sí mismo; para conectores que un host en la nube entrega a sesiones autohospedadas, use las entradas listadas bajo El tráfico de conectores sale de su red en su lugar.

Para desactivar todos los conectores de claude.ai que Claude Code obtiene por sí mismo, vea disableClaudeAiConnectors.

Cómo se evalúa un servidor

Antes de cargar un servidor, incluido uno de managed-mcp.json, Claude Code ejecuta las tres verificaciones a continuación en orden. Las ejecuta de nuevo cuando un usuario reconecta un servidor o activa uno deshabilitado en /mcp. Los servidores type: "sdk" en proceso, que la aplicación que inició la sesión registra, omiten las tres.

  1. Fusionar las listas. Las entradas de lista de permitidos y lista de bloqueados de cada fuente de configuración se combinan en una lista de permitidos y una lista de bloqueados, con las listas del alcance administrado provenientes de la fuente o fuentes administradas que Claude Code aplica. Cuando allowManagedMcpServersOnly es true, solo se mantiene la lista de permitidos administrada; la lista de bloqueados siempre se fusiona desde cada fuente.
  2. Verificar la lista de bloqueados. Un servidor que coincida con cualquier entrada de lista de bloqueados, por URL, comando o nombre, se bloquea. Nada anula una coincidencia de lista de bloqueados.
  3. Verificar la lista de permitidos. Si allowedMcpServers no está establecido en ningún lugar, cada servidor que pasó la lista de bloqueados se carga. Si está establecido, lo que el servidor debe coincidir depende de su tipo, que se muestra en la tabla a continuación. Los servidores integrados como Claude en Chrome, el servidor ide al que Claude Code se conecta en un IDE de VS Code o JetBrains en ejecución, y los servidores que la CLI misma configura omiten esta verificación.
Tipo de servidor Permitido cuando coincide
Remoto (HTTP o SSE) Una entrada serverUrl. Una coincidencia serverName cuenta solo cuando la lista de permitidos no contiene entradas serverUrl
Stdio Una entrada serverCommand. Una coincidencia serverName cuenta solo cuando la lista de permitidos no contiene entradas serverCommand

Tres reglas de coincidencia se aplican dentro de esas verificaciones:

  • Los comandos coinciden exactamente. Cada argumento, en orden. ["npx", "-y", "server"] no coincide con ["npx", "server"] o ["npx", "-y", "server", "--flag"].
  • Los valores serverCommand y serverUrl se expanden antes de coincidir. Tanto la entrada de política como el valor configurado del servidor pasan por la expansión ${VAR} y ${VAR:-default}, por lo que una entrada escrita como ["${HOME}/bin/server"] coincide con una configuración de servidor que usa la misma referencia o la ruta expandida. En Windows, haga referencia a una variable de entorno que esté configurada allí, como ${USERPROFILE} en lugar de ${HOME}. Los valores serverName coinciden literalmente y nunca se expanden. Los dos lados leen entornos diferentes; Cómo se expanden las entradas de política cubre cuál es, y cómo difieren las entradas de lista de permitidos y lista de bloqueados.
  • Las URLs admiten comodines * en cualquier lugar del patrón, incluido el esquema. La coincidencia del nombre de host no distingue mayúsculas de minúsculas e ignora un punto FQDN final, por lo que https://Mcp.Example.com/* coincide con https://mcp.example.com/api. Las rutas permanecen sensibles a mayúsculas y minúsculas.
Patrón Permite
https://mcp.example.com/* Todas las rutas en un dominio específico
https://mcp.example.com También todas las rutas en ese dominio. Un patrón sin ruta coincide con cualquier ruta
https://*.example.com/* Cualquier subdominio de example.com
http://localhost:*/* Cualquier puerto en localhost
*://mcp.example.com/* Cualquier esquema a un dominio específico

Cómo se expanden las entradas de política

El valor configurado del servidor se expande desde el entorno de proceso activo, como el resto de .mcp.json. Una entrada de política se expande desde un entorno fijado en su lugar, por lo que una variable establecida por un archivo de configuración de proyecto o usuario no puede cambiar lo que significa una entrada de lista de permitidos. Debido a que una entrada de política aún depende del valor de la shell de lanzamiento para cualquier variable a la que haga referencia, use URLs y comandos literales para entradas en las que confía para la aplicación.

Lista de entradas Se expande desde Expansión que cambiaría el esquema, host o alcance de ruta de una entrada de URL
allowedMcpServers El entorno con el que Claude Code comenzó, más valores env de configuración administrada Claude Code ignora la entrada
deniedMcpServers Lo mismo, y una variable sin valor de inicio y sin :-default se rellena desde archivos de configuración fuera del repositorio, como configuración de usuario o administrada, que solo amplía lo que la entrada coincide La entrada aún coincide

Requiere Claude Code v2.1.219 o posterior.

Configuración de ejemplo

La configuración a continuación configura una lista de permitidos dura con una lista de bloqueados. Las líneas resaltadas cambian cómo se evalúa el resto de la lista, y las llamadas después del bloque explican cada una:

{
  "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/*" }
  ]
}
  • Línea 3: la primera entrada serverUrl. Una vez que existe una, cada servidor remoto debe coincidir con un patrón de URL, por lo que un usuario no puede obtener un servidor remoto no listado dándole un nombre permitido.
  • Línea 5: la primera entrada serverCommand. El mismo efecto para servidores stdio, por lo que cada servidor local debe coincidir exactamente con un comando listado.
  • Línea 11: una entrada serverName en la lista de bloqueados. Las entradas de lista de bloqueados siempre se aplican, por lo que cualquier servidor llamado dangerous-server se bloquea independientemente de su URL o comando.

Una entrada serverName en esta lista de permitidos nunca coincidiría con nada, ya que ambos tipos de transporte ya tienen entradas más estrictas.

Los acordeones a continuación recorren cómo se evalúa un servidor contra otras combinaciones de lista de permitidos y lista de bloqueados.

Lista de permitidos solo URL
{
"allowedMcpServers": [
{ "serverUrl": "https://mcp.example.com/*" },
{ "serverUrl": "https://*.internal.example.com/*" }
]
}
Servidor Resultado
Servidor HTTP en https://mcp.example.com/api Permitido: coincide con patrón de URL
Servidor HTTP en https://api.internal.example.com/mcp Permitido: coincide con subdominio comodín
Servidor HTTP en https://external.example.com/mcp Bloqueado: no coincide con ningún patrón de URL
Servidor stdio con cualquier comando Bloqueado: sin entradas de nombre o comando para coincidir
Lista de permitidos solo comando
{
"allowedMcpServers": [
{ "serverCommand": ["npx", "-y", "approved-package"] }
]
}
Servidor Resultado
Servidor stdio con ["npx", "-y", "approved-package"] Permitido: coincide con comando
Servidor stdio con ["node", "server.js"] Bloqueado: no coincide con comando
Servidor HTTP llamado my-api Bloqueado: sin entradas de nombre para coincidir
Lista de permitidos mixta de nombre y comando
{
"allowedMcpServers": [
{ "serverName": "github" },
{ "serverCommand": ["npx", "-y", "approved-package"] }
]
}
Servidor Resultado
Servidor stdio llamado local-tool con ["npx", "-y", "approved-package"] Permitido: coincide con comando
Servidor stdio llamado local-tool con ["node", "server.js"] Bloqueado: existen entradas de comando pero no coincide
Servidor stdio llamado github con ["node", "server.js"] Bloqueado: los servidores stdio deben coincidir con comandos cuando existen entradas de comando
Servidor HTTP llamado github Permitido: coincide con nombre
Servidor HTTP llamado other-api Bloqueado: el nombre no coincide
Lista de permitidos solo nombre
{
"allowedMcpServers": [
{ "serverName": "github" },
{ "serverName": "internal-tool" }
]
}
Servidor Resultado
Servidor stdio llamado github con cualquier comando Permitido: sin restricciones de comando
Servidor stdio llamado internal-tool con cualquier comando Permitido: sin restricciones de comando
Servidor HTTP llamado github Permitido: coincide con nombre
Cualquier servidor llamado other Bloqueado: el nombre no coincide
Lista de permitidos con anulación de lista de bloqueados
{
"allowedMcpServers": [
{ "serverUrl": "https://*.example.com/*" }
],
"deniedMcpServers": [
{ "serverUrl": "https://staging.example.com/*" }
]
}
Servidor Resultado
Servidor HTTP en https://mcp.example.com/api Permitido: coincide con patrón de URL de lista de permitidos, sin coincidencia de lista de bloqueados
Servidor HTTP en https://staging.example.com/api Bloqueado: coincide con ambos, pero la lista de bloqueados tiene prioridad
Servidor HTTP en https://other.com/mcp Bloqueado: no coincide con la lista de permitidos

Restringir la lista de permitidos solo a configuración administrada

Para hacer que la lista de permitidos administrada sea la única que se aplique, establezca allowManagedMcpServersOnly en el archivo de configuración administrada:

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

Cuando allowManagedMcpServersOnly es true, las listas de permitidos de configuración de usuario, proyecto y local se ignoran. La lista de bloqueados aún se fusiona desde todas las fuentes, por lo que los usuarios siempre pueden bloquear servidores para sí mismos.

Cómo aparecen las restricciones a los usuarios

Para ver lo que los usuarios ven al inicio cuando se implementa managed-mcp.json y la sesión también tiene servidores --mcp-config, consulte Control exclusivo con managed-mcp.json. Use esta tabla para reconocer los otros informes y para informar a los usuarios qué esperar antes de implementar un cambio:

Restricción Lo que ve el usuario
managed-mcp.json está presente y el usuario ejecuta claude mcp add Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers
El servidor está en una lista de bloqueados y el usuario ejecuta claude mcp add Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy
El servidor no está en la lista de permitidos y el usuario ejecuta claude mcp add Cannot add MCP server "<name>": not allowed by enterprise policy
Un servidor configurado previamente ahora está bloqueado por política El servidor desaparece silenciosamente de /mcp y claude mcp list sin advertencia
Un servidor se bloquea mientras se ejecuta una sesión, y el usuario selecciona Reconnect o lo vuelve a activar en /mcp MCP server <name> is blocked by enterprise managed policy

Cuando un servidor desaparece silenciosamente, el usuario no recibe ninguna señal de que la política es la razón, así que informe a los usuarios afectados qué servidores se bloquean cuando implemente una nueva restricción.

Monitorear el uso de MCP

Cuando se configura exportación de OpenTelemetry, Claude Code puede registrar qué servidores MCP y herramientas invocan los usuarios. Establezca OTEL_LOG_TOOL_DETAILS=1 para incluir nombres de servidor MCP y herramientas en eventos de herramientas, luego agréguelos en su recopilador para ver qué servidores conectan realmente sus usuarios. Consulte Monitoring para configurar el exportador y para el esquema de evento completo.

Resumen de configuración

Cada archivo y configuración que cubre esta página, qué controla y cómo entregarlo:

Superficie Qué controla Dónde vive Cómo entregar
managed-mcp.json Conjunto de servidor fijo, control exclusivo Ruta del sistema: /Library/Application Support/ClaudeCode/, /etc/claude-code/, o C:\Program Files\ClaudeCode\ MDM, GPO, administración de flota, o cualquier proceso con privilegios de administrador. No se puede establecer a través de configuración administrada por servidor
allowedMcpServers Lista de permitidos de servidores permitidos Cualquier ámbito de configuración; Claude Code fusiona las listas de cada ámbito a menos que allowManagedMcpServersOnly esté establecido, y toma la lista del ámbito administrado de la fuente administrada que selecciona o compone Para aplicación, una fuente de configuración administrada: configuración administrada por servidor, managed-settings.json, perfil MDM, o registro
deniedMcpServers Lista de bloqueados de servidores bloqueados Cualquier ámbito de configuración; Claude Code fusiona las listas de cada ámbito, y entre fuentes administradas como cómo Claude Code combina fuentes administradas describe Igual que allowedMcpServers
allowManagedMcpServersOnly Bloquea la lista de permitidos solo a fuentes administradas Solo fuentes de configuración administrada; la configuración no tiene efecto en otros lugares Igual que allowedMcpServers
allowAllClaudeAiMcps Carga los conectores de claude.ai que Claude Code obtiene por sí mismo junto con managed-mcp.json. Un managed-mcp.json en el host que ejecuta una sesión en la nube aún suprime los conectores de esa sesión Solo fuentes de configuración administrada; la configuración no tiene efecto en otros lugares Igual que allowedMcpServers