← All action domains

Supabase

12 operations. Call each with POST https://app.chirply.io/api/v1/actions/<name> and a bearer token; the response is { "data": { "action", "summary", "result" } }. A read badge means the operation changes nothing; write requires the credential’s write scope.

Create Supabase project

supabase.create_projectwriteconfirmadmin only

Creates a REAL Supabase project (Postgres database + user auth + file storage) in its own Supabase account. Supabase bills that account's organization directly for the project's compute — real money on the tenant's own Supabase invoice, starting immediately (their free tier covers two small projects). The project comes up asynchronously over one to three minutes; poll supabase.get_project until status is ACTIVE_HEALTHY.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
namestringrequiredA name for the project, shown here and in the Supabase dashboard.
supabase_org_idstringrequiredWhich Supabase organization (their side) to create it in — an organization id from supabase.get_connection.
region"us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "ca-central-1" | "sa-east-1" | … 11 morerequiredThe region the database lives in — pick the one closest to the app's users. Cannot be changed later.

Example

curl -X POST https://app.chirply.io/api/v1/actions/supabase.create_project \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Example",
    "supabase_org_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "region": "us-east-1"
  }'
Test with your API key

Over MCP the same operation is the tool supabase_create_project at https://app.chirply.io/api/mcp, same bearer token, same input.

Delete project

supabase.delete_projectwriteconfirmadmin only

PERMANENTLY deletes a Supabase project from its own Supabase account — the database and every row, user, and file in it are destroyed with no undo, and anything using it as a backend stops working. Supabase stops billing for it. Use supabase.forget_project to merely remove a project from this account without touching the real project.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project's id in this account (from supabase.list_projects — NOT the Supabase project ref).

Example

curl -X POST https://app.chirply.io/api/v1/actions/supabase.delete_project \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool supabase_delete_project at https://app.chirply.io/api/mcp, same bearer token, same input.

Disconnect Supabase

supabase.disconnectwriteconfirmadmin only

Removes its own Supabase account connection (the stored token or OAuth grant). Refuses while any backend link still exists, so live sites and apps aren't silently stranded — unlink them first. Project mirror rows are kept; the real projects in the Supabase account are untouched.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/supabase.disconnect \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool supabase_disconnect at https://app.chirply.io/api/mcp, same bearer token, same input.

Remove project from account

supabase.forget_projectwriteadmin only

Forgets a project locally — removes its row and backend links from this account only. The real Supabase project keeps running, untouched, in the tenant's account; supabase.sync_projects would re-import it.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project's id in this account (from supabase.list_projects — NOT the Supabase project ref).

Example

curl -X POST https://app.chirply.io/api/v1/actions/supabase.forget_project \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool supabase_forget_project at https://app.chirply.io/api/mcp, same bearer token, same input.

Check Supabase connection

supabase.get_connectionreadadmin only

Checks whether this account has connected its own Supabase account (pasted personal access token or OAuth grant) and, when connected, verifies it live and lists the Supabase organizations the credential can see — the organization ids create_project needs. Never returns the credential itself.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/supabase.get_connection \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool supabase_get_connection at https://app.chirply.io/api/mcp, same bearer token, same input.

View project

supabase.get_projectreadadmin only

One Supabase project's current state: refreshes status from the live account, fetches its API keys once available, and returns the project with its links. Safe to poll after create_project.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project's id in this account (from supabase.list_projects — NOT the Supabase project ref).

Example

curl -X POST https://app.chirply.io/api/v1/actions/supabase.get_project \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool supabase_get_project at https://app.chirply.io/api/mcp, same bearer token, same input.

Reveal project credentials

supabase.get_project_keysreadconfirmadmin only

Returns a project's connection credentials: API URL and publishable (anon) key always, plus — only when include_service_role is true — the service-role key, which bypasses every row-level security rule on the tenant's project, and the generated database password for Chirply-provisioned projects. Handing out the service-role key is equivalent to handing out the whole database, which is why this call requires confirmation.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project's id in this account (from supabase.list_projects — NOT the Supabase project ref).
include_service_rolebooleanoptionalAlso return the service-role key and database password. Leave false unless a trusted server-side use genuinely needs them. Default: false

Example

curl -X POST https://app.chirply.io/api/v1/actions/supabase.get_project_keys \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool supabase_get_project_keys at https://app.chirply.io/api/mcp, same bearer token, same input.

List Supabase projects

supabase.list_projectsreadadmin only

Lists the Supabase projects this account knows about — provisioned from here or imported from the connected account — with status, region, API URL, the public (anon) key, and what each one is linked to as a backend. Reads the local mirror; run supabase.sync_projects first for a fresh pull from the account.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/supabase.list_projects \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool supabase_list_projects at https://app.chirply.io/api/mcp, same bearer token, same input.

Run SQL on project

supabase.run_sqlwriteconfirmadmin only

Executes arbitrary SQL against one of the account's own Supabase projects with full database privileges — creating tables, migrating schemas, reading or DELETING any data in that project. This is the tool for setting up a linked backend's schema. It runs on the tenant's project, not on Chirply, but a destructive statement is still irreversible.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project's id in this account (from supabase.list_projects — NOT the Supabase project ref).
querystringrequiredThe SQL to execute, verbatim, with full privileges on that project.

Example

curl -X POST https://app.chirply.io/api/v1/actions/supabase.run_sql \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "query": "example"
  }'
Test with your API key

Over MCP the same operation is the tool supabase_run_sql at https://app.chirply.io/api/mcp, same bearer token, same input.

Sync projects from Supabase

supabase.sync_projectswriteadmin only

Pulls the live project list from the connected Supabase account and mirrors it here: refreshes names/regions/statuses, imports projects that already existed in the account, and marks projects deleted upstream. Changes nothing in the Supabase account itself.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/supabase.sync_projects \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool supabase_sync_projects at https://app.chirply.io/api/mcp, same bearer token, same input.

The machine-readable version of this page is GET https://app.chirply.io/api/v1/actions?domain=supabase — same operations, with full JSON Schemas. Authentication, errors and rate limits are covered in the API documentation home.