Zum Hauptinhalt springen
Jede Anfrage an den MCP-Server trägt einen Schlüssel: den, den Claude oder ChatGPT bei deiner Autorisierung erhalten hat, oder einen API-Schlüssel, den du erstellt hast. Der Schlüssel braucht den Scope mcp, um sich zu verbinden, und seine übrigen Scopes legen fest, welche Tools der Client sieht. Ein Tool außerhalb der Scopes des Schlüssels wird nicht aufgelistet, und ein Aufruf antwortet wie bei einem unbekannten Tool.

Scopes

Manche Aufrufe prüfen einen Scope anhand ihrer Argumente. get_metrics_history braucht apps:read für eine Anwendung und databases:read für eine Datenbank. create_database mit connect_to_app braucht außerdem databases:credentials und envs:write, set_env_vars mit restart braucht außerdem apps:control, und commit_application mit snapshot braucht außerdem snapshots:write. Ohne den nötigen Scope antwortet der Aufruf mit MISSING_SCOPE, und nichts läuft. Claude und ChatGPT fordern alle oben genannten Scopes an. Auf der Zustimmungsseite von Square Cloud kannst du jeden davon außer mcp abwählen, aber nie einen hinzufügen. Eine Verbindung erhält nie account:read, apps:deploy, ai:chat oder die Scopes von Blob Storage, weil kein MCP-Tool sie nutzt.
Manche Scopes reichen weiter, als ihr Name vermuten lässt. files:write ändert den Code, den deine Anwendung ausführt, envs:write ändert ihre Konfiguration und Geheimnisse, und databases:credentials rotiert Datenbankpasswörter. Gib einem Client nur, was er braucht: Für reinen Lesezugriff nutze mcp mit den :read-Scopes.

Auf Anwendungen und Datenbanken beschränkte Schlüssel

Ein API-Schlüssel lässt sich auf bestimmte Anwendungen und Datenbanken beschränken. Über den MCP-Server gilt für einen solchen Schlüssel:
  • Er erreicht nur diese Ressourcen. Ein Aufruf, der eine andere Anwendung oder Datenbank nennt, antwortet mit RESOURCE_NOT_ALLOWED, bevor etwas läuft, und list_applications und list_databases liefern nur die Ressourcen des Schlüssels.
  • Er verliert die kontoweiten Tools: get_all_applications_status, list_account_domains, list_workspaces, create_application, upload_application, create_database, connect_database und rotate_database_credentials (eine Rotation aktualisiert jede Anwendung, die die Datenbank nutzt).
  • Er nennt sein Ziel: list_snapshots und restore_snapshot brauchen die Anwendung oder Datenbank, weil die kontoweite Übersicht Ressourcen außerhalb des Schlüssels abdeckt.
Verbindungen von Claude und ChatGPT umfassen das ganze Konto. Um einen KI-Client auf bestimmte Anwendungen zu begrenzen, verbinde ihn mit einem beschränkten API-Schlüssel.

Jede Änderung läuft sofort

Jedes Tool handelt schon beim ersten Aufruf, auch beim Löschen einer Anwendung oder Datenbank und beim Wiederherstellen eines Snapshots. Square Cloud fragt dich nicht vorher: Wann ein Tool aufgerufen wird, entscheidet dein KI-Client. Jedes Tool teilt dem Client mit, ob es nur liest oder etwas zerstören kann, und die meisten Clients fragen vor einem destruktiven Tool nach deiner Erlaubnis: Lass diese Abfrage eingeschaltet.

Löschungen und Wiederherstellungen

delete_application, delete_database und restore_snapshot lassen sich nicht rückgängig machen. Deshalb erstellt Square Cloud vor der Aktion einen Sicherheits-Snapshot der Anwendung oder Datenbank, sofern es keinen aus den letzten Minuten gibt. Das Feld safety_snapshot im Ergebnis sagt, welcher Fall eingetreten ist: Solange der Snapshot noch erstellt wird, läuft nichts: Der Aufruf antwortet mit SNAPSHOT_NOT_READY, und der Client versucht es in etwa 2 Minuten mit denselben Argumenten erneut. Der Sicherheits-Snapshot zählt zum täglichen Snapshot-Kontingent deines Plans. Nach einer Löschung bleibt er im Dashboard, bereit zum Herunterladen und zum Hochladen als neue Anwendung: restore_snapshot stellt nur Anwendungen und Datenbanken wieder her, die noch existieren.

Geheimnisse

  • list_env_vars liefert nur die Namen der Variablen und von einer Verbindungs-URL nur Schema und Host.
  • Die Datei-Tools lesen, schreiben oder löschen nie .env-Dateien (auch nicht *.env, .env-* und .envrc; eine Vorlage wie .env.example kann gelesen werden) und lesen nie private Schlüssel oder Zertifikate (.pem, .key, .p12, .pfx, .ppk, .jks und SSH-Schlüssel wie id_rsa).
  • In Anwendungslogs erkannte Geheimnisse werden maskiert.
  • Download-Links von Snapshots und Zertifikaten werden nie gesendet.
Logs und Dateien deiner Anwendungen sind Inhalte, die das Modell liest, und Text darin könnte versuchen, es zu steuern. Prüfe, was der Client vorschlägt, bevor du es erlaubst.

Aktivitätsprotokoll

Über den MCP-Server vorgenommene Änderungen erscheinen in deinem Aktivitätsprotokoll (ab den Standard-Plänen) mit MCP als Ursprung, unter derselben Aktion wie im Dashboard: ein Neustart, ein Datei-Upload, eine Änderung an Umgebungsvariablen. Lesezugriffe werden nicht aufgezeichnet. Die Autorisierung von Claude oder ChatGPT erscheint als Client-Autorisierung.