Par défaut, vos utilisateurs peuvent utiliser n'importe quel serveur MCP dans leur client Kiro. En tant qu'administrateur, vous avez la possibilité de désactiver entièrement l'utilisation des serveurs MCP par vos utilisateurs, ou de spécifier une liste vérifiée de serveurs MCP que vos utilisateurs sont autorisés à utiliser.
Vous contrôlez ces restrictions à l'aide d'un bouton d'activation/désactivation MCP et d'un attribut de registre MCP qui font partie du profil Kiro. Ces profils peuvent être définis au niveau de l'organisation ou au niveau du compte, le profil au niveau du compte remplaçant le profil au niveau de l'organisation. Vous pouvez spécifier une politique MCP par défaut pour votre organisation et la remplacer pour des comptes précis; par exemple, désactiver MCP pour l'organisation, mais l'activer avec une liste d'autorisation pour certaines équipes (comptes).
La gouvernance MCP s'applique aux utilisateurs qui s'authentifient avec IAM Identity Center ou des clés API. Les utilisateurs de Builder ID et de l'authentification sociale ne sont pas soumis aux contrôles MCP au niveau de l'organisation.
Pour désactiver MCP pour votre compte ou votre organisation :
Lorsque MCP est désactivé, le client supprime tous les serveurs MCP — configurés par l'utilisateur, existants, du registre et injectés par la session — et aucun outil MCP n'est disponible pour l'agent. Le panneau /mcp affiche MCP has been disabled by your administrator.
MCP échoue également de manière fermée si le client ne peut pas atteindre l'API de gouvernance : MCP est désactivé et /mcp affiche Failed to retrieve MCP settings — MCP disabled. Les événements d'échec fermé sont généralement transitoires et se résolvent une fois que le client se reconnecte à l'API de gouvernance.
Pour contrôler les serveurs MCP auxquels vos utilisateurs peuvent accéder, créez un fichier JSON avec les serveurs autorisés, servez-le via HTTPS et ajoutez l'URL à votre profil Kiro. Les clients Kiro utilisant ce profil permettent aux utilisateurs d'accéder uniquement aux serveurs MCP figurant dans votre liste d'autorisation.
L'URL du registre MCP est chiffrée à la fois en transit et au repos, conformément à notre politique de chiffrement des données.
Le format du fichier JSON de registre est un sous-ensemble du schéma JSON de serveur défini dans la norme du registre MCP v0.1. La définition du schéma JSON pour le sous-ensemble pris en charge par Kiro est disponible dans la section schéma du registre à la fin de ce document.
L'exemple suivant montre un fichier de registre MCP contenant à la fois une définition de serveur MCP distant (HTTP) et 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" } ] } ] } } ] }
Le tableau suivant liste les propriétés du fichier JSON de registre. Toutes les propriétés sont obligatoires, sauf indication contraire. Consultez la section schéma du registre pour le schéma JSON complet.
Les attributs imbriqués apparaissent en retrait par rapport à leur parent. Par exemple, « headers » est un attribut enfant de « remotes », et « name » et « value » sont des attributs enfants de « headers ».
| Attribut | Description | Facultatif? | Exemple de valeur |
|---|---|---|---|
| Attributs communs | |||
| name | Nom du serveur. Doit être unique au sein d'un fichier de registre donné. | "aws-ccapi-mcp" | |
| title | Nom du serveur lisible par un humain. | Oui | "AWS CC API" |
| description | Description du serveur. | "Manage AWS infra through natural language." | |
| version | Version du serveur. Le versionnage sémantique (x.y.z) est fortement recommandé. | "1.0.2" | |
| Attributs de serveur distant (HTTP) | |||
| remotes | Tableau contenant exactement une entrée précisant le point de terminaison distant. | - | |
| type | Doit être « streamable-http » ou « sse ». | "streamable-http" | |
| url | URL du point de terminaison du serveur MCP. | "https://mcp.figma.com/mcp" | |
| headers | Tableau des en-têtes HTTP à inclure dans chaque requête. | Oui | - |
| name | Nom de l'en-tête HTTP. | "Authorization" | |
| value | Valeur de l'en-tête HTTP. | "Bearer mF_9.B5f-4.1JqM" | |
| Attributs de serveur local (stdio) | |||
| packages | Tableau contenant exactement une entrée contenant la définition du serveur MCP. | - | |
| registryType | Doit être « npm », « pypi » ou « oci ». Les gestionnaires de paquets suivants sont utilisés pour télécharger et exécuter le paquet du serveur MCP :
Les machines clientes doivent avoir les gestionnaires de paquets appropriés préinstallés. | “npm” | |
| registryBaseUrl | URL du registre de paquets. | Oui | "https://npm.acme.com" |
| identifier | Identifiant du paquet du serveur. | "@acme/my-server" | |
| transport | Objet avec exactement une propriété, « type ». | - | |
| type | Doit être « stdio ». | “stdio” | |
| runtimeArguments | Tableau des arguments fournis à l'environnement d'exécution, c'est-à-dire à npx, uvx ou docker. | Oui | - |
| type | Doit être « positional ». | “positional” | |
| value | Valeur de l'argument d'exécution. | “-q” | |
| packageArguments | Tableau des arguments fournis au serveur MCP. | Oui | - |
| type | Doit être « positional ». | “positional” | |
| value | Valeur de l'argument du paquet. | “start” | |
| environmentVariables | Tableau des variables d'environnement à définir avant de démarrer le serveur. | Oui | - |
| name | Nom de la variable d'environnement. | "LOG_LEVEL" | |
| value | Valeur de la variable d'environnement. | “INFO” | |
Servez le fichier JSON de registre MCP via HTTPS à l'aide de n'importe quel serveur Web, tel qu'Amazon S3, Apache ou nginx. L'URL doit être accessible aux clients Kiro sur les ordinateurs de vos utilisateurs, mais peut être privée à votre réseau d'entreprise.
Le point de terminaison HTTPS doit disposer d'un certificat SSL valide signé par une autorité de certification de confiance. Les certificats autosignés ne sont pas pris en charge.
Kiro récupère le registre MCP au démarrage et toutes les 24 heures. Pendant la synchronisation périodique, si un serveur MCP installé localement n'est plus présent dans le registre, Kiro met fin à ce serveur et empêche les utilisateurs de le rajouter. Si le serveur installé localement a une version différente de celle du serveur dans le registre, Kiro relance le serveur avec la version définie dans le registre.
Les paramètres du serveur MCP du registre (URL, identifiant de paquet, runtimeArguments, etc.) sont en lecture seule. Toutefois, les utilisateurs peuvent :
Les variables d'environnement ou en-têtes HTTP spécifiés par l'utilisateur remplacent les définitions du registre. Cela permet aux utilisateurs de préciser des attributs propres à leur configuration, comme des clés d'authentification ou des chemins de dossiers locaux.
Le schéma JSON suivant définit le format de fichier de registre MCP pris en charge par Kiro. Vous pouvez utiliser ce schéma pour valider les fichiers de registre que vous créez.
{ "$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", "minItems": 0, "maxItems": 1 }, "remotes": { "items": { "anyOf": [ { "$ref": "#/definitions/StreamableHttpTransport" }, { "$ref": "#/definitions/SseTransport" } ] }, "type": "array", "minItems": 0, "maxItems": 1 } }, "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" }
MCP