Passer au contenu principal
Chaque requête vers le serveur MCP transporte une clé : celle que Claude ou ChatGPT a reçue lorsque vous l’avez autorisé, ou une clé API que vous avez créée. La clé a besoin du scope mcp pour se connecter, et ses autres scopes déterminent les outils que voit le client. Un outil hors des scopes de la clé n’est pas listé, et l’appeler répond comme pour un outil inconnu.

Scopes

Certains appels vérifient un scope d’après leurs arguments. get_metrics_history nécessite apps:read pour une application et databases:read pour une base de données. create_database avec connect_to_app nécessite aussi databases:credentials et envs:write, set_env_vars avec restart nécessite aussi apps:control, et commit_application avec snapshot nécessite aussi snapshots:write. Sans le scope requis, cet appel répond MISSING_SCOPE et rien ne s’exécute. Claude et ChatGPT demandent tous les scopes ci-dessus. Sur la page de consentement Square Cloud, vous pouvez décocher n’importe lequel sauf mcp, mais jamais en ajouter. Une connexion ne reçoit jamais account:read, apps:deploy, ai:chat ni les scopes de Blob Storage, car aucun outil MCP ne les utilise.
Certains scopes vont plus loin que leur nom ne le laisse penser. files:write modifie le code qu’exécute votre application, envs:write modifie sa configuration et ses secrets, et databases:credentials change les mots de passe des bases de données. Ne donnez à un client que ce dont il a besoin : pour un accès en lecture seule, utilisez mcp avec les scopes :read.

Clés restreintes à des applications et bases de données

Une clé API peut être limitée à certaines applications et bases de données. Via le MCP, une telle clé :
  • N’atteint que ces ressources. Un appel qui désigne toute autre application ou base de données répond RESOURCE_NOT_ALLOWED avant toute exécution, et list_applications et list_databases ne renvoient que les ressources de la clé.
  • Perd les outils à l’échelle du compte : get_all_applications_status, list_account_domains, list_workspaces, create_application, upload_application, create_database, connect_database et rotate_database_credentials (un renouvellement met à jour toutes les applications qui utilisent la base de données).
  • Désigne sa cible : list_snapshots et restore_snapshot ont besoin de l’application ou de la base de données, puisque la vue d’ensemble du compte couvre des ressources hors de la clé.
Les connexions Claude et ChatGPT couvrent tout le compte. Pour limiter un client d’IA à certaines applications, connectez-le avec une clé API restreinte.

Chaque modification est exécutée immédiatement

Tous les outils agissent dès le premier appel, y compris pour supprimer une application ou une base de données et restaurer un snapshot. Square Cloud ne vous demande rien avant : c’est votre client d’IA qui décide quand appeler un outil. Chaque outil indique au client s’il se contente de lire ou s’il peut détruire quelque chose, et la plupart des clients demandent votre permission avant un outil destructif : laissez cette demande activée.

Suppressions et restaurations

delete_application, delete_database et restore_snapshot sont irréversibles, donc Square Cloud prend un snapshot de sécurité de l’application ou de la base de données avant d’agir, sauf s’il en existe un des dernières minutes. Le champ safety_snapshot du résultat indique quel cas s’est produit : Tant que le snapshot est encore en cours de génération, rien ne s’exécute : l’appel répond SNAPSHOT_NOT_READY et le client réessaie avec les mêmes arguments dans 2 minutes environ. Le snapshot de sécurité compte dans la limite quotidienne de snapshots de votre plan. Après une suppression, il reste dans le tableau de bord, prêt à être téléchargé et envoyé comme nouvelle application : restore_snapshot ne restaure que des applications et des bases de données qui existent encore.

Secrets

  • list_env_vars ne renvoie que les noms des variables et, d’une URL de connexion, seulement son schéma et son hôte.
  • Les outils de fichiers ne lisent, n’écrivent ni ne suppriment jamais les fichiers .env (ni *.env, .env-* et .envrc ; un gabarit comme .env.example peut être lu) et ne lisent jamais les clés privées ni les certificats (.pem, .key, .p12, .pfx, .ppk, .jks et les clés SSH comme id_rsa).
  • Les secrets reconnus dans les logs des applications sont masqués.
  • Les liens de téléchargement des snapshots et des certificats ne sont jamais envoyés.
Les logs et les fichiers de vos applications sont du contenu que lit le modèle, et le texte qu’ils contiennent pourrait tenter de l’orienter. Vérifiez ce que propose le client avant de l’autoriser.

Fil d’activité

Les modifications faites via le MCP apparaissent dans votre fil d’activité (plans Standard et supérieurs) avec MCP comme origine, sous la même action que dans le tableau de bord : un redémarrage, un envoi de fichier, une modification de variable d’environnement. Les lectures ne sont pas enregistrées. L’autorisation de Claude ou de ChatGPT apparaît comme une autorisation de client.