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

# Permissões e segurança do MCP

> Como os escopos e as chaves de API restritas decidem o que um cliente de IA pode fazer no servidor MCP da Square Cloud, como exclusões e restaurações guardam um snapshot de segurança e o feed de atividades.

Toda requisição ao servidor MCP leva uma chave: a que o Claude ou o ChatGPT recebeu quando você o autorizou, ou uma [chave de API](https://docs.squarecloud.app/pt-br/mcp/connect.md#criar-uma-chave-de-api) que você criou. A chave precisa do escopo `mcp` para conectar, e os outros escopos dela decidem quais [ferramentas](https://docs.squarecloud.app/pt-br/mcp/tools.md) o cliente vê. Uma ferramenta fora dos escopos da chave não aparece na lista, e chamá-la responde como uma ferramenta desconhecida.

## Escopos

| Escopo | Ferramentas que ele libera |
| - | - |
| `mcp` | Obrigatório para conectar. Sozinho, ele dá as ferramentas que não precisam de outro escopo: `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` (aplicações), `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, com `databases:credentials`: `connect_database`, `rotate_database_credentials` e `create_database` com `connect_to_app` |
| `snapshots:read` | `list_snapshots` |
| `snapshots:write` | `create_snapshot`, `restore_snapshot` e `commit_application` com `snapshot` |
| `databases:read` | `list_databases`, `get_metrics_history` (bancos de dados) |
| `databases:write` | `create_database`, `start_database`, `stop_database`, `update_database`, `delete_database` |
| `databases:credentials` | Com `envs:write`: `connect_database`, `rotate_database_credentials` e `create_database` com `connect_to_app` |
| `workspaces:manage` | `list_workspaces` |

Algumas chamadas verificam um escopo a partir dos argumentos. `get_metrics_history` precisa de `apps:read` para uma aplicação e de `databases:read` para um banco de dados. `create_database` com `connect_to_app` também precisa de `databases:credentials` e `envs:write`, `set_env_vars` com `restart` também precisa de `apps:control`, e `commit_application` com `snapshot` também precisa de `snapshots:write`. Sem o escopo exigido, essa chamada responde `MISSING_SCOPE` e nada roda.

Claude e ChatGPT pedem todos os escopos acima. Na página de consentimento da Square Cloud, você pode desmarcar qualquer um deles, exceto `mcp`, mas nunca adicionar um. Uma conexão nunca recebe `account:read`, `apps:deploy`, `ai:chat` nem os escopos do Blob Storage, porque nenhuma ferramenta do MCP os usa.

> [!WARNING]
>
> Alguns escopos vão além do que o nome sugere. `files:write` muda o código que a sua aplicação executa, `envs:write` muda a configuração e os segredos dela, e `databases:credentials` troca as senhas do banco de dados. Dê a um cliente apenas o que ele precisa: para acesso somente leitura, use `mcp` com os escopos `:read`.

## Chaves restritas a aplicações e bancos de dados

Uma [chave de API](https://docs.squarecloud.app/pt-br/api-reference/authentication.md#restringindo-uma-chave-a-recursos) pode ser limitada a algumas aplicações e bancos de dados. Pelo MCP, uma chave assim:

* **Só alcança esses recursos.** Uma chamada que cita qualquer outra aplicação ou banco de dados responde `RESOURCE_NOT_ALLOWED` antes de qualquer coisa rodar, e `list_applications` e `list_databases` retornam apenas os recursos da chave.
* **Perde as ferramentas da conta inteira:** `get_all_applications_status`, `list_account_domains`, `list_workspaces`, `create_application`, `upload_application`, `create_database`, `connect_database` e `rotate_database_credentials` (uma troca de credenciais atualiza todas as aplicações que usam o banco de dados).
* **Precisa indicar o alvo:** `list_snapshots` e `restore_snapshot` precisam da aplicação ou do banco de dados, já que a visão geral da conta inteira cobre recursos fora da chave.

As conexões do Claude e do ChatGPT cobrem a conta inteira. Para limitar um cliente de IA a algumas aplicações, conecte-o com uma chave de API restrita.

## Toda mudança roda na hora

Toda ferramenta age já na primeira chamada, inclusive para excluir uma aplicação ou um banco de dados e restaurar um snapshot. A Square Cloud não pergunta a você antes: quando chamar uma ferramenta é decisão do seu cliente de IA. Toda ferramenta informa ao cliente se ela só lê ou se pode destruir algo, e a maioria dos clientes pede sua permissão antes de uma ferramenta destrutiva: mantenha esse aviso ligado.

## Exclusões e restaurações

`delete_application`, `delete_database` e `restore_snapshot` não podem ser desfeitos, então a Square Cloud tira um snapshot de segurança da aplicação ou do banco de dados antes de agir, a menos que já exista um dos últimos minutos. O `safety_snapshot` do resultado diz qual foi o caso:

| `status` | Significado |
| - | - |
| `created` | Um snapshot de segurança foi tirado. |
| `recent` | Já existia um snapshot dos últimos minutos. |
| `none` | Não foi possível tirar um snapshot, e a ação rodou mesmo assim. `reason` é `daily_limit` quando o limite diário de snapshots do seu plano acabou, ou `failed`. |

Enquanto o snapshot ainda está sendo gerado, nada roda: a chamada responde `SNAPSHOT_NOT_READY` e o cliente tenta de novo com os mesmos argumentos em cerca de 2 minutos.

O snapshot de segurança conta para o limite diário de snapshots do seu plano. Depois de uma exclusão, ele fica no dashboard, pronto para baixar e enviar como uma nova aplicação: `restore_snapshot` só restaura aplicações e bancos de dados que ainda existem.

## Segredos

* `list_env_vars` retorna apenas os nomes das variáveis e, de uma URL de conexão, só o esquema e o host.
* As ferramentas de arquivos nunca leem, escrevem ou excluem arquivos `.env` (nem `*.env`, `.env-*` e `.envrc`; um arquivo de exemplo como `.env.example` pode ser lido) e nunca leem chaves privadas nem certificados (`.pem`, `.key`, `.p12`, `.pfx`, `.ppk`, `.jks` e chaves SSH como `id_rsa`).
* Segredos reconhecidos nos logs das aplicações são mascarados.
* Links de download de snapshots e de certificados nunca são enviados.

> [!NOTE]
>
> Os logs e os arquivos das suas aplicações são conteúdo que o modelo lê, e um texto neles pode tentar direcioná-lo. Revise o que o cliente propõe antes de permitir.

## Feed de atividades

As mudanças feitas pelo MCP aparecem no seu [feed de atividades](https://squarecloud.app/pt-br/dashboard/activity) (planos Standard e acima) com **MCP** como origem, sob a mesma ação que no dashboard: um reinício, um upload de arquivo, uma mudança de variável de ambiente. Leituras não são registradas. Autorizar o Claude ou o ChatGPT aparece como uma autorização de cliente.


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