Governança de MCP para Q Developer - Amazon Q Developer

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.

Você controla essas restrições usando um on/off botão MCP e um registro MCP. 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. Você pode especificar uma política MCP padrão para sua organização e substituí-la para contas específicas; por exemplo, desative o MCP para a organização, mas habilite-o 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:

  1. Abra o console Kiro.

  2. Escolha Configurações.

  3. Escolha a guia Q Developer.

  4. Alterne o Model Context Protocol (MCP) para Off.

Especificando uma lista de permissões de MCP para sua organização

Para controlar quais servidores MCP seus usuários podem acessar, crie um arquivo JSON com os servidores permitidos, sirva-o por HTTPS e adicione a URL ao seu perfil do Q Developer. Os clientes Q Developer que usam esse perfil permitem que os usuários acessem somente os servidores MCP em sua lista de permissões.

Especificando o URL do registro MCP

  1. Abra o console Kiro.

  2. Escolha Configurações.

  3. Escolha a guia Q Developer.

  4. Verifique se o Model Context Protocol (MCP) está ativado.

  5. No campo URL do registro MCP, escolha Editar.

  6. Insira a URL de um arquivo JSON do registro MCP contendo os servidores MCP listados como permitidos.

  7. Escolha Salvar.

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 v0.1. A definição do esquema JSON para o subconjunto suportado pelo Q Developer está disponível na seção esquema do registro no final deste documento.

O exemplo a seguir mostra 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 lista as propriedades 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 aparecem recuados 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

name

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”

descrição

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

-

    name

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:

  • Para o tipo de registro “npm”, o executor “npx” é usado

  • Para “pypi”, “uvx” é usado

  • Para “oci”, “docker” é usado

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

Conjunto de variáveis de ambiente a serem definidas antes de iniciar o servidor.

Sim

-

    name

Nome da variável de ambiente.

“NÍVEL_LOG”

    valor

Valor da variável de ambiente.

“INFORMAÇÃO”

Servindo o arquivo de registro MCP

Ofereça o arquivo JSON do registro MCP via HTTPS usando qualquer servidor web, como Amazon S3, Apache ou nginx. O URL deve estar acessível aos clientes do Q Developer nos computadores de seus usuários, mas pode ser privado em sua rede corporativa.

O endpoint HTTPS deve ter um certificado SSL válido assinado por uma autoridade de certificação confiável. Não há suporte para certificados autoassinados.

O Q Developer busca o registro MCP na inicialização e a cada 24 horas. Durante a sincronização periódica, se um servidor MCP instalado localmente não estiver mais no registro, o Q Developer encerra esse servidor e impede que os usuários o adicionem novamente. Se o servidor instalado localmente tiver uma versão diferente do servidor no registro, o Q Developer reiniciará o servidor com a versão definida no registro.

Q: Plugins para desenvolvedores

Quando os usuários iniciam o Q Developer, ele verifica se uma URL de registro está definida no perfil. Nesse caso, ele recupera o JSON do registro nessa URL e determina que os usuários só possam usar os servidores MCP definidos no registro. Quando os usuários adicionam um servidor MCP, o Q Developer exibe uma lista de servidores do registro.

Captura de tela mostrando a adição de servidores MCP definidos no registro.

Os parâmetros do servidor MCP de registro (URL, identificador de pacote, RuntimeArguments etc.) são somente para leitura. No entanto, os usuários podem:

  1. Ajuste as permissões da ferramenta MCP (“Pedir para executar”, “Sempre executar” ou “Negar”).

  2. Selecione o escopo do servidor MCP (Global ou Workspace).

  3. Altere o tempo limite da solicitação.

  4. Especifique variáveis de ambiente adicionais para servidores MCP locais.

  5. Especifique cabeçalhos HTTP adicionais para servidores MCP remotos.

nota

Variáveis de ambiente ou cabeçalhos HTTP especificados pelo usuário substituem as definições do registro. Isso permite que os usuários especifiquem atributos específicos para sua configuração, como chaves de autenticação ou caminhos de pastas locais.

Esquema JSON do registro MCP

O esquema JSON a seguir define o formato de arquivo de registro MCP suportado 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": { "type": { "enum": [ "positional" ], "example": "positional", "type": "string" }, "value": { "description": "The value for the input.", "type": "string" } }, "required": [ "type", "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" }