Skip to main content
Glama
HenkDz

Self-Hosted Supabase MCP Server

by HenkDz

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

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

NameDescription
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 (supabase gen types) and downloads the file to the specified absolute path. The tool returns the current platform (win32, darwin, linux) to help with path formatting. Requires DATABASE_URL configuration and Supabase CLI installed.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 21 tools

Disambiguation4/5

Most tools have distinct purposes targeting specific Supabase domains like auth, database, storage, and migrations. However, some overlap exists between list_tables and list_extensions/list_migrations as they all list database entities, though their descriptions clarify the specific resources. The auth tools (create/update/delete/get/list_auth_user) are clearly differentiated by action.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, using snake_case uniformly. Examples include apply_migration, create_auth_user, execute_sql, list_tables, and update_auth_user. This predictability makes it easy for agents to understand and select tools.

Tool Count4/5

With 21 tools, the count is on the higher side but reasonable for a self-hosted Supabase server covering multiple domains like auth, database, storage, and migrations. It might feel slightly heavy, but each tool appears to serve a specific function without obvious redundancy.

Completeness4/5

The toolset provides comprehensive coverage for core Supabase operations, including CRUD for auth users, database queries, migrations, storage, and monitoring. Minor gaps exist, such as no direct tools for managing storage objects (only listing) or handling realtime subscriptions beyond listing publications, but agents can work around these using execute_sql or other tools.

Maintenance

ActivityInactive
ResponsivenessNo issues