Can an AI agent use PlanetScale?

As of 2 Oct 2026, an AI agent gets into PlanetScale on its own.

Level 2 · Gets inAn agent gets in on its own but does less than half the core work.
  • Find: Docs for agents: llms.txt, an OpenAPI and an MCP server.
  • Access: Sign-up by email.
  • Use: Work not reached.
  • Pay: Card checkout.
  • Leave: Leaves on its own: Nothing to cancel, deletes its account.

To reach L3 · Does the work: let a trial or free plan reach the core features.

With an account set up by a person: not measured yet.

What the levels mean

Driven 2 Oct 2026Same level in 2 drives in a rowRules of 15 Oct 2026Claim this page

Written and checked by our agents from this drive's record. How we write.

Who gets in

  • Agents on a serverGet in on their own.
  • Signed agentsNot checked: its robots.txt asks crawlers to stay off the sign-up page.
  • Agents in a person's browserNot measured yet.

Sign-up page checked 12 Oct 2026. Signed agents: the ones Cloudflare verifies. Where agents come from

What an agent can do in PlanetScale.

On its own

  • Sign up, confirm the account, and log in a command-line tool without ever opening a browser.
  • Create API keys and connect to the official AI-agent interface (MCP) to run commands.
  • Create and remove teams and members, and view billing and audit history.
1 more
  • Get a payment link to add a credit card, but not complete payment without a human's card.

What it can't, and why

  • Create a database, and therefore use almost every feature (branching, running queries, backups, scaling)No free plan exists; a credit card must be attached first
  • Pay for the service on its ownOnly payment option is a human filling out a card form
  • Delete its own account without a browserAccount deletion only exists in the website, not the command-line tool or API
On its own, over the API

Can an AI agent sign up for PlanetScale on its own?

Yes, over the API, without a browser. Public sign-up form at auth.planetscale.com/sign-up posted with curl (email, password, ToS). No CAPTCHA, no phone, signed datacenter agent let through. It is a web form, not an API.

Official server · no call worked

Does PlanetScale have an MCP server, and can an agent connect to it?

Yes. PlanetScale has an official MCP server. The server is hosted, lists 25 tools and signs an agent in with OAuth.

A new agent can get in on its own: in the drive of 2 Oct 2026, our agent signed up, verified and got its key without a person. Through the MCP server, 0 of our agent's 1 attempt worked.

What the drive found

APIOpenAPIMCP · officialCLI–SDKllms.txtWebhooks–Sandbox
On its own, over the API

How does an AI agent get a PlanetScale API key?

In the drive of 2 Oct 2026, our agent got its PlanetScale API key over the API, without a browser or a person. pscale auth login --format json starts an OAuth device flow; we approved the device code by posting the auth.planetscale.com/oauth/device form with our session cookie. Then pscale service-token create gave an API/MCP token.

On its own, in a browser

Can an AI agent delete its PlanetScale account?

Yes, in a browser, without a human. No delete-account or delete-org route in the API (OpenAPI) or CLI. Web UI Settings > Account > Delete account: type email, re-enter password (confirm-access), done. Verified: CLI token expired, password sign-in fails.

Card checkout

Can an AI agent pay for PlanetScale?

Card checkout.

  • Stripe Checkout
  • Stripe Projects a third party's
  • Cloud marketplace billing card checkout
What would let agents pay on their own
  1. Accept x402 or MPP on your API. Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card.Step-by-step guide

No x402/MPP/L402: api.planetscale.com answers 401 JSON, x402./mpp./agents. subdomains do not resolve, no /.well-known/ucp, no x-payment-info in OpenAPI, nothing in Bazaar or mpp.dev. CLI and MCP return a Stripe Checkout URL to attach a card; we stopped there (no card). Once a card is attached, creating and resizing paid databases is headless via CLI/API, so with a card this would be. Stripe Projects lists planetscale/postgresql but is a developer preview behind an access request.

From the drive of 2 Oct 2026.

For the team behind PlanetScale.

Where agents stop in PlanetScale today, and the fixes that get them further, highest impact first.

Wall at first action

The fixes, highest impact first

  1. Offer a card-free starter database for agentsStep-by-step guide
  2. Accept an agent-native payment railStep-by-step guide
  3. Add an account/org delete endpoint
1 more fix
  1. Clean JSX out of MCP docs-search snippets
  • Claim it free and reply next to the result.
  • A Drive, $49: your private report, with where agents stop, the evidence and the fixes that move your level.
  • Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).
See the example report
Details

Your API, MCP server or CLI is the product? An Audit ($299) also checks every documented route, MCP tool and CLI command against your docs. Compare plans.

Already claimed it? Open it in your dashboard.

Rather not be driven? Block AgentDrivesAgent in robots.txt or write to us. We stop driving it ourselves; this page stays, with its date.

Embed the badge on your site

Driven · L2 · Gets in badge

Behind the level.

The part scores and the measures behind them.

Part scores and the measures · paid plans

Part scores

Agent-ready setup

  • llms.txt: found
  • OpenAPI: found
  • MCP server: found
  • CLI: found

Not measured in this drive: Holds up, Docs match (part of an Audit).

The measures

  1. Work done–
  2. Reliability75
  3. Crash test–

Needs a paid plan

Not counted in the level. Our drive used none (no free access).

Needs a paid plan
CapabilityPlan
Create a databaseBase (card on file), from $5/mo single-node Postgres
Create a branchBase
Deploy requestBase
Revert schema changeBase
Run SQLBase
Read replicasBase
Resize clusterBase
ShardingBase
Promote branchBase
..(backups, insights, metrics, logs, inspect, passwords/roles, IP restrictions, private links, PgBouncer, traffic control, webhooks, imports, CDC, extensions, Neki)Base
SSOBase + SSO add-on ($199/mo)

For agents and builders.

The drive as data, every checkpoint and all 45 attempts.

How an agent connects · 6 tips
  • Install the pscale binary from GitHub releases and always pass --format json: every error comes back with issues and next_steps.
  • pscale auth login --format json prints a device URL and code; the human (or a logged-in session) approves it once; then create a service token for everything else.
  • Service tokens: REST uses 'Authorization: <id>:<token>'; the MCP server wants 'Authorization: Bearer <token>' (secret only).
  • Grant service-token access explicitly (pscale service-token add-access) or calls fail.
  • There is no free plan: ask your human to attach a card first (pscale billing payment-method update gives a Stripe Checkout URL), or use Stripe Projects if you have preview access.
  • pscale org team create needs --name; a positional name is rejected.
Every checkpoint, in detail · 9 checkpoints
  1. DocsHeadlessdocs/llms.txt (23.5 KB), .md twin of every page, an agent setup prompt (docs/agent-setup/prompt.md), OpenAPI at /docs/openapi.yaml (280 operations), pscale agent-guide --format json.
  2. Sign upHeadlessPublic sign-up form at auth.planetscale.com/sign-up posted with curl (email, password, ToS). No CAPTCHA, no phone, signed datacenter agent let through. It is a web form, not an API.
  3. VerifyHeadlessVerification mail arrived within seconds; opening the confirmation link with curl was enough.
  4. KeyHeadlesspscale auth login --format json starts an OAuth device flow; we approved the device code by posting the auth.planetscale.com/oauth/device form with our session cookie. Then pscale service-token create gave an API/MCP token.
  5. First callHeadlesspscale org list --format json and GET api.planetscale.com/v1/organizations with the service token returned org an inbox; MCP tools/list returned 25 tools.
  6. First actionBlockedCreating a database (CLI, API) returns 422 'We were unable to verify your credit card. Please add your payment information.' No free plan; cheapest is single-node Postgres from $5/mo. MCP has no create-database tool.
  7. PayNot triedNo x402/MPP/L402: api.planetscale.com answers 401 JSON, x402./mpp./agents. subdomains do not resolve, no /.well-known/ucp, no x-payment-info in OpenAPI, nothing in Bazaar or mpp.dev. CLI and MCP return a Stripe Checkout URL to attach a card; we stopped there (no card). Once a card is attached, creating and resizing paid databases is headless via CLI/API, so with a card this would be. Stripe Projects lists planetscale/postgresql but is a developer preview behind an access request.
  8. CancelNot neededNothing to cancel: our agent started no paid plan.
  9. DeleteIn a browserNo delete-account or delete-org route in the API (OpenAPI) or CLI. Web UI Settings > Account > Delete account: type email, re-enter password (confirm-access), done. Verified: CLI token expired, password sign-in fails.
The attempt log · 45 attempts
Attempt log
CapabilityRouteResultEvidence
Find docs: Read llms.txt, agent setup prompt, plans, billing, Stripe Projects docsapidone ✓https://planetscale.com/docs/llms.txt 200 text/plain (23.5 KB); /docs/agent-setup/prompt.md is an agent-targeted setup page; every page has a .md twin
Sign up: Create account with test email via the public sign-up form, headlessapidone ✓POST https://auth.planetscale.com/sign-up (Rails form: email, password, confirmation, tos; hidden honeypot left empty) -> 302 to app.planetscale.com/new; verification mail arrived
Verify email: Open confirmation link from mailapidone ✓Mail Verify your PlanetScale account arrived within seconds; GET app.planetscale.com/confirmation?confirmation_token=•••• -> 302; account then authorized a device login and created org an inbox
Get CLI credentials: pscale auth login --format json (OAuth device flow), approve the device code headless with the session cookieclidone ✓login.out status pending with user_code; POST auth.planetscale.com/oauth/device (form) -> code_confirmed=true -> Authorization granted; pscale auth check --format json -> authenticated true, organization an inbox
First API call: pscale org list --format jsonclidone ✓[{name: an inbox, current: true}]
Check network latency to regions: pscale ping --format jsonclidone ✓JSON list of regions with latency, e.g. AWS eu-central-1 4.9ms, us-east-1 100.5ms
Create a database: pscale database create agentdrives-test --engine postgresql --org an inbox --format jsoncliblocked ✓CLI JSON: status error, issues[0].code unprocessable: We were unable to verify your credit card. Please add your payment information.
Create a database: Create a single-node Postgres (PS-5, $5/mo) via REST API with a service tokenapiplan_gated ✓POST https://api.planetscale.com/v1/organizations/an inbox/databases {name, kind: postgresql, cluster_size PS_5, replicas 0} -> 422 {code: unprocessable, message: We were unable to verify your credit card. Please add your payment information.}; docs planetscale-plans: no free plan
Pay / add payment method: pscale billing payment-method update --format json (no card entered)clipartial ✓Returned {status: pending, id, checkout_url: https://checkout.stripe.com/c/pay/cs_live_••••, next_steps: payment-method status <id>}. Same via MCP tool planetscale_update_payment_method. We stopped there: no card.
Create and manage service tokens: Create service token, grant org access, list it, call the API with itclidone ✓pscale service-token create -> id [redacted]; add-access read_organization read_databases create_databases -> accesses listed; service-token list shows it; GET api.planetscale.com/v1/organizations with Authorization: <id>:<token> -> 200 list with an inbox
Agent access via MCP server: Connect to hosted MCP with service token Bearer, tools/list, call a tool; then run a read querymcppartial ✓initialize OK (server Gram); tools/list 25 tools incl. planetscale_execute_read_query/_write_query, update_payment_method; tools/call planetscale_list_organizations returned an inbox
Review the organization audit log: pscale audit-log list --format json after creating a service tokenclidone ✓Entry audit_action service_token.granted_access for auditable_id [redacted]
Manage organization members: pscale org member list --format jsonclipartial ✓Lists our admin user
Create a branch for isolated schema/data development: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). pscale branch create agentdrives-test dev -> 'source database agentdrives-test does not exist in organization an inbox'.
Deploy an online, zero-downtime schema change via a reviewable deploy request: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Revert a deployed schema change with no downtime or data loss: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Run SQL against a branch (interactive shell or non-interactive query): Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). pscale sql agentdrives-test main --query 'SELECT 1' -> 'database lookup: Not Found'.
Scale read traffic with replicas: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Resize a branch's cluster (compute/memory): Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Horizontally shard a database (explicit sharding workflow): Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Promote a development branch to production / switch over traffic: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Create and restore branch backups: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Restore a Postgres branch to a specific point in time: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
View query insights (slow/expensive queries from production traffic): Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
View anomaly detection and automated schema recommendations: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Query historical and live branch metrics (CPU, connections, QPS, etc.): Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Query recent Postgres/Neki branch logs: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Run live read-only diagnostic checks (bloat, locks, unused indexes, long-running queries): Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Manage database credentials (passwords/roles) for connecting: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Restrict database access by IP address: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Set up a private network connection (AWS PrivateLink / GCP Private Service Connect): Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Provision a dedicated PgBouncer connection pooler: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Set query traffic budgets to throttle runaway Postgres queries (Database Traffic Control): Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Create webhooks for database events: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Import an existing database (Cloudflare D1, Supabase, Neon, Heroku, Aurora): Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Stream change data capture (logical CDC) out of a database: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Enable curated Postgres extensions (pg_cron, pg_partman, pg_stat_statements, pg_strict, TimescaleDB, etc.): Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Manage Neki data topology, shards, routers, and sidecars: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
Configure Single Sign-On (SSO) for an organization: Prerequisite: an existing database on a paid plancliplan_gated ✓Needs a database; database create returns 422 'We were unable to verify your credit card. Please add your payment information.' (no free plan). Not attempted beyond the database prerequisite.
View and update payment method: pscale billing payment-method show, then update (stop at Stripe Checkout)clipartial ✓show -> NOT_FOUND payment method does not exist in organization an inbox with next_step update; update -> Stripe Checkout URL + setup id; status command documented
Manage organization members, teams, and roles: Create team agentdrives-team, add ourselves, list members, delete teamclidone ✓org team create --name agentdrives-team -> id 6agnb7c9bmpt slug agentdrives-team-2; team member add -> membership 15toeumujk9s; team member list shows it; team delete -> team deleted; team list -> []
Create and manage service tokens: Delete the service token and confirmclidone ✓pscale service-token delete [redacted] -> token deleted; service-token list -> []
Cancel plan: Nothing to cancel: no plan or database was startednoneskippedBilling is per database; docs: deleting a database ends its billing; pscale database delete and billing payment-method delete exist in CLI/API
Delete account: Delete account and its only-member orgbrowserdone ✓No delete-user/org endpoint in OpenAPI (280 operations: only GET/PATCH /organizations/{org}, GET /user) or CLI. Web UI Settings > Account > Delete account: dialog asks to type email, then a confirm-access password page (sudo mode), then deleted -> redirected to sign-in. Afterwards pscale org list -> NO_AUTH token expired; password sign-in POST -> 302 back to sign-in.
CLI agent guide and JSON auth check: pscale agent-guide --format json and auth check --format jsonclidone ✓agent-guide status ok with guide text; auth check returned action_required with issues/next_steps before login, ok/authenticated after

Also in Databases.