---
title: "PlanetScale MCP server for AI agents - actionlake"
description: "Give Claude 268 PlanetScale actions through one MCP server: deploy requests, branches. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/planetscale
updated: 2026-10-23
---

Connectors · Developer & infrastructure

# PlanetScale MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to PlanetScale and the rest of your systems. It gives your agent 268 PlanetScale actions (136 reads, 93 writes and 39 that wait for a confirmation) and holds the PlanetScale credential itself, so the agent never does. It paces PlanetScale's limits and records every call.

[Connect PlanetScale free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "planetscale.organizations.list",
  intent: "check which PlanetScale account is connected"
}
# List organizations · read · 1 upstream call
```

- 268 actions in one signed file
- 136 read look, never change
- 93 write create and update
- 39 wait for a yes destructive, confirmed first

Set up

## Connect PlanetScale in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect PlanetScale.
   API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `service_token_id` PlanetScale service token ID
   - `service_token` PlanetScale service token secret (shown once when the token is created)
   ```
   account { op: "connections.requirements", service: "planetscale" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "planetscale.organizations.list" }
   # list organizations · read · 1 upstream call
   check { action: "planetscale.teams.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

PlanetScale at a glance

**Sign-in**

API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.

**You provide**

`service_token_id` `service_token`

**Limits we pace to**

600 calls a minute, per connection

**API covered**

PlanetScale API v1 (Swagger 2.0, 282 operations)`api.planetscale.com/v1`

**Built from**

PlanetScale's documentation, read 23 October 2026[api.planetscale.com](https://api.planetscale.com/v1/openapi-spec) [planetscale.com](https://planetscale.com/docs/api/reference/getting-started-with-planetscale-api) [planetscale.com](https://planetscale.com/docs/api/reference/service-tokens)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

124 of 136 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

6, so ask can line PlanetScale up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in PlanetScale.

268 actions in 78 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **136** read look, never change
- **93** write create and update
- **39** destructive wait for a confirmation

1. ### Deploy requests
   18
   5 read · 11 write · 2 destructive
   Create a deploy request · List deploy requests · Complete a gated deploy request · Check deploy request storage
2. ### Branches
   11
   4 read · 6 write · 1 destructive
   Create a branch · Lint a branch schema · List branches · Demote a branch
3. ### Move tables workflows
   10
   3 read · 5 write · 2 destructive
   Create a MoveTables workflow · List MoveTables workflows · Complete a MoveTables workflow · Show MoveTables workflow details
4. ### Roles
   10
   3 read · 6 write · 1 destructive
   Create role credentials · List roles · Get a role · Delete role credentials
5. ### Configuration profiles
   9
   2 read · 6 write · 1 destructive
   Create a configuration profile for a Neki branch · Duplicate a configuration profile for a Neki branch · List configuration profiles for a Neki branch · Get a configuration profile for a Neki branch
6. ### Configuration profile shards
   8
   2 read · 4 write · 2 destructive
   Add shards to a Neki configuration profile · Add a shard to a Neki configuration profile · List shards for a Neki configuration profile · Assign shards to a Neki configuration profile
7. ### Keyspaces
   8
   4 read · 3 write · 1 destructive
   Create a keyspace · Get keyspaces · Get a keyspace · Get keyspace rollout status
8. ### Metrics
   8
   8 read · 0 write · 0 destructive
   Get time-series metrics · Get current metric values · Get table storage metrics by keyspace · Get time-series metrics for SQL queries

**70 more areas · 186 actions**

- Databases **7**
- Passwords **6**
- Webhooks **6**
- Backup policies **5**
- Backups **5**
- Branch config changes **5**
- Cidrs **5**
- Dedicated read replicas **5**
- Insights queries **5**
- Routers **5**
- Teams **5**
- Traffic budgets **5**
- Bouncers **4**
- Branch resizes **4**
- Keyspace config changes **4**
- Keyspace resizes **4**
- Members **4**
- Oauth application tokens **4**
- Query patterns **4**
- Service tokens **4**
- SSO **4**
- SSO domains **4**
- Team members **4**
- Bouncer resizes **3**
- Branch changes **3**
- Insights tags **3**
- Invitations **3**
- Neki changes **3**
- Organizations **3**
- Safe migrations **3**
- Schema recommendations **3**
- Switchovers **3**
- Admin **2**
- Branch shards **2**
- Data topology **2**
- Deploy request reviews **2**
- Insights anomalies **2**
- Insights errors **2**
- Invoices **2**
- Maintenance schedules **2**
- Oauth applications **2**
- Payment method **2**
- Payment method setups **2**
- SSO directory **2**
- Traffic rules **2**
- Admin parameters **1**
- Admin size skus **1**
- Audit log **1**
- Branch bouncer resizes **1**
- Branch extensions **1**
- Branch parameters **1**
- Cluster size skus **1**
- Configuration profile extensions **1**
- Configuration profile parameters **1**
- Current user **1**
- Database regions **1**
- Dedicated read replica changes **1**
- Deploy queue **1**
- Deploy request operations **1**
- Invoice line items **1**
- Log signatures **1**
- Maintenance schedule windows **1**
- Organization regions **1**
- Postgres versions **1**
- Public regions **1**
- Read only regions **1**
- Router parameters **1**
- Router size skus **1**
- Vitess parameters **1**
- Vtctld operations **1**

Top actions

## The PlanetScale API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 46 of PlanetScale's 46 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `planetscale.teams.list` List teams in an organization | List teams in an organization. | read | `identity.group.list` 262 connectors |
| `planetscale.current_user.get` Get current user | Get current user. | read | `identity.current_user.get` 307 connectors |
| `planetscale.members.list` List organization members | List organization members. | read | `identity.group_member.list` 103 connectors |
| `planetscale.teams.create` Create an organization team | Create an organization team. | write | `identity.group.create` 205 connectors |
| `planetscale.team_members.list` List team members | List team members. | read | `identity.group_member.list` 103 connectors |
| `planetscale.service_tokens.list` List service tokens | List service tokens. | read | `identity.api_key.list` 96 connectors |
| `planetscale.teams.delete` Delete an organization team | Delete an organization team. | destructive | `identity.group.delete` 181 connectors |
| `planetscale.service_tokens.create` Create a service token | Create a service token. | write | `identity.api_key.create` 100 connectors |
| `planetscale.audit_log.list` List audit logs | List audit logs. | read | `identity.audit_event.list` 51 connectors |
| `planetscale.invitations.create` Send an invitation | Send an invitation. | write | `identity.invitation.create` 41 connectors |
| `planetscale.invitations.list` List pending invitations | List pending invitations. | read | `identity.invitation.list` 33 connectors |
| `planetscale.databases.list` List databases | List databases. | read | `infra.database.list` 7 connectors |

Try it

## Prompts to paste into Claude.

Each one names the PlanetScale actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   List the PlanetScale groups and how many members each one has.
   calls `planetscale.teams.list`
2. Write write
   Create an organization team in PlanetScale. Show me exactly what you will send before you save it.
   calls `planetscale.teams.create`

Governance for PlanetScale

## Destructive actions wait for a yes.

39 PlanetScale actions are destructive. The first 10:

- Delete an organization team `planetscale.teams.delete`
- Remove a member from an organization `planetscale.members.remove`
- Remove a member from a team `planetscale.team_members.remove`
- Delete a service token `planetscale.service_tokens.delete`
- Delete a webhook `planetscale.webhooks.delete`
- Delete role credentials `planetscale.roles.delete`
- Delete a database `planetscale.databases.delete`
- Delete a backup policy `planetscale.backup_policies.delete`
- Disable organization SSO `planetscale.sso.disable`
- Delete an IP restriction entry `planetscale.cidrs.delete`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do planetscale.teams.delete confirm_policy: **human**

Delete an organization team?

**intent:** the user asked me to delete an organization team

run suspended · waiting for a named person · key _planetscale-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "planetscale-agent",
  allowed_actions: ["planetscale.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "planetscale.teams.delete", approver: "lead@example.com" },
    { match: "planetscale.members.remove", approver: "lead@example.com" },
    { match: "planetscale.team_members.remove", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to PlanetScale only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What PlanetScale costs on actionlake.

Every PlanetScale action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call PlanetScale refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 268 PlanetScale actions
- 268 actions page each page of a long list is one call
- 124 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every PlanetScale action.

268 actions by area: the id your agent calls, what it does, and its effect.

**Deploy requests 18**

- `planetscale.deploy_requests.apply_gated_deploy` Complete a gated deploy request write
- `planetscale.deploy_requests.cancel` Cancel a queued deploy request destructive
- `planetscale.deploy_requests.check_storage` Check deploy request storage read
- `planetscale.deploy_requests.close` Close a deploy request destructive
- `planetscale.deploy_requests.complete_errored_deploy` Complete an errored deploy write
- `planetscale.deploy_requests.create` Create a deploy request write
- `planetscale.deploy_requests.force_cutover` Enable force cutover for a deploy request write
- `planetscale.deploy_requests.get` Get a deploy request read
- `planetscale.deploy_requests.get_deployment` Get a deployment read
- `planetscale.deploy_requests.get_throttler` Get deploy request throttler configurations read
- `planetscale.deploy_requests.list` List deploy requests read
- `planetscale.deploy_requests.queue_deploy` Queue a deploy request write
- `planetscale.deploy_requests.revert` Complete a revert write
- `planetscale.deploy_requests.skip_revert_period` Skip revert period write
- `planetscale.deploy_requests.update_aggressive_cutover` Update aggressive cutover for a deploy request write
- `planetscale.deploy_requests.update_auto_apply` Update auto-apply for deploy request write
- `planetscale.deploy_requests.update_auto_delete_branch` Update auto-delete branch for deploy request write
- `planetscale.deploy_requests.update_throttler` Update deploy request throttler configurations write

**Branches 11**

- `planetscale.branches.create` Create a branch write
- `planetscale.branches.delete` Delete a branch destructive
- `planetscale.branches.demote` Demote a branch write
- `planetscale.branches.get` Get a branch read
- `planetscale.branches.get_schema` Get a branch schema read
- `planetscale.branches.lint_schema` Lint a branch schema read
- `planetscale.branches.list` List branches read
- `planetscale.branches.promote` Promote a branch write
- `planetscale.branches.run_maintenance` Run maintenance for a Postgres branch write
- `planetscale.branches.update` Update a branch write
- `planetscale.branches.update_cluster` Change a branch cluster configuration write

**Move tables workflows 10**

- `planetscale.move_tables_workflows.cancel` Cancel a MoveTables workflow destructive
- `planetscale.move_tables_workflows.complete` Complete a MoveTables workflow write
- `planetscale.move_tables_workflows.create` Create a MoveTables workflow write
- `planetscale.move_tables_workflows.get` Show MoveTables workflow details read
- `planetscale.move_tables_workflows.get_status` Show MoveTables workflow status read
- `planetscale.move_tables_workflows.list` List MoveTables workflows read
- `planetscale.move_tables_workflows.reverse_traffic` Reverse traffic back to the source keyspace write
- `planetscale.move_tables_workflows.start` Start a MoveTables workflow write
- `planetscale.move_tables_workflows.stop` Stop a MoveTables workflow destructive
- `planetscale.move_tables_workflows.switch_traffic` Switch traffic to the target keyspace write

**Roles 10**

- `planetscale.roles.create` Create role credentials write
- `planetscale.roles.delete` Delete role credentials destructive
- `planetscale.roles.get` Get a role read
- `planetscale.roles.get_default` Get the default postgres role read
- `planetscale.roles.list` List roles read
- `planetscale.roles.reassign_objects` Reassign objects owned by one role to another role write
- `planetscale.roles.renew` Renew role expiration write
- `planetscale.roles.reset` Reset a role's password write
- `planetscale.roles.reset_default` Reset default credentials write
- `planetscale.roles.update` Update role name write

**Configuration profiles 9**

- `planetscale.configuration_profiles.create` Create a configuration profile for a Neki branch write
- `planetscale.configuration_profiles.delete` Delete a configuration profile for a Neki branch destructive
- `planetscale.configuration_profiles.duplicate` Duplicate a configuration profile for a Neki branch write
- `planetscale.configuration_profiles.get` Get a configuration profile for a Neki branch read
- `planetscale.configuration_profiles.list` List configuration profiles for a Neki branch read
- `planetscale.configuration_profiles.run_maintenance` Run maintenance for a Neki configuration profile write
- `planetscale.configuration_profiles.run_maintenance_all` Run maintenance for selected Neki configuration profiles write
- `planetscale.configuration_profiles.set_default` Set the default configuration profile for a Neki branch write
- `planetscale.configuration_profiles.update` Update a configuration profile for a Neki branch write

**Configuration profile shards 8**

- `planetscale.configuration_profile_shards.assign` Assign shards to a Neki configuration profile write
- `planetscale.configuration_profile_shards.bulk_create` Add shards to a Neki configuration profile write
- `planetscale.configuration_profile_shards.create` Add a shard to a Neki configuration profile write
- `planetscale.configuration_profile_shards.delete` Remove a shard from a Neki configuration profile destructive
- `planetscale.configuration_profile_shards.delete_many` Remove shards from a Neki configuration profile destructive
- `planetscale.configuration_profile_shards.get` Get a shard in a Neki configuration profile read
- `planetscale.configuration_profile_shards.list` List shards for a Neki configuration profile read
- `planetscale.configuration_profile_shards.update` Update a shard in a Neki configuration profile write

**Keyspaces 8**

- `planetscale.keyspaces.create` Create a keyspace write
- `planetscale.keyspaces.delete` Delete a keyspace destructive
- `planetscale.keyspaces.get` Get a keyspace read
- `planetscale.keyspaces.get_rollout_status` Get keyspace rollout status read
- `planetscale.keyspaces.get_vschema` Get the VSchema for the keyspace read
- `planetscale.keyspaces.list` Get keyspaces read
- `planetscale.keyspaces.update` Configure keyspace settings write
- `planetscale.keyspaces.update_vschema` Update the VSchema for the keyspace write

**Metrics 8**

- `planetscale.metrics.get_branch` Get time-series metrics read
- `planetscale.metrics.get_branch_instant` Get current metric values read
- `planetscale.metrics.get_keyspace_tables` Get table storage metrics by keyspace read
- `planetscale.metrics.get_query` Get time-series metrics for SQL queries read
- `planetscale.metrics.get_tables` Get table storage metrics read
- `planetscale.metrics.get_tablets` Get time-series tablet metrics read
- `planetscale.metrics.get_tablets_instant` Get current tablet metrics read
- `planetscale.metrics.get_tag` Get time-series metrics grouped by query tags read

**Databases 7**

- `planetscale.databases.create` Create a database write
- `planetscale.databases.delete` Delete a database destructive
- `planetscale.databases.get` Get a database read
- `planetscale.databases.get_throttler` Get database throttler configurations read
- `planetscale.databases.list` List databases read
- `planetscale.databases.update` Update database settings write
- `planetscale.databases.update_throttler` Update database throttler configurations write

**Passwords 6**

- `planetscale.passwords.create` Create a password write
- `planetscale.passwords.delete` Delete a password destructive
- `planetscale.passwords.get` Get a password read
- `planetscale.passwords.list` List passwords read
- `planetscale.passwords.renew` Renew a password write
- `planetscale.passwords.update` Update a password write

**Webhooks 6**

- `planetscale.webhooks.create` Create a webhook write
- `planetscale.webhooks.delete` Delete a webhook destructive
- `planetscale.webhooks.get` Get a webhook read
- `planetscale.webhooks.list` List webhooks read
- `planetscale.webhooks.test` Test a webhook write
- `planetscale.webhooks.update` Update a webhook write

**Backup policies 5**

- `planetscale.backup_policies.create` Create a backup policy write
- `planetscale.backup_policies.delete` Delete a backup policy destructive
- `planetscale.backup_policies.get` Get a backup policy read
- `planetscale.backup_policies.list` List backup policies read
- `planetscale.backup_policies.update` Update a backup policy write

**Backups 5**

- `planetscale.backups.create` Create a backup write
- `planetscale.backups.delete` Delete a backup destructive
- `planetscale.backups.get` Get a backup read
- `planetscale.backups.list` List backups read
- `planetscale.backups.update` Update a backup write

**Branch config changes 5**

- `planetscale.branch_config_changes.cancel` Cancel a draft or pending branch config change request destructive
- `planetscale.branch_config_changes.create` Create a branch config change request write
- `planetscale.branch_config_changes.get` Get a branch config change request read
- `planetscale.branch_config_changes.list` List branch config change requests read
- `planetscale.branch_config_changes.submit` Submit draft config change requests write

**Cidrs 5**

- `planetscale.cidrs.create` Create an IP restriction entry write
- `planetscale.cidrs.delete` Delete an IP restriction entry destructive
- `planetscale.cidrs.get` Get an IP restriction entry read
- `planetscale.cidrs.list` List IP restriction entries read
- `planetscale.cidrs.update` Update an IP restriction entry write

**Dedicated read replicas 5**

- `planetscale.dedicated_read_replicas.create` Create a dedicated read replica write
- `planetscale.dedicated_read_replicas.delete` Delete a dedicated read replica destructive
- `planetscale.dedicated_read_replicas.get` Get a dedicated read replica read
- `planetscale.dedicated_read_replicas.list` List dedicated read replicas read
- `planetscale.dedicated_read_replicas.update` Update a dedicated read replica write

**Insights queries 5**

- `planetscale.insights_queries.get` Retrieve a branch query read
- `planetscale.insights_queries.get_statistics` Retrieve query statistics read
- `planetscale.insights_queries.get_summary` Retrieve a summary of query statistics read
- `planetscale.insights_queries.list` List branch queries read
- `planetscale.insights_queries.list_traffic_budgets` List traffic budgets affecting a query fingerprint read

**Routers 5**

- `planetscale.routers.create` Create a router for a Neki branch write
- `planetscale.routers.delete` Delete a router from a Neki branch destructive
- `planetscale.routers.get` Get a router for a Neki branch read
- `planetscale.routers.list` List routers for a Neki branch read
- `planetscale.routers.update` Update a router for a Neki branch write

**Teams 5**

- `planetscale.teams.create` Create an organization team write
- `planetscale.teams.delete` Delete an organization team destructive
- `planetscale.teams.get` Get an organization team read
- `planetscale.teams.list` List teams in an organization read
- `planetscale.teams.update` Update an organization team write

**Traffic budgets 5**

- `planetscale.traffic_budgets.create` Create a traffic budget write
- `planetscale.traffic_budgets.delete` Delete a traffic budget destructive
- `planetscale.traffic_budgets.get` Get a traffic budget read
- `planetscale.traffic_budgets.list` List traffic budgets read
- `planetscale.traffic_budgets.update` Update a traffic budget write

**Bouncers 4**

- `planetscale.bouncers.create` Create a bouncer write
- `planetscale.bouncers.delete` Delete a bouncer destructive
- `planetscale.bouncers.get` Get a bouncer read
- `planetscale.bouncers.list` List bouncers read

**Branch resizes 4**

- `planetscale.branch_resizes.cancel` Cancel a change request destructive
- `planetscale.branch_resizes.get` Get a branch resize request read
- `planetscale.branch_resizes.list` Get branch resize requests read
- `planetscale.branch_resizes.update` Upsert a resize request write

**Keyspace config changes 4**

- `planetscale.keyspace_config_changes.cancel` Cancel a draft or pending keyspace config change request destructive
- `planetscale.keyspace_config_changes.create` Create a keyspace config change request write
- `planetscale.keyspace_config_changes.get` Get a keyspace config change request read
- `planetscale.keyspace_config_changes.list` List keyspace config change requests read

**Keyspace resizes 4**

- `planetscale.keyspace_resizes.cancel` Cancel a resize request destructive
- `planetscale.keyspace_resizes.get` Get a keyspace resize request read
- `planetscale.keyspace_resizes.list` Get keyspace resize requests read
- `planetscale.keyspace_resizes.update` Upsert a resize request write

**Members 4**

- `planetscale.members.get` Get an organization member read
- `planetscale.members.list` List organization members read
- `planetscale.members.remove` Remove a member from an organization destructive
- `planetscale.members.update` Update organization member role write

**Oauth application tokens 4**

- `planetscale.oauth_application_tokens.create` Create or renew an OAuth token write
- `planetscale.oauth_application_tokens.delete` Delete an OAuth token destructive
- `planetscale.oauth_application_tokens.get` Get an OAuth token read
- `planetscale.oauth_application_tokens.list` List OAuth tokens read

**Query patterns 4**

- `planetscale.query_patterns.create` Create a new query patterns report write
- `planetscale.query_patterns.delete` Delete a query patterns report destructive
- `planetscale.query_patterns.get` Show the status of a query patterns report read
- `planetscale.query_patterns.list` List generated query patterns reports read

**Service tokens 4**

- `planetscale.service_tokens.create` Create a service token write
- `planetscale.service_tokens.delete` Delete a service token destructive
- `planetscale.service_tokens.get` Get a service token read
- `planetscale.service_tokens.list` List service tokens read

**SSO 4**

- `planetscale.sso.configure` Open the SSO configuration portal write
- `planetscale.sso.disable` Disable organization SSO destructive
- `planetscale.sso.enable` Enable organization SSO write
- `planetscale.sso.get` Get organization SSO status read

**SSO domains 4**

- `planetscale.sso_domains.create` Start SSO domain verification write
- `planetscale.sso_domains.delete` Delete an SSO domain destructive
- `planetscale.sso_domains.get` Get an SSO domain read
- `planetscale.sso_domains.list` List organization SSO domains read

**Team members 4**

- `planetscale.team_members.add` Add a member to a team write
- `planetscale.team_members.get` Get a team member read
- `planetscale.team_members.list` List team members read
- `planetscale.team_members.remove` Remove a member from a team destructive

**Bouncer resizes 3**

- `planetscale.bouncer_resizes.cancel` Cancel a resize request destructive
- `planetscale.bouncer_resizes.list` Get bouncer resize requests read
- `planetscale.bouncer_resizes.update` Upsert a bouncer resize request write

**Branch changes 3**

- `planetscale.branch_changes.get` Get a branch change request read
- `planetscale.branch_changes.list` Get branch change requests read
- `planetscale.branch_changes.update` Upsert a change request for cluster size, replicas, storage, or parameters write

**Insights tags 3**

- `planetscale.insights_tags.get` Retrieve a query tag read
- `planetscale.insights_tags.list` List query tags read
- `planetscale.insights_tags.list_summaries` List query statistics grouped by tag read

**Invitations 3**

- `planetscale.invitations.cancel` Cancel an invitation destructive
- `planetscale.invitations.create` Send an invitation write
- `planetscale.invitations.list` List pending invitations read

**Neki changes 3**

- `planetscale.neki_changes.cancel` Cancel a change request for a Neki branch destructive
- `planetscale.neki_changes.get` Get a change request for a Neki branch read
- `planetscale.neki_changes.list` List change requests for a Neki branch read

**Organizations 3**

- `planetscale.organizations.get` Get an organization read
- `planetscale.organizations.list` List organizations read
- `planetscale.organizations.update` Update an organization write

**Safe migrations 3**

- `planetscale.safe_migrations.disable` Disable safe migrations for a branch destructive
- `planetscale.safe_migrations.enable` Enable safe migrations for a branch write
- `planetscale.safe_migrations.update` Update safe migrations for a branch write

**Schema recommendations 3**

- `planetscale.schema_recommendations.dismiss` Dismiss a schema recommendation write
- `planetscale.schema_recommendations.get` Get a schema recommendation read
- `planetscale.schema_recommendations.list` List schema recommendations read

**Switchovers 3**

- `planetscale.switchovers.create` Create a switchover write
- `planetscale.switchovers.get` Get a switchover read
- `planetscale.switchovers.list` List switchovers read

**Admin 2**

- `planetscale.admin.get` Get the admin for a Neki branch read
- `planetscale.admin.update` Update the admin for a Neki branch write

**Branch shards 2**

- `planetscale.branch_shards.get` Get a shard for a Neki branch read
- `planetscale.branch_shards.list` List shards for a Neki branch read

**Data topology 2**

- `planetscale.data_topology.get` Get the data topology for a Neki branch read
- `planetscale.data_topology.update` Set the data topology for a Neki branch write

**Deploy request reviews 2**

- `planetscale.deploy_request_reviews.create` Review a deploy request write
- `planetscale.deploy_request_reviews.list` List deploy request reviews read

**Insights anomalies 2**

- `planetscale.insights_anomalies.get` Retrieve a branch anomaly read
- `planetscale.insights_anomalies.list` List branch anomalies read

**Insights errors 2**

- `planetscale.insights_errors.get` List queries for an error fingerprint read
- `planetscale.insights_errors.list` List branch query errors read

**Invoices 2**

- `planetscale.invoices.get` Get an invoice read
- `planetscale.invoices.list` Get invoices read

**Maintenance schedules 2**

- `planetscale.maintenance_schedules.get` Get a maintenance schedule read
- `planetscale.maintenance_schedules.list` List maintenance schedules read

**Oauth applications 2**

- `planetscale.oauth_applications.get` Get an OAuth application read
- `planetscale.oauth_applications.list` List OAuth applications read

**Payment method 2**

- `planetscale.payment_method.delete` Delete the current billing payment method destructive
- `planetscale.payment_method.get` Get the current billing payment method read

**Payment method setups 2**

- `planetscale.payment_method_setups.create` Create a billing payment method setup write
- `planetscale.payment_method_setups.get` Get a billing payment method setup read

**SSO directory 2**

- `planetscale.sso_directory.disable` Disable directory sync destructive
- `planetscale.sso_directory.enable` Open the directory sync portal write

**Traffic rules 2**

- `planetscale.traffic_rules.create` Create a traffic rule write
- `planetscale.traffic_rules.delete` Delete a traffic rule destructive

**Admin parameters 1**

- `planetscale.admin_parameters.list` List parameters for a Neki admin read

**Admin size skus 1**

- `planetscale.admin_size_skus.list` List admin size SKUs for a Neki branch read

**Audit log 1**

- `planetscale.audit_log.list` List audit logs read

**Branch bouncer resizes 1**

- `planetscale.branch_bouncer_resizes.list` Get bouncer resize requests read

**Branch extensions 1**

- `planetscale.branch_extensions.list` List cluster extensions read

**Branch parameters 1**

- `planetscale.branch_parameters.list` List cluster parameters read

**Cluster size skus 1**

- `planetscale.cluster_size_skus.list` List available cluster sizes read

**Configuration profile extensions 1**

- `planetscale.configuration_profile_extensions.list` List extensions for a Neki configuration profile read

**Configuration profile parameters 1**

- `planetscale.configuration_profile_parameters.list` List parameters for a Neki configuration profile read

**Current user 1**

- `planetscale.current_user.get` Get current user read

**Database regions 1**

- `planetscale.database_regions.list` List database regions read

**Dedicated read replica changes 1**

- `planetscale.dedicated_read_replica_changes.list` Get dedicated read replica change requests read

**Deploy queue 1**

- `planetscale.deploy_queue.list` Get the deploy queue read

**Deploy request operations 1**

- `planetscale.deploy_request_operations.list` List deploy operations read

**Invoice line items 1**

- `planetscale.invoice_line_items.list` Get invoice line items read

**Log signatures 1**

- `planetscale.log_signatures.create` Create a log signature write

**Maintenance schedule windows 1**

- `planetscale.maintenance_schedule_windows.list` List maintenance windows read

**Organization regions 1**

- `planetscale.organization_regions.list` List regions for an organization read

**Postgres versions 1**

- `planetscale.postgres_versions.list` List available Postgres versions read

**Public regions 1**

- `planetscale.public_regions.list` List public regions read

**Read only regions 1**

- `planetscale.read_only_regions.list` List read-only regions read

**Router parameters 1**

- `planetscale.router_parameters.list` List parameters for a Neki router read

**Router size skus 1**

- `planetscale.router_size_skus.list` List router size SKUs for a Neki branch read

**Vitess parameters 1**

- `planetscale.vitess_parameters.list` List Vitess parameters read

**Vtctld operations 1**

- `planetscale.vtctld_operations.get` Get a vtctld operation read

Questions

## The PlanetScale MCP server, answered.

**Is there a PlanetScale MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 268 PlanetScale actions across deploy requests, branches, move tables workflows and roles, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by PlanetScale.

**What do I need to connect PlanetScale?**

PlanetScale service token ID and PlanetScale service token secret (shown once when the token is created). The free call account { op: "connections.requirements", service: "planetscale" } lists exactly what to paste.

**Can an AI agent delete or change things in PlanetScale?**

Only if its key allows it, and only with an explicit confirmation. 39 PlanetScale actions are destructive, including delete an organization team, remove a member from an organization and remove a member from a team. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my PlanetScale API limit?**

actionlake paces every call to the limits in the PlanetScale service file: 600 calls a minute per connection. Repeated reads are answered from cache (124 PlanetScale actions can be), which never reaches PlanetScale.

**What does a PlanetScale action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (268 PlanetScale actions page). Cache hits, searches, dry runs and calls PlanetScale refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which PlanetScale API does it cover?**

The PlanetScale API v1 (Swagger 2.0, 282 operations) at api.planetscale.com/v1. It is built from PlanetScale's documentation as read on 23 October 2026. 268 actions in 78 areas, each one in the signed service file (version 1.0.0).

**Does actionlake keep my PlanetScale data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your PlanetScale credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like PlanetScale

Shares the most action names with

- [Render 19](https://actionlake.com/connectors/render)
- [MongoDB Atlas 18](https://actionlake.com/connectors/mongodb-atlas)
- [Upsun (Platform.sh) 15](https://actionlake.com/connectors/upsun-platform-sh)
- [Cloudsmith 14](https://actionlake.com/connectors/cloudsmith)
- [Files.com 13](https://actionlake.com/connectors/files-com)
- [Google Cloud SQL Admin 10](https://actionlake.com/connectors/google-cloud-sql-admin)

Joins with, on shared entities

- [Microsoft 365 Users 3](https://actionlake.com/connectors/microsoft-365-users)
- [Rubrik Security Cloud 3](https://actionlake.com/connectors/rubrik-security-cloud)
- [Cloudflare 3](https://actionlake.com/connectors/cloudflare)
- [Delinea Secret Server 3](https://actionlake.com/connectors/delinea-secret-server)
- [Appwrite Cloud 3](https://actionlake.com/connectors/appwrite-cloud)
- [Metabase 3](https://actionlake.com/connectors/metabase)

Browse

- [All Developer & infrastructure connectors](https://actionlake.com/connectors/category/developer-and-infrastructure)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by PlanetScale; the name is the vendor's own. Counts are from the PlanetScale service file, version 1.0.0.

## Give your agent PlanetScale today.

[Connect PlanetScale free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/planetscale
More: https://actionlake.com/llms.txt
