{"openapi":"3.1.0","info":{"title":"Supabase (BYOK) API","version":"0.1.0","description":"Supabase (BYOK) lets an AI assistant read your own Supabase data through the Supabase API with a key you supply (personal access token). Read-only: 11 tools (get_profile, list_organizations, get_organization, list_organization_members, list_projects, get_project, list_edge_functions, list_storage_buckets, list_database_branches, list_migrations, get_security_advisors). The BYOK key travels with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-supabase.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-supabase/docs"},"termsOfService":"https://connectorbay.com/byok-supabase/terms"},"servers":[{"url":"https://byok-supabase.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-supabase/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_profile":{"post":{"operationId":"get_profile","summary":"Show the Supabase account the token belongs to: username and primary email. Use for \"Which Supabase account is my token ","description":"Show the Supabase account the token belongs to: username and primary email. Use for \"Which Supabase account is my token connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_profileArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_organizations":{"post":{"operationId":"list_organizations","summary":"List the Supabase organizations the token can see, with id, slug and name. Use for \"Which Supabase organizations do I be","description":"List the Supabase organizations the token can see, with id, slug and name. Use for \"Which Supabase organizations do I belong to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_organizationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_organization":{"post":{"operationId":"get_organization","summary":"Get one Supabase organization: name, plan (free, pro, team or enterprise) and allowed release channels. Use for \"Which S","description":"Get one Supabase organization: name, plan (free, pro, team or enterprise) and allowed release channels. Use for \"Which Supabase plan is my organization on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"slug":{"description":"Organization slug as returned by list_organizations, for example 'my-org-slug'.","maxLength":100,"title":"Slug","type":"string"}},"required":["slug"],"title":"get_organizationArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_organization_members":{"post":{"operationId":"list_organization_members","summary":"List the members of a Supabase organization with name, email, role and whether MFA is on. Use for \"Who are the members o","description":"List the members of a Supabase organization with name, email, role and whether MFA is on. Use for \"Who are the members of my Supabase organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"slug":{"description":"Organization slug as returned by list_organizations, for example 'my-org-slug'.","maxLength":100,"title":"Slug","type":"string"}},"required":["slug"],"title":"list_organization_membersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_projects":{"post":{"operationId":"list_projects","summary":"List all Supabase projects the token can access with ref, organization, region, status and Postgres version. Use for \"Wh","description":"List all Supabase projects the token can access with ref, organization, region, status and Postgres version. Use for \"What Supabase projects do I have and are they healthy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_projectsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_project":{"post":{"operationId":"get_project","summary":"Get one Supabase project by ref: name, organization, region, status, database host and Postgres version. Use for \"Show d","description":"Get one Supabase project by ref: name, organization, region, status, database host and Postgres version. Use for \"Show details of my Supabase project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by list_projects.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"get_projectArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_edge_functions":{"post":{"operationId":"list_edge_functions","summary":"List the edge functions deployed in a Supabase project with slug, name, status, version and JWT verification flag. Use f","description":"List the edge functions deployed in a Supabase project with slug, name, status, version and JWT verification flag. Use for \"Which edge functions are deployed in my Supabase project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by list_projects.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"list_edge_functionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_storage_buckets":{"post":{"operationId":"list_storage_buckets","summary":"List the storage buckets of a Supabase project with name, public flag and dates. File contents are not returned. Use for","description":"List the storage buckets of a Supabase project with name, public flag and dates. File contents are not returned. Use for \"Which storage buckets does my Supabase project have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by list_projects.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"list_storage_bucketsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_database_branches":{"post":{"operationId":"list_database_branches","summary":"List the preview branches of a Supabase project with git branch, status, persistence and dates. Needs a plan with branch","description":"List the preview branches of a Supabase project with git branch, status, persistence and dates. Needs a plan with branching. Use for \"What Supabase preview branches exist for my project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by list_projects.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"list_database_branchesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_migrations":{"post":{"operationId":"list_migrations","summary":"List the database migrations applied to a Supabase project: version and name only, no SQL. Use for \"Which migrations hav","description":"List the database migrations applied to a Supabase project: version and name only, no SQL. Use for \"Which migrations have been applied to my Supabase database\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by list_projects.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"list_migrationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_security_advisors":{"post":{"operationId":"get_security_advisors","summary":"List security advisor findings for a Supabase project (for example tables without row level security) with level, title,","description":"List security advisor findings for a Supabase project (for example tables without row level security) with level, title, description and remediation text. Use for \"Does my Supabase project have any security advisor warnings\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref":{"description":"Supabase project reference: the 20-character id in the project URL (for example 'abcdefghijklmnopqrst'), as returned by list_projects.","maxLength":40,"title":"Ref","type":"string"}},"required":["ref"],"title":"get_security_advisorsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}