Supabase

MCP server for Supabase — 31 tools for database CRUD, storage, auth admin, project management, edge functions, and secrets via REST + Management APIs.

Community: Submitted by a user or imported; check the owner before granting accessOnlineAPI key requiredGlobalFreeCan modify data

What it can do

  • 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.active, name=ilike.*john*, id=in.(1,2
  • 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 back.
  • 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 what changed.

What data it sees

Do you need an account

An API key from the service settings is required

MCP server for Supabase — 31 tools for database CRUD, storage, auth admin, project management, edge functions, and secrets via REST + Management APIs.

Features

  • Database CRUD with PostgREST filtering, resource embedding (JOINs), and RPC
  • Storage bucket and object management with signed URLs
  • Auth admin for user creation, updates, bans, and deletion
  • Project lifecycle management (create, pause, restore)
  • Execute SQL queries and generate TypeScript types
  • Edge function inspection and secret/API key management

31 Tools

  • Database REST (6): sb_list_records, sb_insert_records, sb_update_records, sb_upsert_records, sb_delete_records, sb_call_function
  • Storage (6): sb_list_buckets, sb_create_bucket, sb_delete_bucket, sb_list_objects, sb_delete_objects, sb_create_signed_url
  • Auth Admin (5): sb_list_users, sb_get_user, sb_create_user, sb_update_user, sb_delete_user
  • Projects (5): sb_list_projects, sb_get_project, sb_create_project, sb_pause_project, sb_restore_project
  • Database Management (3): sb_run_query, sb_list_migrations, sb_get_typescript_types
  • Edge Functions (2): sb_list_functions, sb_get_function
  • Secrets & Keys (4): sb_list_secrets, sb_create_secrets, sb_delete_secrets, sb_list_api_keys

Configuration

  • SUPABASE_URL — Project URL (e.g. https://xxx.supabase.co) — for database, storage, auth tools
  • SUPABASE_SERVICE_ROLE_KEY — Service role key (bypasses RLS) — from Settings → API
  • SUPABASE_ACCESS_TOKEN — Personal access token — for project management tools (from dashboard → Account → Access Tokens)

How to connect

How to connect Supabase to Claude

The server address to paste into Claude settings:

https://supabase--node2flow.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect Supabase to ChatGPT

The server address to paste into ChatGPT settings:

https://supabase--node2flow.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect Supabase to Cursor

The server address to paste into Cursor settings:

https://supabase--node2flow.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (31)

Raw names from tools/list. Only developers need these.

sb_list_recordsList records from a Supabase table/view with PostgREST filtering, column selection, ordering, and pagination. Filter syntax: age=gt.18, status=eq.active, name=ilike.*john*, id=in.(1,2,3). Resource embedding (JOINs): select=*,orders(*)
sb_insert_recordsInsert 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 back.
sb_update_recordsUpdate records in a Supabase table matching a filter. Filter is REQUIRED to prevent accidental full-table updates. Use return=representation to see what changed.
sb_upsert_recordsUpsert (insert or update on conflict) records in a Supabase table. Uses merge-duplicates by default. Specify on_conflict for non-primary-key columns.
sb_delete_recordsDelete records from a Supabase table matching a filter. Filter is REQUIRED to prevent accidental full-table deletion. Use sb_list_records first to verify which records will be deleted.
sb_call_functionCall a stored PostgreSQL function (RPC) in Supabase. Use method=GET for immutable functions, POST for volatile ones (default).
sb_list_bucketsList all storage buckets in the Supabase project. Returns bucket name, public status, size limits, and allowed MIME types.
sb_create_bucketCreate a new storage bucket in Supabase. Set public=true for publicly accessible files. Optionally set file size limit and allowed MIME types.
sb_delete_bucketDelete a storage bucket from Supabase. The bucket must be empty before deletion. Use sb_delete_objects to remove files first.
sb_list_objectsList objects (files) in a Supabase storage bucket. Supports prefix filtering, pagination, and search.
sb_delete_objectsDelete one or more objects from a Supabase storage bucket. Provide an array of file paths to delete.
sb_create_signed_urlCreate a temporary signed URL for a private storage object. The URL expires after the specified duration.
sb_list_usersList all users in the Supabase Auth system. Returns paginated results with user details including email, metadata, and creation date.
sb_get_userGet a single user by ID from Supabase Auth. Returns full user details including metadata, identities, and last sign-in.
sb_create_userCreate a new user in Supabase Auth. Set email_confirm=true to skip email verification. Use app_metadata for admin-controlled data (roles, permissions).
sb_update_userUpdate a user in Supabase Auth. Can change email, phone, password, metadata, or ban the user.
sb_delete_userDelete a user from Supabase Auth. This permanently removes the user and all their auth data.
sb_list_projectsList all Supabase projects in your account. Returns project name, ref, region, status, and database info. Requires SUPABASE_ACCESS_TOKEN.
sb_get_projectGet details of a specific Supabase project by reference ID. Returns name, region, status, database host, and API URL.
sb_create_projectCreate a new Supabase project. Requires organization ID, region, and database password. Project creation takes a few minutes.
sb_pause_projectPause a Supabase project. Paused projects stop all services (database, auth, storage) and free up resources. Free tier projects auto-pause after inactivity.
sb_restore_projectRestore a paused Supabase project. Restarts all services including database, auth, and storage.
sb_run_queryExecute a SQL query on a Supabase project database via the Management API. Supports SELECT, INSERT, UPDATE, DELETE, CREATE TABLE, and all SQL. Returns query results as JSON.
sb_list_migrationsList database migrations for a Supabase project. Shows migration version, name, and status.
sb_get_typescript_typesGenerate TypeScript type definitions from the Supabase project database schema. Useful for type-safe database access.
sb_list_functionsList all Edge Functions deployed to a Supabase project. Returns function slug, name, status, and creation date.
sb_get_functionGet details of a specific Edge Function by slug. Returns function metadata, status, version, and entry point.
sb_list_secretsList all secrets (environment variables) for a Supabase project. Returns secret names only (values are never exposed).
sb_create_secretsCreate or update secrets (environment variables) for a Supabase project. If a secret with the same name exists, it will be overwritten.
sb_delete_secretsDelete secrets (environment variables) from a Supabase project by name.
sb_list_api_keysList API keys for a Supabase project. Returns anon key, service_role key, and any custom keys with their names and roles.