> ## 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 の権限と安全性

> Square Cloud MCP サーバーで AI クライアントができることをスコープと制限付き API キーがどう決めるか、削除と復元で安全用スナップショットがどう残るか、そしてアクティビティフィードについて説明します。

MCP サーバーへのすべてのリクエストにはキーが付いています。Claude や ChatGPT を認可したときに受け取ったキーか、あなたが作成した [API キー](https://docs.squarecloud.app/ja/mcp/connect.md#api-キーを作成する)です。接続するにはキーに `mcp` スコープが必要で、ほかのスコープによってクライアントに見える[ツール](https://docs.squarecloud.app/ja/mcp/tools.md)が決まります。キーのスコープ外のツールは一覧に表示されず、呼び出すと不明なツールとして扱われます。

## スコープ

| スコープ | 使えるようになるツール |
| - | - |
| `mcp` | 接続に必要です。これだけで、ほかのスコープが不要なツールを使えます: `get_platform_knowledge`、`search_help_center`、`list_help_center`、`get_platform_status`、`get_discord_status`。 |
| `apps:read` | `list_applications`、`get_application_status`、`get_all_applications_status`、`get_application_logs`、`get_deployments`、`get_metrics_history`（アプリケーション）、`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`。`databases:credentials` と組み合わせると、`connect_database`、`rotate_database_credentials`、`connect_to_app` を指定した `create_database` |
| `snapshots:read` | `list_snapshots` |
| `snapshots:write` | `create_snapshot`、`restore_snapshot`、`snapshot` を指定した `commit_application` |
| `databases:read` | `list_databases`、`get_metrics_history`（データベース） |
| `databases:write` | `create_database`、`start_database`、`stop_database`、`update_database`、`delete_database` |
| `databases:credentials` | `envs:write` と組み合わせると、`connect_database`、`rotate_database_credentials`、`connect_to_app` を指定した `create_database` |
| `workspaces:manage` | `list_workspaces` |

一部の呼び出しは、引数に応じてスコープを確認します。`get_metrics_history` には、アプリケーションなら `apps:read`、データベースなら `databases:read` が必要です。`connect_to_app` を指定した `create_database` には `databases:credentials` と `envs:write` も、`restart` を指定した `set_env_vars` には `apps:control` も、`snapshot` を指定した `commit_application` には `snapshots:write` も必要です。必要なスコープがないと、その呼び出しには `MISSING_SCOPE` が返され、何も実行されません。

Claude と ChatGPT は上記のすべてのスコープを要求します。Square Cloud の同意ページでは `mcp` 以外のどのスコープのチェックも外せますが、追加することはできません。`account:read`、`apps:deploy`、`ai:chat`、Blob Storage のスコープは、どの MCP ツールも使わないため、接続に付与されることはありません。

> [!WARNING]
>
> 名前から想像されるより広い範囲に及ぶスコープもあります。`files:write` はアプリケーションが実行するコードを変更し、`envs:write` はアプリケーションの設定とシークレットを変更し、`databases:credentials` はデータベースのパスワードをローテーションします。クライアントには必要なものだけを付与してください。読み取り専用のアクセスには、`mcp` と `:read` のスコープを使います。

## アプリケーションとデータベースに制限されたキー

[API キー](https://docs.squarecloud.app/ja/api-reference/authentication.md#キーをリソースに制限する)は、一部のアプリケーションとデータベースに制限できます。MCP では、そのようなキーは次のように動作します:

* **対象のリソースにしかアクセスできません。** ほかのアプリケーションやデータベースを指定した呼び出しには、何かが実行される前に `RESOURCE_NOT_ALLOWED` が返されます。また、`list_applications` と `list_databases` はキーの対象リソースだけを返します。
* **アカウント全体を対象とするツールは使えません:** `get_all_applications_status`、`list_account_domains`、`list_workspaces`、`create_application`、`upload_application`、`create_database`、`connect_database`、`rotate_database_credentials`（ローテーションは、そのデータベースを使うすべてのアプリケーションを更新するため）。
* **対象の指定が必要です:** アカウント全体の概要にはキーの対象外のリソースも含まれるため、`list_snapshots` と `restore_snapshot` にはアプリケーションまたはデータベースの指定が必要です。

Claude と ChatGPT の接続はアカウント全体を対象とします。AI クライアントを一部のアプリケーションに限定するには、制限付きの API キーで接続してください。

## すべての変更はすぐに実行される

アプリケーションやデータベースの削除、スナップショットの復元も含め、すべてのツールは最初の呼び出しで実行されます。Square Cloud が事前にあなたに確認することはありません。いつツールを呼び出すかは AI クライアントが決めます。各ツールは、読み取りだけを行うのか、何かを破壊しうるのかをクライアントに伝えており、多くのクライアントは破壊的なツールの前にあなたの許可を求めます。その確認はオンのままにしてください。

## 削除と復元

`delete_application`、`delete_database`、`restore_snapshot` は元に戻せないため、Square Cloud は実行前にアプリケーションまたはデータベースの安全用スナップショットを作成します。ただし、直近数分以内のスナップショットがある場合は作成しません。どのケースになったかは、結果の `safety_snapshot` でわかります:

| `status` | 意味 |
| - | - |
| `created` | 安全用スナップショットを作成しました。 |
| `recent` | 直近数分以内のスナップショットがすでにありました。 |
| `none` | スナップショットを作成できませんでしたが、操作はそのまま実行されました。`reason` は、プランの 1 日あたりのスナップショット上限に達している場合は `daily_limit`、それ以外は `failed` です。 |

スナップショットの作成中は何も実行されません。呼び出しには `SNAPSHOT_NOT_READY` が返され、クライアントは約 2 分後に同じ引数で再試行します。

安全用スナップショットは、プランの 1 日あたりのスナップショット上限にカウントされます。削除後もそのスナップショットはダッシュボードに残り、ダウンロードして新しいアプリケーションとしてアップロードできます。`restore_snapshot` が復元できるのは、まだ存在するアプリケーションとデータベースだけです。

## シークレット

* `list_env_vars` が返すのは変数名だけで、接続 URL についてはスキームとホストだけです。
* ファイルツールは `.env` ファイル（`*.env`、`.env-*`、`.envrc` も含む）の読み取り、書き込み、削除を一切行わず（`.env.example` のようなテンプレートは読み取れます）、秘密鍵や証明書（`.pem`、`.key`、`.p12`、`.pfx`、`.ppk`、`.jks`、`id_rsa` などの SSH 鍵）も読み取りません。
* アプリケーションのログ内で検出されたシークレットはマスクされます。
* スナップショットと証明書のダウンロードリンクが送られることはありません。

> [!NOTE]
>
> アプリケーションのログとファイルはモデルが読む内容であり、その中のテキストがモデルを誘導しようとする可能性があります。許可する前に、クライアントの提案を見直してください。

## アクティビティフィード

MCP を通じて行われた変更は、[アクティビティフィード](https://squarecloud.app/ja/dashboard/activity)（Standard プラン以上）に、ダッシュボードでの操作と同じ項目として、発生元 **MCP** 付きで表示されます。再起動、ファイルのアップロード、環境変数の変更などです。読み取りは記録されません。Claude や ChatGPT の認可はクライアントの認可として表示されます。


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