SUPABASE TOOLS

63 tools from the Supabase MCP Server, categorised by risk level.

View the Supabase policy →

READ TOOLS

35
confirm_cost Ask the user to confirm their understanding of the cost of creating a new project or branch. Call `get_cost` first. Returns a unique ID for this co... get_advisors Gets a list of advisory notices for the Supabase project. Use this to check for security vulnerabilities or performance improvements. Include the r... get_cost Gets the cost of creating a new project or branch. Never assume organization as costs can be different for each. get_edge_function Retrieves file contents for an Edge Function in a Supabase project. get_logs Gets logs for a Supabase project by service type. Use this to help debug problems with your app. This will return logs within the last 24 hours. get_organization Gets details for an organization. Includes subscription plan. get_project Gets details for a Supabase project. get_project_url Gets the API URL for a project. get_publishable_keys Gets all publishable API keys for a project, including legacy anon keys (JWT-based) and modern publishable keys (format: sb_publishable_...). Publi... get_storage_config Get the storage config for a project 2/5 list_branches Lists all development branches of a Supabase project. This will return branch details including status which you can use to check when operations l... list_edge_functions Lists all Edge Functions in a Supabase project. list_extensions Lists all extensions in the database. list_migrations Lists all migrations in the database. list_organizations Lists all organizations that the user is a member of. list_projects Lists all Supabase projects for the user. Use this to help discover the project ID of the project that the user is working on. list_storage_buckets List all storage buckets in a project 2/5 list_tables Lists all tables in one or more schemas. pause_project Pauses a Supabase project. sb_call_function Call a stored PostgreSQL function (RPC) in Supabase. Use method=GET for immutable functions, POST for volatile ones (default). sb_get_function Get details of a specific Edge Function by slug. Returns function metadata, status, version, and entry point. sb_get_project Get details of a specific Supabase project by reference ID. Returns name, region, status, database host, and API URL. sb_get_typescript_types Generate TypeScript type definitions from the Supabase project database schema. Useful for type-safe database access. sb_get_user Get a single user by ID from Supabase Auth. Returns full user details including metadata, identities, and last sign-in. sb_list_api_keys List API keys for a Supabase project. Returns anon key, service_role key, and any custom keys with their names and roles. sb_list_buckets List all storage buckets in the Supabase project. Returns bucket name, public status, size limits, and allowed MIME types. sb_list_functions List all Edge Functions deployed to a Supabase project. Returns function slug, name, status, and creation date. sb_list_migrations List database migrations for a Supabase project. Shows migration version, name, and status. sb_list_objects List objects (files) in a Supabase storage bucket. Supports prefix filtering, pagination, and search. sb_list_projects List all Supabase projects in your account. Returns project name, ref, region, status, and database info. Requires SUPABASE_ACCESS_TOKEN. sb_list_records List records from a Supabase table/view with PostgREST filtering, column selection, ordering, and pagination. Filter syntax: age=gt.18, status=eq.a... sb_list_secrets List all secrets (environment variables) for a Supabase project. Returns secret names only (values are never exposed). sb_list_users List all users in the Supabase Auth system. Returns paginated results with user details including email, metadata, and creation date. 2/5 sb_pause_project Pause a Supabase project. Paused projects stop all services (database, auth, storage) and free up resources. Free tier projects auto-pause after in... search_docs Search the Supabase documentation using GraphQL. Must be a valid GraphQL query. You should default to calling this even if you think you already kn...

WRITE TOOLS

17
apply_migration Applies a migration to the database. Use this when executing DDL operations. Do not hardcode references to generated IDs in data migrations. 3/5 create_branch Creates a development branch on a Supabase project. This will apply all migrations from the main project to a fresh branch database. Note that prod... 2/5 create_project Creates a new Supabase project. Always ask the user which organization to create the project in. The project can take a few minutes to initialize -... 2/5 generate_typescript_types Generates TypeScript types for a project. 2/5 merge_branch Merges migrations and edge functions from a development branch to production. 2/5 restore_project Restores a Supabase project. 2/5 sb_create_bucket Create a new storage bucket in Supabase. Set public=true for publicly accessible files. Optionally set file size limit and allowed MIME types. 2/5 sb_create_project Create a new Supabase project. Requires organization ID, region, and database password. Project creation takes a few minutes. 2/5 sb_create_secrets Create or update secrets (environment variables) for a Supabase project. If a secret with the same name exists, it will be overwritten. 2/5 sb_create_signed_url Create a temporary signed URL for a private storage object. The URL expires after the specified duration. 3/5 sb_create_user Create a new user in Supabase Auth. Set email_confirm=true to skip email verification. Use app_metadata for admin-controlled data (roles, permissio... 3/5 sb_insert_records Insert one or more records into a Supabase table. Pass a single object or an array of objects. Use return=representation to get the created records... 2/5 sb_restore_project Restore a paused Supabase project. Restarts all services including database, auth, and storage. 2/5 sb_update_records Update records in a Supabase table matching a filter. Filter is REQUIRED to prevent accidental full-table updates. Use return=representation to see... 2/5 sb_update_user Update a user in Supabase Auth. Can change email, phone, password, metadata, or ban the user. 3/5 sb_upsert_records Upsert (insert or update on conflict) records in a Supabase table. Uses merge-duplicates by default. Specify on_conflict for non-primary-key columns. 2/5 update_storage_config Update storage config for a project 4/5

DESTRUCTIVE TOOLS

7

EXECUTE TOOLS

4
How many tools does the Supabase MCP server have? +

The Supabase MCP server exposes 63 tools across 4 categories: Read, Write, Destructive, Execute.

How do I enforce policies on Supabase tools? +

Use Intercept, the open-source MCP proxy. Write YAML rules for each tool — rate limits, argument validation, or deny rules — then run Intercept in front of the Supabase server.

What risk categories do Supabase tools fall into? +

Supabase tools are categorised as Read (35), Write (17), Destructive (7), Execute (4). Each category has a recommended default policy.

Enforce policies on Supabase

Open source. One binary. Zero dependencies.

npx -y @policylayer/intercept
github.com/policylayer/intercept →
// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.