supabase-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TRANSPORT | No | Transport mode: stdio (default) or http | stdio |
| SUPABASE_URL | Yes | Your Supabase project URL | |
| SUPABASE_SERVICE_ROLE_KEY | Yes | Service role key (found in Project Settings > API) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| supabase_queryA | Select rows from a Supabase table with filters, ordering, and pagination |
| supabase_insertB | Insert one or more rows into a Supabase table |
| supabase_updateA | Update rows in a Supabase table matching the given filters |
| supabase_deleteA | Delete rows from a Supabase table matching the given filters |
| supabase_upsertA | Upsert (insert or update on conflict) rows in a Supabase table |
| supabase_rpcC | Call a Postgres function via RPC |
| supabase_list_tablesB | List all tables in the database schema |
| supabase_auth_list_usersA | List all users with pagination |
| supabase_auth_get_userA | Get a single user by their ID |
| supabase_auth_create_userB | Create a new user with email/password or phone |
| supabase_auth_update_userA | Update a user's email, password, phone, or metadata |
| supabase_auth_delete_userB | Delete a user by their ID |
| supabase_storage_list_bucketsA | List all storage buckets |
| supabase_storage_create_bucketB | Create a new storage bucket |
| supabase_storage_list_filesA | List files in a storage bucket at a given path |
| supabase_storage_uploadA | Upload a file to a storage bucket (base64-encoded content) |
| supabase_storage_downloadA | Download a file from a storage bucket (returns base64) |
| supabase_storage_deleteA | Delete files from a storage bucket |
| supabase_storage_get_public_urlA | Get the public URL for a file in a storage bucket |
| supabase_storage_moveA | Move or rename a file within a storage bucket |
| supabase_functions_invokeC | Invoke a Supabase Edge Function |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 21 tools
Tools are cleanly separated into database, auth, storage, and functions domains, each with distinct actions. There is no overlap; e.g., supabase_insert, supabase_update, and supabase_upsert are clearly differentiated by their descriptions.
All tool names use snake_case and follow a consistent 'supabase_' prefix. The pattern is mostly verb_noun (e.g., supabase_storage_create_bucket), but database tools like supabase_query and supabase_insert lack a domain prefix, making them slightly less consistent with the auth/storage/functions groups.
21 tools is on the heavier side, but the server covers four distinct Supabase subsystems (database, auth, storage, functions), each with a reasonable set of operations. The count is justified for the broad scope, though it approaches the upper boundary.
The tool set provides solid CRUD coverage for database rows and users, plus file operations and RPC/function invocation. Minor gaps exist, such as missing storage bucket update/delete and lack of detailed schema inspection beyond listing tables, but these are not critical for most workflows.