> ## 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.

# Permessi MCP e sicurezza

> Come gli scope e le chiavi API limitate decidono cosa può fare un client AI sul server MCP di Square Cloud, come eliminazioni e ripristini conservano uno snapshot di sicurezza, e il feed delle attività.

Ogni richiesta al server MCP porta con sé una chiave: quella che Claude o ChatGPT hanno ricevuto quando li hai autorizzati, oppure una [chiave API](https://docs.squarecloud.app/it/mcp/connect.md#crea-una-chiave-api) che hai creato. La chiave ha bisogno dello scope `mcp` per connettersi, e i suoi altri scope decidono quali [tool](https://docs.squarecloud.app/it/mcp/tools.md) vede il client. Un tool fuori dagli scope della chiave non viene elencato, e chiamarlo dà la stessa risposta di un tool sconosciuto.

## Scope

| Scope | Tool che sblocca |
| - | - |
| `mcp` | Necessario per connettersi. Da solo dà accesso ai tool che non richiedono altri scope: `get_platform_knowledge`, `search_help_center`, `list_help_center`, `get_platform_status` e `get_discord_status`. |
| `apps:read` | `list_applications`, `get_application_status`, `get_all_applications_status`, `get_application_logs`, `get_deployments`, `get_metrics_history` (applicazioni), `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`, e con `databases:credentials`: `connect_database`, `rotate_database_credentials` e `create_database` con `connect_to_app` |
| `snapshots:read` | `list_snapshots` |
| `snapshots:write` | `create_snapshot`, `restore_snapshot`, e `commit_application` con `snapshot` |
| `databases:read` | `list_databases`, `get_metrics_history` (database) |
| `databases:write` | `create_database`, `start_database`, `stop_database`, `update_database`, `delete_database` |
| `databases:credentials` | Con `envs:write`: `connect_database`, `rotate_database_credentials` e `create_database` con `connect_to_app` |
| `workspaces:manage` | `list_workspaces` |

Alcune chiamate verificano uno scope in base ai loro argomenti. `get_metrics_history` richiede `apps:read` per un'applicazione e `databases:read` per un database. `create_database` con `connect_to_app` richiede anche `databases:credentials` ed `envs:write`, `set_env_vars` con `restart` richiede anche `apps:control`, e `commit_application` con `snapshot` richiede anche `snapshots:write`. Senza lo scope richiesto, quella chiamata risponde `MISSING_SCOPE` e non viene eseguito nulla.

Claude e ChatGPT richiedono tutti gli scope qui sopra. Nella pagina di consenso di Square Cloud puoi deselezionarne uno qualsiasi tranne `mcp`, ma non puoi mai aggiungerne. Una connessione non riceve mai `account:read`, `apps:deploy`, `ai:chat` né gli scope di Blob Storage, perché nessun tool MCP li usa.

> [!WARNING]
>
> Alcuni scope arrivano più lontano di quanto suggerisca il nome. `files:write` modifica il codice che la tua applicazione esegue, `envs:write` ne modifica la configurazione e i segreti, e `databases:credentials` ruota le password dei database. Dai a un client solo ciò di cui ha bisogno: per un accesso in sola lettura, usa `mcp` con gli scope `:read`.

## Chiavi limitate ad applicazioni e database

Una [chiave API](https://docs.squarecloud.app/it/api-reference/authentication.md#limitare-una-chiave-a-risorse-specifiche) può essere limitata ad alcune applicazioni e database. Tramite l'MCP, una chiave del genere:

* **Raggiunge solo quelle risorse.** Una chiamata che indica qualsiasi altra applicazione o database risponde `RESOURCE_NOT_ALLOWED` prima che venga eseguito qualcosa, e `list_applications` e `list_databases` restituiscono solo le risorse della chiave.
* **Perde i tool che riguardano l'intero account:** `get_all_applications_status`, `list_account_domains`, `list_workspaces`, `create_application`, `upload_application`, `create_database`, `connect_database` e `rotate_database_credentials` (una rotazione aggiorna tutte le applicazioni che usano il database).
* **Indica la risorsa:** `list_snapshots` e `restore_snapshot` richiedono l'applicazione o il database, perché la panoramica dell'intero account copre risorse fuori dalla chiave.

Le connessioni di Claude e ChatGPT coprono l'intero account. Per limitare un client AI ad alcune applicazioni, collegalo con una chiave API limitata.

## Ogni modifica viene eseguita subito

Tutti i tool agiscono già alla prima chiamata, compresi l'eliminazione di un'applicazione o di un database e il ripristino di uno snapshot. Square Cloud non ti chiede nulla prima: quando chiamare un tool lo decide il tuo client AI. Ogni tool indica al client se si limita a leggere o se può distruggere qualcosa, e la maggior parte dei client chiede il tuo permesso prima di un tool distruttivo: tieni attiva quella richiesta.

## Eliminazioni e ripristini

`delete_application`, `delete_database` e `restore_snapshot` non si possono annullare, quindi Square Cloud fa uno snapshot di sicurezza dell'applicazione o del database prima di agire, a meno che non ne esista già uno degli ultimi minuti. Il campo `safety_snapshot` del risultato indica quale caso si è verificato:

| `status` | Significato |
| - | - |
| `created` | È stato fatto uno snapshot di sicurezza. |
| `recent` | Esisteva già uno snapshot degli ultimi minuti. |
| `none` | Non è stato possibile fare uno snapshot, e l'azione è stata eseguita comunque. `reason` è `daily_limit` quando il limite giornaliero di snapshot del tuo piano è esaurito, altrimenti `failed`. |

Finché lo snapshot è ancora in fase di generazione, non viene eseguito nulla: la chiamata risponde `SNAPSHOT_NOT_READY` e il client riprova con gli stessi argomenti tra circa 2 minuti.

Lo snapshot di sicurezza conta nel limite giornaliero di snapshot del tuo piano. Dopo un'eliminazione, resta nella dashboard, pronto da scaricare e caricare come nuova applicazione: `restore_snapshot` ripristina solo applicazioni e database che esistono ancora.

## Segreti

* `list_env_vars` restituisce solo i nomi delle variabili e, di un URL di connessione, solo lo schema e l'host.
* I tool dei file non leggono, scrivono né eliminano mai i file `.env` (né `*.env`, `.env-*` e `.envrc`; un template come `.env.example` può essere letto) e non leggono mai chiavi private o certificati (`.pem`, `.key`, `.p12`, `.pfx`, `.ppk`, `.jks` e chiavi SSH come `id_rsa`).
* I segreti riconosciuti nei log delle applicazioni vengono mascherati.
* I link di download di snapshot e certificati non vengono mai inviati.

> [!NOTE]
>
> Log e file delle tue applicazioni sono contenuti che il modello legge, e il testo al loro interno potrebbe cercare di manipolarlo. Controlla cosa propone il client prima di consentirlo.

## Feed delle attività

Le modifiche fatte tramite l'MCP appaiono nel tuo [feed delle attività](https://squarecloud.app/it/dashboard/activity) (piani Standard e superiori) con **MCP** come origine, sotto la stessa azione della dashboard: un riavvio, il caricamento di un file, la modifica di una variabile d'ambiente. Le letture non vengono registrate. L'autorizzazione di Claude o ChatGPT appare come autorizzazione di un client.


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