Self-Hosted Supabase MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_tablesB | Lists all accessible tables in the connected database, grouped by schema. |
| list_extensionsA | Lists all installed PostgreSQL extensions in the database. |
| list_migrationsA | Lists applied database migrations recorded in supabase_migrations.schema_migrations table. |
| apply_migrationA | Applies a SQL migration script and records it in the supabase_migrations.schema_migrations table within a transaction. |
| execute_sqlB | Executes an arbitrary SQL query against the database, using direct database connection when available or RPC function as fallback. |
| get_database_connectionsA | Retrieves information about active database connections from pg_stat_activity. |
| get_database_statsA | Retrieves statistics about database activity and the background writer from pg_stat_database and pg_stat_bgwriter. |
| get_project_urlA | Returns the configured Supabase project URL for this server. |
| get_anon_keyA | Returns the configured Supabase anon key for this server. |
| get_service_keyA | Returns the configured Supabase service role key for this server, if available. |
| generate_typescript_typesA | Generates TypeScript types from the database schema using the Supabase CLI ( |
| rebuild_hooksB | Attempts to restart the pg_net worker. Requires the pg_net extension to be installed and available. |
| verify_jwt_secretA | Checks if the Supabase JWT secret is configured for this server and returns a preview. |
| list_auth_usersC | Lists users from the auth.users table. |
| get_auth_userB | Retrieves details for a specific user from auth.users by their ID. |
| delete_auth_userA | Deletes a user from auth.users by their ID. Requires service_role key and direct DB connection. |
| create_auth_userA | Creates a new user directly in auth.users. WARNING: Requires plain password, insecure. Use with extreme caution. |
| update_auth_userA | Updates fields for a user in auth.users. WARNING: Password handling is insecure. Requires service_role key and direct DB connection. |
| list_storage_bucketsB | Lists all storage buckets in the project. |
| list_storage_objectsA | Lists objects within a specific storage bucket, optionally filtering by prefix. |
| list_realtime_publicationsA | Lists PostgreSQL publications, often used by Supabase Realtime. |
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
Each tool has a clearly distinct purpose targeting specific resources and actions within the Supabase ecosystem. For example, auth operations (create_auth_user, get_auth_user, update_auth_user, delete_auth_user, list_auth_users) are clearly separated from storage operations (list_storage_buckets, list_storage_objects), database operations (execute_sql, list_tables, list_extensions), and monitoring tools (get_database_stats, get_database_connections). No tools appear to overlap in functionality.
The tool names follow a highly consistent verb_noun pattern throughout, with clear action prefixes like 'get_', 'list_', 'create_', 'update_', 'delete_', 'apply_', 'execute_', 'generate_', and 'verify_'. All tools use snake_case consistently, making them predictable and readable. Examples include get_anon_key, list_auth_users, apply_migration, and verify_jwt_secret.
With 21 tools, the count is slightly high but reasonable for a comprehensive Supabase management server covering authentication, database operations, storage, monitoring, and migrations. The tools are well-scoped across different domains rather than being redundant. A minor reduction could improve focus, but the count aligns with the server's broad purpose.
The tool set provides complete coverage for managing a self-hosted Supabase instance, including CRUD operations for auth users, database querying and monitoring, storage bucket and object listing, migration management, and utility functions like generating TypeScript types and verifying configurations. No obvious gaps exist; agents can perform all essential administrative and development tasks without dead ends.