Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Gobernanza de MCP para Q Developer
Los clientes de nivel profesional que utilizan IAM Identity Center como método de inicio de sesión pueden controlar el acceso al MCP para los usuarios de su organización. De forma predeterminada, sus usuarios pueden usar cualquier servidor MCP en su cliente Q. Como administrador, tiene la posibilidad de deshabilitar por completo el uso de los servidores MCP por parte de sus usuarios o especificar una lista verificada de servidores MCP que sus usuarios pueden usar.
Estas restricciones se controlan mediante un on/off conmutador de MCP y un registro de MCP, respectivamente. Los atributos de alternancia y registro del MCP forman parte del perfil de desarrollador Q, que se puede definir a nivel de organización o de cuenta, sustituyendo el perfil a nivel de cuenta al perfil de nivel de organización. Esto le permite especificar una política de MCP predeterminada para toda la organización y, a continuación, anular esa política predeterminada para cuentas específicas; por ejemplo, deshabilitar el MCP para la organización en general, pero habilitarlo con una lista de permitidos para determinados equipos (cuentas).
nota
Tanto el conmutador como la configuración del registro se imponen en el lado del cliente. Tenga en cuenta que los usuarios finales podrían eludirla.
Deshabilitación del MCP para la organización
Para inhabilitar el MCP en tu cuenta u organización:
-
Abra la consola de Amazon Q Developer.
-
Seleccione Configuración.
-
En Preferencias, seleccione Editar.
-
En la ventana emergente de edición de preferencias, desactive el Model Context Protocol (MCP).
-
Seleccione Save.
Especificar una lista de MCP permitida para su organización
Para controlar qué servidores MCP pueden usar los usuarios de su organización, puede especificar una lista de servidores MCP permitidos en un archivo JSON, publicar este archivo JSON a través de HTTPS e introducir esa URL en el perfil de desarrollador Q que desee. En ese caso, cualquier cliente de Q Developer que utilice este perfil obligará a los usuarios a utilizar únicamente los servidores MCP que estén permitidos en el archivo JSON.
Especificar la URL del registro MCP
Abra la consola de Amazon Q Developer.
Seleccione Configuración.
En Preferencias, seleccione Editar.
En la ventana emergente Editar preferencias, asegúrese de que el Protocolo de contexto del modelo (MCP) esté activado.
En el campo URL del registro MCP, introduzca la URL de un archivo JSON del registro MCP que contenga los servidores MCP de la lista de servidores MCP permitidos.
Seleccione Save.
Formato de archivo de registro MCP
El formato del archivo JSON de registro es un subconjunto del esquema de servidor JSON del estándar de registro MCP v0.1
A continuación se muestra un ejemplo simple e inventado de un archivo de registro MCP que contiene una definición de servidor MCP remoto (HTTP) y una local (stdio).
{ "servers": [ { "server": { "name": "my-remote-server", "title": "My server", "description": "My server description", "version": "1.0.0", "remotes": [ { "type": "streamable-http", "url": "https://acme.com/my-server", "headers": [ { "name": "X-My-Header", "value": "SomeValue" } ] } ] } }, { "server": { "name": "my-local-server", "title": "My server", "description": "My server description", "version": "1.0.0", "packages": [ { "registryType": "npm", "registryBaseUrl": "https://npm.acme.com", "identifier": "@acme/my-server", "transport": { "type": "stdio" }, "runtimeArguments": [ { "type": "positional", "value": "-q" } ], "packageArguments": [ { "type": "positional", "value": "start" } ], "environmentVariables": [ { "name": "ENV_VAR", "value": "ENV_VAR_VALUE" } ] } ] } } ] }
En la siguiente tabla se describe cada propiedad del archivo JSON del registro. Todas las propiedades son obligatorias, a menos que se indique lo contrario. Consulte la sección del esquema de registro para ver el esquema JSON completo.
Los atributos anidados se muestran con un desfase horizontal respecto a sus atributos principales. Por ejemplo, «encabezados» es un atributo secundario de «remotos», y «nombre» y «valor» son atributos secundarios de «encabezados».
| Atributo | Description (Descripción) | ¿Opcional? | Ejemplo de valor |
|---|---|---|---|
| Atributos comunes | |||
| name | Nombre del servidor. Debe ser único en un archivo de registro determinado. | "aws-ccapi-mcp" | |
| título | Nombre de servidor legible por humanos. | Sí | «API CC DE AWS» |
| description | Descripción del servidor. | «Gestione la infraestructura de AWS mediante un lenguaje natural». | |
| versión | Versión del servidor. Se recomienda encarecidamente el control de versiones semántico (x.y.z). | «1.0.2" | |
| Atributos del servidor remoto (HTTP) | |||
| controles remotos | Matriz con exactamente una entrada que especifica el punto final remoto. | - | |
| type | Debe ser uno de los siguientes tipos: «streamable-http» o «sse». | «streamable-http» | |
| url | URL del punto final del servidor MCP. | «https://mcp.figma.com/mcp» | |
| headers | Matriz de encabezados HTTP para incluir en cada solicitud. | Sí | - |
| name | Nombre del encabezado HTTP. | «Autorización» | |
| valor | Valor del encabezado HTTP. | «Portador MF_9.B5F-4.1JQM» | |
| Atributos del servidor local (estudio) | |||
| packages | Matriz con exactamente una entrada que contiene la definición del servidor MCP. | - | |
| Tipo de registro |
Debe ser uno de los siguientes tipos: «npm», «pypi» u «oci». Los siguientes ejecutores de paquetes se utilizan para descargar y ejecutar el paquete del servidor MCP:
Las máquinas cliente deben tener preinstalados los ejecutores de paquetes adecuados. |
«npm» | |
| registryBaseUrl | URL de registro del paquete. | Sí | "https://npm.acme.com" |
| identificador | Identificador del paquete del servidor. | "@acme /my-server» | |
| transporte | Objeto con exactamente una propiedad, «type». | - | |
| type | Debe ser «estudio». | «estudio» | |
| Argumentos en tiempo de ejecución | Conjunto de argumentos proporcionados al tiempo de ejecución, es decir, a npx, uvx o docker. | Sí | - |
| type | Debe ser «posicional». | «posicional» | |
| valor | Valor del argumento de tiempo de ejecución. | «-q» | |
| Argumentos del paquete | Matriz de argumentos proporcionada al servidor MCP. | Sí | - |
| type | Debe ser «posicional». | «posicional» | |
| valor | Valor del argumento Package. | «iniciar» | |
| Variables de entorno | Matriz de variables de entorno que se deben configurar antes de iniciar el servidor. | Sí | - |
| name | Nombre de la variable de entorno. | «LOG_LEVEL» | |
| valor | Valor de la variable de entorno. | «INFORMACIÓN» | |
Servir el archivo de registro MCP
El archivo JSON del registro MCP debe servirse a través de HTTPS. Puede servirlo como desee, por ejemplo, utilizando S3, Apache/Nginx, etc. Los clientes de Q Developer que se ejecuten en sus usuarios deben poder acceder a esta URL. PCs Sin embargo, no es necesario que se pueda acceder a él desde la consola de AWS, lo que significa que puede ser privado en la red corporativa.
Por motivos de seguridad, el punto de conexión HTTPS debe tener un certificado SSL válido firmado por una autoridad de certificación de confianza. En concreto, no puede utilizar un certificado autofirmado para el punto final del registro.
Q buscará el registro MCP al inicio y periódicamente (cada 24 horas). Si, durante la sincronización periódica, Q observa que un servidor MCP instalado localmente ya no está presente en el registro, cerrará ese servidor y no permitirá que el usuario lo vuelva a añadir. Si observa que el servidor instalado localmente tiene una versión diferente a la del servidor del registro, volverá a iniciar el servidor con la versión definida en el registro.
Complementos de Q Developer
Cuando un usuario inicie Q Developer, comprobará si hay una URL de registro definida en el perfil. Si es así, recuperará el JSON del registro en esa URL y obligará a los usuarios a utilizar únicamente los servidores MCP definidos en el registro. Cuando los usuarios intenten agregar un servidor MCP, se les mostrará una lista de servidores definidos en el registro entre los que pueden seleccionar.
Los usuarios no pueden modificar ninguno de los parámetros (URL, identificador de paquete, RuntimeArguments, etc.) de un servidor MCP de registro. Sin embargo, aún pueden hacer lo siguiente:
Ajuste los permisos de la herramienta MCP («Solicitar ejecutar», «Ejecutar siempre» o «Denegar»).
Seleccione el ámbito del servidor MCP (global o de espacio de trabajo).
Cambie el tiempo de espera de la solicitud.
Especifique variables de entorno adicionales para los servidores MCP locales.
Especifique encabezados HTTP adicionales para los servidores MCP remotos.
nota
Si el usuario especifica un encabezado env var o HTTP que ya esté definido en el registro, prevalecerá la definición del usuario. Esto permite a los usuarios especificar atributos específicos de su configuración, por ejemplo, claves de autenticación o rutas de carpetas locales.
Esquema JSON del registro MCP
A continuación se muestra la definición del esquema JSON para los archivos JSON del registro MCP compatibles con Q Developer. Puede usar este esquema para validar cualquier archivo de registro que cree.
{ "$schema": "https://json-schema.org/draft-07/schema", "properties": { "servers": { "type": "array", "items": { "type": "object", "properties": { "server": { "$ref": "#/definitions/ServerDetail" } }, "required": [ "server" ] } } }, "definitions": { "ServerDetail": { "properties": { "name": { "description": "Server name. Must be unique within a given registry file.", "example": "weather-mcp", "maxLength": 200, "minLength": 3, "pattern": "^[a-zA-Z0-9._-]+$", "type": "string" }, "title": { "description": "Optional human-readable title or display name for the MCP server. MCP subregistries or clients MAY choose to use this for display purposes.", "example": "Weather API", "maxLength": 100, "minLength": 1, "type": "string" }, "description": { "description": "Clear human-readable explanation of server functionality. Should focus on capabilities, not implementation details.", "example": "MCP server providing weather data and forecasts via OpenWeatherMap API", "maxLength": 100, "minLength": 1, "type": "string" }, "version": { "description": "Version string for this server. SHOULD follow semantic versioning (e.g., '1.0.2', '2.1.0-alpha'). Equivalent of Implementation.version in MCP specification. Non-semantic versions are allowed but may not sort predictably. Version ranges are rejected (e.g., '^1.2.3', '~1.2.3', '\u003e=1.2.3', '1.x', '1.*').", "example": "1.0.2", "maxLength": 255, "type": "string" }, "packages": { "items": { "$ref": "#/definitions/Package" }, "type": "array" }, "remotes": { "items": { "anyOf": [ { "$ref": "#/definitions/StreamableHttpTransport" }, { "$ref": "#/definitions/SseTransport" } ] }, "type": "array" } }, "required": [ "name", "description", "version" ], "type": "object" }, "Package": { "properties": { "registryType": { "description": "Registry type indicating how to download packages (e.g., 'npm', 'pypi', 'oci')", "enum": [ "npm", "pypi", "oci" ], "type": "string" }, "registryBaseUrl": { "description": "Base URL of the package registry", "examples": [ "https://registry.npmjs.org", "https://pypi.org", "https://docker.io" ], "format": "uri", "type": "string" }, "identifier": { "description": "Package identifier - either a package name (for registries) or URL (for direct downloads)", "examples": [ "@modelcontextprotocol/server-brave-search", "https://github.com/example/releases/download/v1.0.0/package.mcpb" ], "type": "string" }, "transport": { "anyOf": [ { "$ref": "#/definitions/StdioTransport" }, { "$ref": "#/definitions/StreamableHttpTransport" }, { "$ref": "#/definitions/SseTransport" } ], "description": "Transport protocol configuration for the package" }, "runtimeArguments": { "description": "A list of arguments to be passed to the package's runtime command (such as docker or npx).", "items": { "$ref": "#/definitions/PositionalArgument" }, "type": "array" }, "packageArguments": { "description": "A list of arguments to be passed to the package's binary.", "items": { "$ref": "#/definitions/PositionalArgument" }, "type": "array" }, "environmentVariables": { "description": "A mapping of environment variables to be set when running the package.", "items": { "$ref": "#/definitions/KeyValueInput" }, "type": "array" } }, "required": [ "registryType", "identifier", "transport" ], "type": "object" }, "StdioTransport": { "properties": { "type": { "description": "Transport type", "enum": [ "stdio" ], "example": "stdio", "type": "string" } }, "required": [ "type" ], "type": "object" }, "StreamableHttpTransport": { "properties": { "type": { "description": "Transport type", "enum": [ "streamable-http" ], "example": "streamable-http", "type": "string" }, "url": { "description": "URL template for the streamable-http transport. Variables in {curly_braces} reference argument valueHints, argument names, or environment variable names. After variable substitution, this should produce a valid URI.", "example": "https://api.example.com/mcp", "type": "string" }, "headers": { "description": "HTTP headers to include", "items": { "$ref": "#/definitions/KeyValueInput" }, "type": "array" } }, "required": [ "type", "url" ], "type": "object" }, "SseTransport": { "properties": { "type": { "description": "Transport type", "enum": [ "sse" ], "example": "sse", "type": "string" }, "url": { "description": "Server-Sent Events endpoint URL", "example": "https://mcp-fs.example.com/sse", "format": "uri", "type": "string" }, "headers": { "description": "HTTP headers to include", "items": { "$ref": "#/definitions/KeyValueInput" }, "type": "array" } }, "required": [ "type", "url" ], "type": "object" }, "PositionalArgument": { "properties": { "value": { "description": "The value for the input.", "type": "string" } }, "required": [ "value" ], "type": "object" }, "KeyValueInput": { "properties": { "name": { "description": "Name of the header or environment variable.", "example": "SOME_VARIABLE", "type": "string" }, "value": { "description": "The value for the input.", "type": "string" } }, "required": [ "name" ], "type": "object" } }, "required": [ "servers" ], "type": "object" }