As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Governança de MCP para Q Developer
Clientes de nível profissional que usam o IAM Identity Center como método de login podem controlar o acesso ao MCP para usuários em sua organização. Por padrão, seus usuários podem usar qualquer servidor MCP em seu cliente Q. Como administrador, você pode desativar totalmente o uso de servidores MCP por seus usuários ou especificar uma lista verificada de servidores MCP que seus usuários podem usar.
Essas restrições são controladas por meio de uma on/off alternância MCP e um registro MCP, respectivamente. Os atributos de alternância e registro do MCP fazem parte do perfil Q Developer, que pode ser definido no nível da organização ou da conta, com o perfil no nível da conta substituindo o perfil no nível organizacional. Isso permite que você especifique uma política MCP padrão para sua organização geral e, em seguida, substitua esse padrão para contas específicas; por exemplo, desative o MCP para a organização geral, mas habilite com uma lista de permissões para determinadas equipes (contas).
nota
Tanto a alternância quanto as configurações do registro são aplicadas no lado do cliente. Esteja ciente de que seus usuários finais podem contornar isso.
Desabilitar o MCP para sua organização
Para desativar o MCP para sua conta ou organização:
-
Abra o console do Amazon Q Developer.
-
Escolha Configurações.
-
Em Preferências, escolha Editar.
-
No pop-up Editar preferências, alterne o Model Context Protocol (MCP) para Off.
-
Escolha Salvar.
Especificando uma lista de permissões de MCP para sua organização
Para controlar quais servidores MCP os usuários da sua organização podem usar, você pode especificar uma lista de servidores MCP permitidos em um arquivo JSON, servir esse arquivo JSON por HTTPS e inserir essa URL no Q Developer Profile desejado. Qualquer cliente do Q Developer que use esse perfil exigirá que os usuários só possam usar os servidores MCP que você listou como permitidos no arquivo JSON.
Especificando o URL do registro MCP
Abra o console do Amazon Q Developer.
Escolha Configurações.
Em Preferências, escolha Editar.
No pop-up Editar preferências, verifique se o Model Context Protocol (MCP) está ativado.
No campo URL do registro MCP, insira o URL de um arquivo JSON do registro MCP contendo os servidores MCP listados como permitidos.
Escolha Salvar.
Observe que o URL de registro do MCP é criptografado em trânsito e em repouso, de acordo com nossa política de criptografia de dados.
Formato de arquivo de registro MCP
O formato do arquivo JSON do registro é um subconjunto do esquema do servidor JSON no padrão de registro MCP
Abaixo está um exemplo simples e artificial de um arquivo de registro MCP contendo uma definição de servidor MCP remoto (HTTP) e 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" } ] } ] } } ] }
A tabela a seguir descreve cada propriedade do arquivo JSON do registro. Todas as propriedades são obrigatórias, salvo indicação em contrário. Consulte a seção Esquema do registro para ver o esquema JSON completo.
Os atributos aninhados são mostrados com um deslocamento horizontal de seus pais. Por exemplo, “cabeçalhos” é um atributo secundário de “controles remotos” e “nome” e “valor” são atributos secundários de “cabeçalhos”.
| Atributo | Description | Opcional? | Valor de exemplo |
|---|---|---|---|
| Atributos comuns | |||
| nome | Nome do servidor. Deve ser exclusivo em um determinado arquivo de registro. | "aws-ccapi-mcp" | |
| título | Nome do servidor legível por humanos. | Sim | “API CC DA AWS” |
| description | Descrição do servidor. | “Gerencie a infraestrutura da AWS por meio de linguagem natural.” | |
| version | Versão do servidor. O controle de versão semântico (x.y.z) é altamente recomendado. | “1.0.2" | |
| Atributos do servidor remoto (HTTP) | |||
| controles remotos | Matriz com exatamente uma entrada especificando o endpoint remoto. | - | |
| type | Deve ser “streamable-http” ou “sse”. | “http simplificável” | |
| url | URL do endpoint do servidor MCP. | “https://mcp.figma.com/mcp” | |
| headers | Conjunto de cabeçalhos HTTP para incluir em cada solicitação. | Sim | - |
| nome | Nome do cabeçalho HTTP. | “Autorização” | |
| valor | Valor do cabeçalho HTTP. | “Portador MF_9.b5f-4.1jqm” | |
| Atributos do servidor local (stdio) | |||
| packages | Matriz com exatamente uma entrada contendo a definição do servidor MCP. | - | |
| Tipo de registro |
Deve ser “npm”, “pypi” ou “oci”. Os seguintes executores de pacotes são usados para baixar e executar o pacote do servidor MCP:
As máquinas clientes devem ter os executores de pacotes apropriados pré-instalados. |
“npm” | |
| registryBaseUrl | URL de registro do pacote. | Sim | "https://npm.acme.com" |
| Identifier | Identificador do pacote do servidor. | “@acme /meu-servidor” | |
| transport | Objeto com exatamente uma propriedade, “tipo”. | - | |
| type | Deve ser “estúdio”. | “estúdio” | |
| Argumentos de tempo de execução | Matriz de argumentos fornecidos para o tempo de execução, ou seja, para npx, uvx ou docker. | Sim | - |
| type | Deve ser “posicional”. | “posicional” | |
| valor | Valor do argumento de tempo de execução. | “-q” | |
| Argumentos do pacote | Conjunto de argumentos fornecidos ao servidor MCP. | Sim | - |
| type | Deve ser “posicional”. | “posicional” | |
| valor | Valor do argumento do Package. | “começar” | |
| Variáveis de ambiente | Matriz de variáveis de ambiente a serem definidas antes de iniciar o servidor. | Sim | - |
| nome | Nome da variável de ambiente. | “NÍVEL_LOG” | |
| valor | Valor da variável de ambiente. | “INFORMAÇÃO” | |
Servindo o arquivo de registro MCP
O arquivo JSON do registro MCP deve ser servido por HTTPS. Você pode servir isso como quiser, por exemplo, usando S3, Apache/Nginx, etc. Esse URL deve estar acessível pelos clientes Q Developer que funcionam com os de seus usuários PCs. No entanto, ele não precisa estar acessível a partir do console da AWS, o que significa que ele pode ser privado para sua rede corporativa.
Por motivos de segurança, o endpoint HTTPS deve ter um certificado SSL válido assinado por uma Autoridade de Certificação confiável. Em particular, você não pode usar um certificado autoassinado para o endpoint do registro.
Q buscará o registro MCP na inicialização e periodicamente (a cada 24 horas). Se, durante a sincronização periódica, Q perceber que um servidor MCP instalado localmente não está mais presente no registro, ele encerrará esse servidor e impedirá que o usuário o adicione novamente. Se perceber que o servidor instalado localmente tem uma versão diferente do servidor no registro, ele reiniciará o servidor com a versão definida no registro.
Q: Plugins para desenvolvedores
Quando um usuário inicia o Q Developer, ele verifica se uma URL de registro está definida no perfil. Nesse caso, ele recuperará o JSON do registro nessa URL e garantirá que os usuários só possam usar os servidores MCP definidos no registro. Quando os usuários tentarem adicionar um servidor MCP, eles verão uma lista de servidores definidos no registro que podem ser selecionados.
Os usuários não podem modificar nenhum dos parâmetros (URL, identificador de pacote, RuntimeArguments etc.) de um servidor MCP de registro. No entanto, eles ainda podem fazer o seguinte:
Ajuste as permissões da ferramenta MCP (“Pedir para executar”, “Sempre executar” ou “Negar”).
Selecione o escopo do servidor MCP (Global ou Workspace).
Altere o tempo limite da solicitação.
Especifique variáveis de ambiente adicionais para servidores MCP locais.
Especifique cabeçalhos HTTP adicionais para servidores MCP remotos.
nota
Se o usuário especificar um cabeçalho env var ou HTTP que já esteja definido no registro, a definição do usuário terá precedência. Isso permite que os usuários especifiquem atributos específicos para sua configuração, por exemplo, chaves de autenticação ou caminhos de pastas locais.
Esquema JSON do registro MCP
Abaixo está a definição do esquema JSON para os arquivos JSON do registro MCP suportados pelo Q Developer. Você pode usar esse esquema para validar qualquer arquivo de registro que você criar.
{ "$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" }