Governance MCP per Q Developer - Amazon Q Developer

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Governance MCP per Q Developer

I clienti di livello professionale che utilizzano IAM Identity Center come metodo di accesso possono controllare l'accesso MCP per gli utenti all'interno della propria organizzazione. Per impostazione predefinita, gli utenti possono utilizzare qualsiasi server MCP nel loro client Q. In qualità di amministratore, hai la possibilità di disabilitare completamente l'uso dei server MCP da parte dei tuoi utenti o di specificare un elenco controllato di server MCP che i tuoi utenti possono utilizzare.

È possibile controllare queste restrizioni utilizzando un on/off interruttore MCP e un registro MCP. L'interruttore MCP e gli attributi di registro fanno parte del profilo Q Developer, che può essere definito a livello di organizzazione o a livello di account, con il profilo a livello di account che sostituisce il profilo a livello di organizzazione. È possibile specificare una politica MCP predefinita per l'organizzazione e sostituirla per account specifici; ad esempio, disabilitare MCP per l'organizzazione ma abilitarla con una lista di autorizzazioni per determinati team (account).

Nota

Sia l'interruttore che le impostazioni del registro vengono applicate sul lato client. Tieni presente che i tuoi utenti finali potrebbero aggirarla.

Disabilitazione di MCP per l’organizzazione

Per disabilitare MCP per il tuo account o la tua organizzazione:

  1. Apri la console Kiro.

  2. Seleziona Impostazioni.

  3. Scegli la scheda Q Developer.

  4. Disattiva Model Context Protocol (MCP).

Specificare una lista di autorizzazioni MCP per l'organizzazione

Per controllare a quali server MCP possono accedere gli utenti, crea un file JSON con i server consentiti, servilo tramite HTTPS e aggiungi l'URL al tuo profilo Q Developer. I client Q Developer che utilizzano questo profilo consentono agli utenti di accedere solo ai server MCP presenti nell'elenco delle autorizzazioni.

Specificazione dell'URL del registro MCP

  1. Apri la console Kiro.

  2. Seleziona Impostazioni.

  3. Scegli la scheda Q Developer.

  4. Assicurati che il Model Context Protocol (MCP) sia attivo.

  5. Nel campo URL del registro MCP, scegliete Modifica.

  6. Immettete l'URL di un file JSON del registro MCP contenente i server MCP elencati nell'elenco consentito.

  7. Scegli Save (Salva).

L'URL del registro MCP è crittografato sia in transito che a riposo in conformità alla nostra politica di crittografia dei dati.

Formato del file di registro MCP

Il formato del file JSON di registro è un sottoinsieme dello schema del server JSON nello standard di registro MCP v0.1. La definizione dello schema JSON per il sottoinsieme supportato da Q Developer è disponibile nella sezione dello schema del registro alla fine di questo documento.

L'esempio seguente mostra un file di registro MCP contenente una definizione di server MCP remoto (HTTP) e locale (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" } ] } ] } } ] }

La tabella seguente elenca le proprietà del file JSON di registro. Tutte le proprietà sono obbligatorie, se non diversamente specificato. Vedi la sezione relativa allo schema del registro per lo schema JSON completo.

Gli attributi annidati appaiono rientrati rispetto ai rispettivi attributi principali. Ad esempio, «headers» è un attributo figlio di «remotes» e «name» e «value» sono attributi secondari di «headers».

Attributo Description Facoltativo? Valore di esempio

Attributi comuni

name

Nome del server. Deve essere univoco all'interno di un determinato file di registro.

"aws-ccapi-mcp"

titolo

Nome del server leggibile dall'uomo.

«API AWS CC»

description

Descrizione del server.

«Gestisci AWS infra tramite linguaggio naturale».

version

Versione del server. Il controllo delle versioni semantiche (x.y.z) è fortemente consigliato.

«1.0.2"

Attributi del server remoto (HTTP)

telecomandi

Array con esattamente una voce che specifica l'endpoint remoto.

-

  tipo

Deve essere uno tra «streamable-http» o «sse».

«streamable-http»

  url

URL dell'endpoint del server MCP.

«/mcp» https://mcp.figma.com

  headers

Matrice di intestazioni HTTP da includere in ogni richiesta.

-

    name

Nome dell'intestazione HTTP.

«Autorizzazione»

    value

Valore dell'intestazione HTTP.

«Portatore MF_9.b5f-4.1jqm»

Attributi del server locale (stdio)

packages

Array con esattamente una voce contenente la definizione del server MCP.

-

  Tipo di registro

Deve essere uno tra «npm», «pypi» o «oci».

I seguenti pacchetti runner vengono utilizzati per scaricare ed eseguire il pacchetto server MCP:

  • Per il tipo di registro «npm», viene utilizzato il runner «npx»

  • Per «pypi», viene usato «uvx»

  • Per «oci», viene utilizzato «docker»

Le macchine client devono avere i pacchetti runner appropriati preinstallati.

«npm»

  registryBaseUrl

URL del registro del pacchetto.

"https://npm.acme.com"

  identificatore

Identificatore del pacchetto del server.

"@acme /mio-server»

  Trasporto

Oggetto con esattamente una proprietà, «tipo».

-

    tipo

Deve essere «stdio».

«stdio»

  Argomenti di runtime

Matrice di argomenti fornita al runtime, ovvero a npx, uvx o docker.

-

    tipo

Deve essere «posizionale».

«posizionale»

    value

Valore dell'argomento di runtime.

«-q»

  Argomenti del pacchetto

Matrice di argomenti fornita al server MCP.

-

    tipo

Deve essere «posizionale».

«posizionale»

    value

Valore dell'argomento del Package.

«inizio»

  Variabili d'ambiente

Matrice di variabili di ambiente da impostare prima di avviare il server.

-

    name

Nome della variabile di ambiente.

«LOG_LEVEL»

    value

Valore della variabile d'ambiente.

«INFORMAZIONI»

Servire il file di registro MCP

Servite il file JSON del registro MCP su HTTPS utilizzando qualsiasi server Web, come Amazon S3, Apache o nginx. L'URL deve essere accessibile ai client Q Developer sui computer degli utenti, ma può essere privato per la rete aziendale.

L'endpoint HTTPS deve avere un certificato SSL valido firmato da un'autorità di certificazione affidabile. I certificati autofirmati non sono supportati.

Q Developer recupera il registro MCP all'avvio e ogni 24 ore. Durante la sincronizzazione periodica, se un server MCP installato localmente non è più presente nel registro, Q Developer chiude quel server e impedisce agli utenti di aggiungerlo nuovamente. Se il server installato localmente ha una versione diversa da quella del server nel registro, Q Developer riavvia il server con la versione definita nel registro.

Plugin Q Developer

Quando gli utenti lanciano Q Developer, controlla se nel profilo è definito un URL di registro. In tal caso, recupera il JSON del registro in quell'URL e impone agli utenti di utilizzare solo i server MCP definiti nel registro. Quando gli utenti aggiungono un server MCP, Q Developer visualizza un elenco di server dal registro.

Schermata che mostra l'aggiunta di server MCP definiti nel registro.

I parametri del server MCP del registro (URL, identificatore del pacchetto, RuntimeArguments e così via) sono di sola lettura. Tuttavia, gli utenti possono:

  1. Modifica le autorizzazioni dello strumento MCP («Chiedi di eseguire», «Esegui sempre» o «Nega»).

  2. Seleziona l'ambito del server MCP (globale o Workspace).

  3. Modifica il timeout della richiesta.

  4. Specificate variabili di ambiente aggiuntive per i server MCP locali.

  5. Specificate intestazioni HTTP aggiuntive per i server MCP remoti.

Nota

Le variabili di ambiente o le intestazioni HTTP specificate dall'utente hanno la precedenza sulle definizioni del registro. Ciò consente agli utenti di specificare attributi specifici della propria configurazione, come le chiavi di autenticazione o i percorsi delle cartelle locali.

Schema JSON del registro MCP

Il seguente schema JSON definisce il formato di file di registro MCP supportato da Q Developer. È possibile utilizzare questo schema per convalidare tutti i file di registro creati.

{ "$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 (for example, '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 (for example, '^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 (for example, '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" }