> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP-Berechtigungen und Sicherheit

> Wie Scopes und beschränkte API-Schlüssel festlegen, was ein KI-Client auf dem MCP-Server von Square Cloud darf, wie Löschungen und Wiederherstellungen einen Sicherheits-Snapshot anlegen, dazu das Aktivitätsprotokoll.

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](https://docs.squarecloud.app/de/mcp/connect.md#einen-api-schlüssel-erstellen), den du erstellt hast. Der Schlüssel braucht den Scope `mcp`, um sich zu verbinden, und seine übrigen Scopes legen fest, welche [Tools](https://docs.squarecloud.app/de/mcp/tools.md) 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

| Scope | Freigeschaltete Tools |
| - | - |
| `mcp` | Nötig zum Verbinden. Allein gibt er die Tools frei, die keinen weiteren Scope brauchen: `get_platform_knowledge`, `search_help_center`, `list_help_center`, `get_platform_status` und `get_discord_status`. |
| `apps:read` | `list_applications`, `get_application_status`, `get_all_applications_status`, `get_application_logs`, `get_deployments`, `get_metrics_history` (Anwendungen), `list_account_domains`, `list_dns_records`, `get_network_analytics`, `get_network_errors`, `get_network_performance`, `get_network_logs` |
| `apps:control` | `start_application`, `stop_application`, `restart_application` |
| `apps:write` | `create_application`, `upload_application`, `purge_network_cache`, `set_custom_domain`, `delete_application` |
| `files:read` | `list_files`, `read_file`, `search_files` |
| `files:write` | `create_file`, `edit_file`, `patch_file`, `rename_file`, `delete_file`, `edit_config_file`, `commit_application` |
| `envs:read` | `list_env_vars` |
| `envs:write` | `set_env_vars`, und zusammen mit `databases:credentials`: `connect_database`, `rotate_database_credentials` und `create_database` mit `connect_to_app` |
| `snapshots:read` | `list_snapshots` |
| `snapshots:write` | `create_snapshot`, `restore_snapshot`, und `commit_application` mit `snapshot` |
| `databases:read` | `list_databases`, `get_metrics_history` (Datenbanken) |
| `databases:write` | `create_database`, `start_database`, `stop_database`, `update_database`, `delete_database` |
| `databases:credentials` | Zusammen mit `envs:write`: `connect_database`, `rotate_database_credentials` und `create_database` mit `connect_to_app` |
| `workspaces:manage` | `list_workspaces` |

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.

> [!WARNING]
>
> 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](https://docs.squarecloud.app/de/api-reference/authentication.md#einen-schlüssel-auf-ressourcen-beschränken) 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:

| `status` | Bedeutung |
| - | - |
| `created` | Ein Sicherheits-Snapshot wurde erstellt. |
| `recent` | Es gab bereits einen Snapshot aus den letzten Minuten. |
| `none` | Es konnte kein Snapshot erstellt werden, und die Aktion lief trotzdem. `reason` ist `daily_limit`, wenn das tägliche Snapshot-Kontingent deines Plans aufgebraucht ist, sonst `failed`. |

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.

> [!NOTE]
>
> 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](https://squarecloud.app/de/dashboard/activity) (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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.