Automate Supabase operations including database queries, table schema inspection, SQL execution, project and organization management, storage buckets, edge functions, and service health monitoring through Composio's Supabase toolkit.
Toolkit docs: composio.dev/toolkits/supabase
RUBE_MANAGE_CONNECTIONS with toolkit supabase
RUBE_SEARCH_TOOLS first to get current tool schemasGet Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit supabase
When to use: User wants to read data from tables, inspect schemas, or perform CRUD operations
Tool sequence:
SUPABASE_LIST_ALL_PROJECTS - List projects to find the target project_ref [Prerequisite]SUPABASE_LIST_TABLES - List all tables and views in the database [Prerequisite]SUPABASE_GET_TABLE_SCHEMAS - Get detailed column types, constraints, and relationships [Prerequisite for writes]SUPABASE_SELECT_FROM_TABLE - Query rows with filtering, sorting, and pagination [Required for reads]SUPABASE_BETA_RUN_SQL_QUERY - Execute arbitrary SQL for complex queries, inserts, updates, or deletes [Required for writes]Key parameters for SELECT_FROM_TABLE:
project_ref: 20-character lowercase project referencetable: Table or view name to queryselect: Comma-separated column list (supports nested selections and JSON paths like profile->avatar_url)filters: Array of filter objects with column, operator, value
order: Sort expression like created_at.desc
limit: Max rows to return (minimum 1)offset: Rows to skip for paginationPostgREST filter operators:
eq, neq: Equal / not equalgt, gte, lt, lte: Comparison operatorslike, ilike: Pattern matching (case-sensitive / insensitive)is: IS check (for null, true, false)in: In a list of valuescs, cd: Contains / contained by (arrays)fts, plfts, phfts, wfts: Full-text search variantsKey parameters for RUN_SQL_QUERY:
ref: Project reference (20 lowercase letters, pattern ^[a-z]{20}$)query: Valid PostgreSQL SQL statementread_only: Boolean to force read-only transaction (safer for SELECTs)Pitfalls:
project_ref must be exactly 20 lowercase letters (a-z only, no numbers or hyphens)SELECT_FROM_TABLE is read-only; use RUN_SQL_QUERY for INSERT, UPDATE, DELETE operationsARRAY['item1', 'item2'] or '{"item1", "item2"}' syntax, NOT JSON array syntax '["item1", "item2"]'
When to use: User wants to list projects, inspect configurations, or manage organizations
Tool sequence:
SUPABASE_LIST_ALL_ORGANIZATIONS - List all organizations (IDs and names) [Required]SUPABASE_GETS_INFORMATION_ABOUT_THE_ORGANIZATION - Get detailed org info by slug [Optional]SUPABASE_LIST_MEMBERS_OF_AN_ORGANIZATION - List org members with roles and MFA status [Optional]SUPABASE_LIST_ALL_PROJECTS - List all projects with metadata [Required]SUPABASE_GETS_PROJECT_S_POSTGRES_CONFIG - Get database configuration [Optional]SUPABASE_GETS_PROJECT_S_AUTH_CONFIG - Get authentication configuration [Optional]SUPABASE_GET_PROJECT_API_KEYS - Get API keys (sensitive -- handle carefully) [Optional]SUPABASE_GETS_PROJECT_S_SERVICE_HEALTH_STATUS - Check service health [Optional]Key parameters:
ref: Project reference for project-specific toolsslug: Organization slug (URL-friendly identifier) for org toolsservices: Array of services for health check: auth, db, db_postgres_user, pg_bouncer, pooler, realtime, rest, storage
Pitfalls:
LIST_ALL_ORGANIZATIONS returns both id and slug; LIST_MEMBERS_OF_AN_ORGANIZATION expects slug, not id
GET_PROJECT_API_KEYS returns live secrets -- NEVER log, display, or persist full key valuesGETS_PROJECT_S_SERVICE_HEALTH_STATUS requires a non-empty services array; empty array causes invalid_request errorWhen to use: User wants to understand table structure, columns, constraints, or generate types
Tool sequence:
SUPABASE_LIST_ALL_PROJECTS - Find the target project [Prerequisite]SUPABASE_LIST_TABLES - Enumerate all tables and views with metadata [Required]SUPABASE_GET_TABLE_SCHEMAS - Get detailed schema for specific tables [Required]SUPABASE_GENERATE_TYPE_SCRIPT_TYPES - Generate TypeScript types from schema [Optional]Key parameters for LIST_TABLES:
project_ref: Project referenceschemas: Array of schema names to search (e.g., ["public"]); omit for all non-system schemasinclude_views: Include views alongside tables (default true)include_metadata: Include row count estimates and sizes (default true)include_system_schemas: Include pg_catalog, information_schema, etc. (default false)Key parameters for GET_TABLE_SCHEMAS:
project_ref: Project referencetable_names: Array of table names (max 20 per request); supports schema prefix like public.users, auth.users
include_relationships: Include foreign key info (default true)include_indexes: Include index info (default true)exclude_null_values: Cleaner output by hiding null fields (default true)Key parameters for GENERATE_TYPE_SCRIPT_TYPES:
ref: Project referenceincluded_schemas: Comma-separated schema names (default "public")Pitfalls:
public schemarow_count and size_bytes from LIST_TABLES may be null for views or recently created tables; treat as unknown, not zeroWhen to use: User wants to list, inspect, or work with Supabase Edge Functions
Tool sequence:
SUPABASE_LIST_ALL_PROJECTS - Find the project reference [Prerequisite]SUPABASE_LIST_ALL_FUNCTIONS - List all edge functions with metadata [Required]SUPABASE_RETRIEVE_A_FUNCTION - Get detailed info for a specific function [Optional]Key parameters:
ref: Project referencePitfalls:
LIST_ALL_FUNCTIONS returns metadata only, not function code or logscreated_at and updated_at may be epoch milliseconds; convert to human-readable timestampsWhen to use: User wants to list storage buckets or manage file storage
Tool sequence:
SUPABASE_LIST_ALL_PROJECTS - Find the project reference [Prerequisite]SUPABASE_LISTS_ALL_BUCKETS - List all storage buckets [Required]Key parameters:
ref: Project referencePitfalls:
LISTS_ALL_BUCKETS returns bucket list only, not bucket contents or access policiesSUPABASE_RESUMABLE_UPLOAD_SIGN_OPTIONS_WITH_ID handles CORS preflight for TUS resumable uploads onlyproxy_execute with the Supabase storage APISUPABASE_LIST_ALL_PROJECTS -- extract ref field (20 lowercase letters)SUPABASE_LIST_ALL_ORGANIZATIONS -- use slug (not id) for downstream org toolsSUPABASE_LIST_TABLES -- enumerate available tables before queryingSUPABASE_GET_TABLE_SCHEMAS -- inspect columns and constraints before writesSUPABASE_SELECT_FROM_TABLE: Uses offset + limit pagination. Increment offset by limit until fewer rows than limit are returned.SUPABASE_LIST_ALL_PROJECTS: May paginate for large accounts; follow cursors/pages until exhausted.SUPABASE_LIST_TABLES: May paginate for large databases.SUPABASE_GET_TABLE_SCHEMAS or SUPABASE_LIST_TABLES before writing SQLread_only: true for SELECT queries to prevent accidental mutationsSELECT * FROM "MyTable" not SELECT * FROM MyTable
ARRAY['a', 'b'] not ['a', 'b']
^[a-z]{20}$
id (UUID) and slug (URL-friendly string); tools vary in which they acceptLIST_MEMBERS_OF_AN_ORGANIZATION requires slug, not id
BETA_RUN_SQL_QUERY has ~60 second timeout for complex operationsARRAY['item'] or '{"item"}', NOT JSON syntax '["item"]'
GET_PROJECT_API_KEYS returns service-role keys -- NEVER expose full valuesrow_count and size_bytes from LIST_TABLES can be null; do not treat as zeroinclude_system_schemas: true to see theminclude_views: false
GETS_PROJECT_S_SERVICE_HEALTH_STATUS fails with empty services array -- always specify at least one| Task | Tool Slug | Key Params |
|---|---|---|
| List organizations | SUPABASE_LIST_ALL_ORGANIZATIONS |
(none) |
| Get org info | SUPABASE_GETS_INFORMATION_ABOUT_THE_ORGANIZATION |
slug |
| List org members | SUPABASE_LIST_MEMBERS_OF_AN_ORGANIZATION |
slug |
| List projects | SUPABASE_LIST_ALL_PROJECTS |
(none) |
| List tables | SUPABASE_LIST_TABLES |
project_ref, schemas |
| Get table schemas | SUPABASE_GET_TABLE_SCHEMAS |
project_ref, table_names |
| Query table | SUPABASE_SELECT_FROM_TABLE |
project_ref, table, select, filters |
| Run SQL | SUPABASE_BETA_RUN_SQL_QUERY |
ref, query, read_only |
| Generate TS types | SUPABASE_GENERATE_TYPE_SCRIPT_TYPES |
ref, included_schemas |
| Postgres config | SUPABASE_GETS_PROJECT_S_POSTGRES_CONFIG |
ref |
| Auth config | SUPABASE_GETS_PROJECT_S_AUTH_CONFIG |
ref |
| Get API keys | SUPABASE_GET_PROJECT_API_KEYS |
ref |
| Service health | SUPABASE_GETS_PROJECT_S_SERVICE_HEALTH_STATUS |
ref, services |
| List edge functions | SUPABASE_LIST_ALL_FUNCTIONS |
ref |
| Get edge function | SUPABASE_RETRIEVE_A_FUNCTION |
ref, function slug |
| List storage buckets | SUPABASE_LISTS_ALL_BUCKETS |
ref |
| List DB branches | SUPABASE_LIST_ALL_DATABASE_BRANCHES |
ref |
Powered by Composio