# Use Deplane from Claude, ChatGPT and Cursor

Connect Deplane to your AI tool once. Then ask it to build and host an app, and it creates, deploys and runs it for you, in your Deplane team.

## Connect

The server URL is `https://api.deplane.cloud/mcp`. Your dashboard's **Tokens** page shows it with a Copy button.

- **Claude:** Settings → Connectors → Add custom connector → paste the URL.
- **ChatGPT:** Settings → Connectors → Create → paste the URL (developer mode).
- **Cursor and VS Code:** add a remote MCP server with the URL.

The tool opens a browser window. Sign in with your passkey, check what the tool may do, and press **Allow**. That is all.

## What the AI tool can do

Create apps; deploy files or a GitHub repository and wait until they are live; scale; roll back; set and remove variables; add Postgres databases and attach them to apps; see a database's backups; give an app a [disk](disks.md) and list disks with their backups; create a [Redis](redis.md), attach it to an app or detach it, back it up on request and list Redis with their backups; add workers, cron jobs and custom domains; and read apps, builds, logs, releases, metrics, usage, alerts and variable names.

`scale` takes `instances` (0 to 20 through this tool; the API and CLI allow more, up to your plan), `size`, `max_instances` (autoscale up to, at most 1000; 0 turns it off) and `sleep_after_minutes` (0, 5, 15 or 60). See [Scaling](scaling.md).

The tools: `whoami`, `list_apps`, `get_app`, `create_app`, `deploy_files`, `deploy_github`, `wait_for_deploy`, `redeploy`, `rollback`, `scale`, `logs`, `builds`, `build_log`, `releases`, `metrics`, `usage`, `set_variables`, `unset_variables`, `list_variables`, `create_database`, `attach_database`, `add_worker`, `add_domain`, `check_domain`, `list_database_backups`, `list_databases`, `list_domains`, `alerts`, `github_repos`, `list_disks`, `add_disk`, `list_redis`, `create_redis`, `attach_redis`, `detach_redis`, `back_up_redis`, `list_templates` and `deploy_template`. A template's generated admin sign-in is never given to an AI tool: open the deploy in the dashboard, or run `deplane templates credentials DEPLOY-ID`, to see it once.

Every call returns within a minute. A deploy usually takes longer, so `wait_for_deploy` says when it is still in progress and the AI tool calls it again. A new database takes about a minute before `attach_database` can attach it.

## What it cannot do

An AI tool can call only what its tools above need; Deplane refuses everything else on the server, whatever the tool asks, and anything added to Deplane later stays closed to AI tools until it is opened on purpose. So it cannot delete apps, databases, disks or Redis, restore or switch databases or restore disks or Redis (these need your passkey), back up a disk on request, detach databases, remove domains, set `DATABASE_URL` or `REDIS_URL` itself (it attaches databases and Redis instead), disconnect GitHub, change an app's settings (such as automatic rollback), change alert settings or channels, see the activity log, manage tokens or your team, or use admin features. Do those yourself in the dashboard.

## Limits

Per connection: 60 tool calls a minute, 30 deploys an hour, one deploy at a time per app. `deploy_files` takes up to 25 MB and 5,000 files; `.env` files are not uploaded. Your plan's limits apply as everywhere.

## Disconnect

On the **Tokens** page, under **Connected AI tools**, press **Disconnect**. The tool's access ends at once. Every change a tool makes is in **Activity**, marked with the tool's name.

## For tool builders

Deplane is an OAuth 2.1 authorization server with dynamic client registration (RFC 7591) and PKCE (S256 only). Discovery: `https://api.deplane.cloud/.well-known/oauth-protected-resource` and `/.well-known/oauth-authorization-server`. Access tokens last 1 hour; refresh tokens 30 days and rotate on every use. The transport is MCP Streamable HTTP, revision 2025-06-18, JSON responses. Clients without OAuth can send a CI token (`dpl_…`, from the Tokens page) as a Bearer token. The resource `deplane://docs` has the same text as `/llms.txt`.
