技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
)\n- `query`: Valid PostgreSQL SQL statement\n- `read_only`: Boolean to force read-only transaction (safer for SELECTs)\n\n**Pitfalls**:\n- `project_ref` must be exactly 20 lowercase letters (a-z only, no numbers or hyphens)\n- `SELECT_FROM_TABLE` is read-only; use `RUN_SQL_QUERY` for INSERT, UPDATE, DELETE operations\n- For PostgreSQL array columns (text[], integer[]), use `ARRAY['item1', 'item2']` or `'{\"item1\", \"item2\"}'` syntax, NOT JSON array syntax `'[\"item1\", \"item2\"]'`\n- SQL identifiers that are case-sensitive must be double-quoted in queries\n- Complex DDL operations may timeout (~60 second limit); break into smaller queries\n- ERROR 42P01 \"relation does not exist\" usually means unquoted case-sensitive identifiers\n- ERROR 42883 \"function does not exist\" means you are calling non-standard helpers; prefer information_schema queries\n\n### 2. Manage Projects and Organizations\n\n**When to use**: User wants to list projects, inspect configurations, or manage organizations\n\n**Tool sequence**:\n1. `SUPABASE_LIST_ALL_ORGANIZATIONS` - List all organizations (IDs and names) [Required]\n2. `SUPABASE_GETS_INFORMATION_ABOUT_THE_ORGANIZATION` - Get detailed org info by slug [Optional]\n3. `SUPABASE_LIST_MEMBERS_OF_AN_ORGANIZATION` - List org members with roles and MFA status [Optional]\n4. `SUPABASE_LIST_ALL_PROJECTS` - List all projects with metadata [Required]\n5. `SUPABASE_GETS_PROJECT_S_POSTGRES_CONFIG` - Get database configuration [Optional]\n6. `SUPABASE_GETS_PROJECT_S_AUTH_CONFIG` - Get authentication configuration [Optional]\n7. `SUPABASE_GET_PROJECT_API_KEYS` - Get API keys (sensitive -- handle carefully) [Optional]\n8. `SUPABASE_GETS_PROJECT_S_SERVICE_HEALTH_STATUS` - Check service health [Optional]\n\n**Key parameters**:\n- `ref`: Project reference for project-specific tools\n- `slug`: Organization slug (URL-friendly identifier) for org tools\n- `services`: Array of services for health check: `auth`, `db`, `db_postgres_user`, `pg_bouncer`, `pooler`, `realtime`, `rest`, `storage`\n\n**Pitfalls**:\n- `LIST_ALL_ORGANIZATIONS` returns both `id` and `slug`; `LIST_MEMBERS_OF_AN_ORGANIZATION` expects `slug`, not `id`\n- `GET_PROJECT_API_KEYS` returns live secrets -- NEVER log, display, or persist full key values\n- `GETS_PROJECT_S_SERVICE_HEALTH_STATUS` requires a non-empty `services` array; empty array causes invalid_request error\n- Config tools may return 401/403 if token lacks required scope; handle gracefully rather than failing the whole workflow\n\n### 3. Inspect Database Schema\n\n**When to use**: User wants to understand table structure, columns, constraints, or generate types\n\n**Tool sequence**:\n1. `SUPABASE_LIST_ALL_PROJECTS` - Find the target project [Prerequisite]\n2. `SUPABASE_LIST_TABLES` - Enumerate all tables and views with metadata [Required]\n3. `SUPABASE_GET_TABLE_SCHEMAS` - Get detailed schema for specific tables [Required]\n4. `SUPABASE_GENERATE_TYPE_SCRIPT_TYPES` - Generate TypeScript types from schema [Optional]\n\n**Key parameters for LIST_TABLES**:\n- `project_ref`: Project reference\n- `schemas`: Array of schema names to search (e.g., `[\"public\"]`); omit for all non-system schemas\n- `include_views`: Include views alongside tables (default true)\n- `include_metadata`: Include row count estimates and sizes (default true)\n- `include_system_schemas`: Include pg_catalog, information_schema, etc. (default false)\n\n**Key parameters for GET_TABLE_SCHEMAS**:\n- `project_ref`: Project reference\n- `table_names`: Array of table names (max 20 per request); supports schema prefix like `public.users`, `auth.users`\n- `include_relationships`: Include foreign key info (default true)\n- `include_indexes`: Include index info (default true)\n- `exclude_null_values`: Cleaner output by hiding null fields (default true)\n\n**Key parameters for GENERATE_TYPE_SCRIPT_TYPES**:\n- `ref`: Project reference\n- `included_schemas`: Comma-separated schema names (default `\"public\"`)\n\n**Pitfalls**:\n- Table names without schema prefix assume `public` schema\n- `row_count` and `size_bytes` from LIST_TABLES may be null for views or recently created tables; treat as unknown, not zero\n- GET_TABLE_SCHEMAS has a max of 20 tables per request; batch if needed\n- TypeScript types include all tables in specified schemas; cannot filter individual tables\n\n### 4. Manage Edge Functions\n\n**When to use**: User wants to list, inspect, or work with Supabase Edge Functions\n\n**Tool sequence**:\n1. `SUPABASE_LIST_ALL_PROJECTS` - Find the project reference [Prerequisite]\n2. `SUPABASE_LIST_ALL_FUNCTIONS` - List all edge functions with metadata [Required]\n3. `SUPABASE_RETRIEVE_A_FUNCTION` - Get detailed info for a specific function [Optional]\n\n**Key parameters**:\n- `ref`: Project reference\n- Function slug for RETRIEVE_A_FUNCTION\n\n**Pitfalls**:\n- `LIST_ALL_FUNCTIONS` returns metadata only, not function code or logs\n- `created_at` and `updated_at` may be epoch milliseconds; convert to human-readable timestamps\n- These tools cannot create or deploy edge functions; they are read-only inspection tools\n- Permission errors may occur without org/project admin rights\n\n### 5. Manage Storage Buckets\n\n**When to use**: User wants to list storage buckets or manage file storage\n\n**Tool sequence**:\n1. `SUPABASE_LIST_ALL_PROJECTS` - Find the project reference [Prerequisite]\n2. `SUPABASE_LISTS_ALL_BUCKETS` - List all storage buckets [Required]\n\n**Key parameters**:\n- `ref`: Project reference\n\n**Pitfalls**:\n- `LISTS_ALL_BUCKETS` returns bucket list only, not bucket contents or access policies\n- For file uploads, `SUPABASE_RESUMABLE_UPLOAD_SIGN_OPTIONS_WITH_ID` handles CORS preflight for TUS resumable uploads only\n- Direct file operations may require using `proxy_execute` with the Supabase storage API\n\n## Common Patterns\n\n### ID Resolution\n- **Project reference**: `SUPABASE_LIST_ALL_PROJECTS` -- extract `ref` field (20 lowercase letters)\n- **Organization slug**: `SUPABASE_LIST_ALL_ORGANIZATIONS` -- use `slug` (not `id`) for downstream org tools\n- **Table names**: `SUPABASE_LIST_TABLES` -- enumerate available tables before querying\n- **Schema discovery**: `SUPABASE_GET_TABLE_SCHEMAS` -- inspect columns and constraints before writes\n\n### Pagination\n- `SUPABASE_SELECT_FROM_TABLE`: Uses `offset` + `limit` pagination. Increment offset by limit until fewer rows than limit are returned.\n- `SUPABASE_LIST_ALL_PROJECTS`: May paginate for large accounts; follow cursors/pages until exhausted.\n- `SUPABASE_LIST_TABLES`: May paginate for large databases.\n\n### SQL Best Practices\n- Always use `SUPABASE_GET_TABLE_SCHEMAS` or `SUPABASE_LIST_TABLES` before writing SQL\n- Use `read_only: true` for SELECT queries to prevent accidental mutations\n- Quote case-sensitive identifiers: `SELECT * FROM \"MyTable\"` not `SELECT * FROM MyTable`\n- Use PostgreSQL array syntax for array columns: `ARRAY['a', 'b']` not `['a', 'b']`\n- Break complex DDL into smaller statements to avoid timeouts\n\n## Known Pitfalls\n\n### ID Formats\n- Project references are exactly 20 lowercase letters (a-z): pattern `^[a-z]{20}
supabase-automation【数据与研究】Automate Supabase database queries, table management, project administration, storage, edge functions, and SQL execution via Rube MCP (Composio). Always search tools first for current schemas.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
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 supabaseRUBE_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 supabaseWhen 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, valueorder: Sort expression like created_at.desclimit: 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, storagePitfalls:
LIST_ALL_ORGANIZATIONS returns both id and slug; LIST_MEMBERS_OF_AN_ORGANIZATION expects slug, not idGET_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.usersinclude_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 MyTableARRAY['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 idBETA_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: falseGETS_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