# postgres_upgrade_precheck

Checks if a Cloud SQL for PostgreSQL instance is ready for a major version upgrade to the specified target version. The target_database_version MUST be provided in the request (e.g., POSTGRES_15). This tool helps identify potential issues *before* attempting the actual upgrade, reducing the risk of failure or downtime. This tool is only supported for PostgreSQL primary instances and does not run on read replicas. The precheck typically evaluates: - Database schema compatibility with the target version. - Cloud SQL limitations and unsupported features. - Instance resource constraints (e.g., number of relations). - Compatibility of current database settings and extensions. - Overall instance health and readiness. This tool returns a long-running operation. Use the get_operation tool with the operation name returned by this call to poll its status. IMPORTANT: Once the operation status is DONE, the detailed precheck results are available within the Operation resource. You will need to inspect the response from get_operation. The findings are located in the pre_check_major_version_upgrade_context.pre_check_response field. The findings are structured, indicating: - INFO: General information. - WARNING: Potential issues that don't block the upgrade but should be reviewed. - ERROR: Critical issues that MUST be resolved before attempting the upgrade. Each finding should include a message and any required actions. Addressing any reported issues is crucial before proceeding with the major version upgrade. If pre_check_response is empty or missing, it indicates that no issues were identified during the precheck. Running this precheck does not impact the instance's availability.

Agent View of the PolicyLayer registry record for `postgres_upgrade_precheck`. HTML page: https://policylayer.com/tools/com-googleapis-sqladmin-mcp/postgres-upgrade-precheck

## Facts

- Tool: `postgres_upgrade_precheck`
- Server: Mcp (`https://sqladmin.googleapis.com/mcp`) — https://policylayer.com/tools/com-googleapis-sqladmin-mcp.md
- Homepage: https://github.com/https://sqladmin.googleapis.com/mcp
- Risk category: Execute (High risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 4 (3 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `body` | object | yes | Required. The context for request to perform the pre-check major version upgrade operation. |
| `project` | string | yes | Required. Project ID of the project that contains the instance. |
| `instance` | string | yes | Required. Cloud SQL instance ID. This does not include the project ID. |
| `location` | string | no | Optional. Region of the Cloud SQL instance. |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "postgres_upgrade_precheck",
    "arguments": {
      "body": {},
      "project": "<project>",
      "instance": "<instance>"
    }
  }
}
```

## Why postgres_upgrade_precheck is rated High

postgres_upgrade_precheck triggers real processes with real consequences. An agent gone sideways doesn't fire it once. It starts dozens of builds, sends mass notifications, or burns through compute before anyone looks up.

Risk signals: Accepts raw HTML/template content (body)

## Use case

AI agents invoke postgres_upgrade_precheck to trigger actions in Mcp. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Mcp:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "postgres_upgrade_precheck": {
      "limits": [
        {
          "counter": "postgres_upgrade_precheck_rate",
          "window": "minute",
          "max": 10,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Mcp (14)

- `execute_sql` — Execute — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/execute-sql.md
- `execute_sql_readonly` — Execute — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/execute-sql-readonly.md
- `get_instance` — Read — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/get-instance.md
- `get_operation` — Read — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/get-operation.md
- `list_instances` — Read — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/list-instances.md
- `list_users` — Read — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/list-users.md
- `clone_instance` — Write — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/clone-instance.md
- `create_backup` — Write — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/create-backup.md
- `create_instance` — Write — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/create-instance.md
- `create_user` — Write — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/create-user.md
- `import_data` — Write — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/import-data.md
- `restore_backup` — Write — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/restore-backup.md
- `update_instance` — Write — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/update-instance.md
- `update_user` — Write — https://policylayer.com/tools/com-googleapis-sqladmin-mcp/update-user.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=com-googleapis-sqladmin-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/com-googleapis-sqladmin-mcp
