Self-Hosted Supabase MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DATABASE_URLNoThe direct PostgreSQL connection string for your Supabase database (e.g., postgresql://postgres:password@localhost:5432/postgres)
SUPABASE_URLYesThe main HTTP URL of your Supabase project (e.g., http://localhost:8000)
SUPABASE_ANON_KEYYesYour Supabase project's anonymous key
SUPABASE_AUTH_JWT_SECRETNoYour Supabase project's JWT secret. Needed for tools like verify_jwt_secret
SUPABASE_SERVICE_ROLE_KEYNoYour Supabase project's service role key. Needed for operations requiring elevated privileges

Schema

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Tools

Functions exposed to the LLM to take actions

NameDescription
list_tables

Lists all accessible tables in the connected database, grouped by schema.

list_extensions

Lists all installed PostgreSQL extensions in the database.

list_migrations

Lists applied database migrations recorded in supabase_migrations.schema_migrations table.

apply_migration

Applies a SQL migration script and records it in the supabase_migrations.schema_migrations table within a transaction.

execute_sql

Executes an arbitrary SQL query against the database, primarily using the execute_sql RPC function.

get_database_connections

Retrieves information about active database connections from pg_stat_activity.

get_database_stats

Retrieves statistics about database activity and the background writer from pg_stat_database and pg_stat_bgwriter.

get_project_url

Returns the configured Supabase project URL for this server.

get_anon_key

Returns the configured Supabase anon key for this server.

get_service_key

Returns the configured Supabase service role key for this server, if available.

generate_typescript_types

Generates TypeScript types from the database schema using the Supabase CLI (supabase gen types). Requires DATABASE_URL configuration and Supabase CLI installed.

rebuild_hooks

Attempts to restart the pg_net worker. Requires the pg_net extension to be installed and available.

verify_jwt_secret

Checks if the Supabase JWT secret is configured for this server and returns a preview.

list_auth_users

Lists users from the auth.users table.

get_auth_user

Retrieves details for a specific user from auth.users by their ID.

delete_auth_user

Deletes a user from auth.users by their ID. Requires service_role key and direct DB connection.

create_auth_user

Creates a new user directly in auth.users. WARNING: Requires plain password, insecure. Use with extreme caution.

update_auth_user

Updates fields for a user in auth.users. WARNING: Password handling is insecure. Requires service_role key and direct DB connection.

list_storage_buckets

Lists all storage buckets in the project.

list_storage_objects

Lists objects within a specific storage bucket, optionally filtering by prefix.

list_realtime_publications

Lists PostgreSQL publications, often used by Supabase Realtime.

ID: kgziynf39e