Supabase
MCP server for Supabase — 31 tools for database CRUD, storage, auth admin, project management, edge functions, and secrets via REST + Management APIs.
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 toolsSUPABASE_SERVICE_ROLE_KEY— Service role key (bypasses RLS) — from Settings → APISUPABASE_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
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- 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
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- 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:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - 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_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,3). Resource embedding (JOINs): select=*,orders(*) |
| 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. |
| 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. |
| sb_delete_records | Delete 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_function | Call a stored PostgreSQL function (RPC) in Supabase. Use method=GET for immutable functions, POST for volatile ones (default). |
| sb_list_buckets | List all storage buckets in the Supabase project. Returns bucket name, public status, size limits, and allowed MIME types. |
| 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. |
| sb_delete_bucket | Delete a storage bucket from Supabase. The bucket must be empty before deletion. Use sb_delete_objects to remove files first. |
| sb_list_objects | List objects (files) in a Supabase storage bucket. Supports prefix filtering, pagination, and search. |
| sb_delete_objects | Delete one or more objects from a Supabase storage bucket. Provide an array of file paths to delete. |
| sb_create_signed_url | Create a temporary signed URL for a private storage object. The URL expires after the specified duration. |
| sb_list_users | List all users in the Supabase Auth system. Returns paginated results with user details including email, metadata, and creation date. |
| sb_get_user | Get a single user by ID from Supabase Auth. Returns full user details including metadata, identities, and last sign-in. |
| 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, permissions). |
| sb_update_user | Update a user in Supabase Auth. Can change email, phone, password, metadata, or ban the user. |
| sb_delete_user | Delete a user from Supabase Auth. This permanently removes the user and all their auth data. |
| sb_list_projects | List all Supabase projects in your account. Returns project name, ref, region, status, and database info. Requires SUPABASE_ACCESS_TOKEN. |
| sb_get_project | Get details of a specific Supabase project by reference ID. Returns name, region, status, database host, and API URL. |
| sb_create_project | Create a new Supabase project. Requires organization ID, region, and database password. Project creation takes a few minutes. |
| 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 inactivity. |
| sb_restore_project | Restore a paused Supabase project. Restarts all services including database, auth, and storage. |
| sb_run_query | Execute 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_migrations | List database migrations for a Supabase project. Shows migration version, name, and status. |
| sb_get_typescript_types | Generate TypeScript type definitions from the Supabase project database schema. Useful for type-safe database access. |
| sb_list_functions | List all Edge Functions deployed to a Supabase project. Returns function slug, name, status, and creation date. |
| sb_get_function | Get details of a specific Edge Function by slug. Returns function metadata, status, version, and entry point. |
| sb_list_secrets | List all secrets (environment variables) for a Supabase project. Returns secret names only (values are never exposed). |
| 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. |
| sb_delete_secrets | Delete secrets (environment variables) from a Supabase project by name. |
| 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. |