Query tables, manage auth users, and browse storage buckets via Supabase REST API with RLS
110+ deploysclaude mcp add supabase --url https://datafaucet.dev/api/mcp/t/supabase
Run this command in your terminal · most users connect in under 60s
GET endpoints
list_rows
Query rows via PostgREST. Filter with query params: 'column=eq.value', 'column=gt.5', 'column=in.(a,b,c)'. Select specific columns with 'select=id,name'. Order with 'order=created_at.desc'. RLS policies apply unless using service_key. Paginate with 'offset' and 'limit' (max 1000).
https://{project_ref}.supabase.co/rest/v1/{table}?select=*&limit=20
list_users
Admin endpoint: list all auth users with id, email, phone, provider (email/google/github), email_confirmed_at, last_sign_in_at, created_at, and user_metadata object. Requires service_role key. Paginate with 'page' and 'per_page' (default 50, max 1000).
https://{project_ref}.supabase.co/auth/v1/admin/users
list_buckets
List all storage buckets with id, name, public flag (true = no auth for downloads), file_size_limit (bytes), allowed_mime_types array, and created_at. Public buckets serve files at /storage/v1/object/public/{bucket}/{path}.
https://{project_ref}.supabase.co/storage/v1/bucket
list_files
List objects in a bucket. Returns name, id, size (bytes), content_type, created_at, and last_accessed_at. Pass 'prefix' in body to filter by folder path. Nested folders appear as objects with metadata.mimetype = null. Max 100 per request, paginate with 'offset'.
https://{project_ref}.supabase.co/storage/v1/object/list/{bucket}
get_row_by_column
Get a single row by column value. The Accept header returns a single object (not array). Returns 406 if no match or multiple matches. Use 'id=eq.123' or 'email=eq.user@example.com'. Combine with 'select=id,name,email' to limit returned columns.
https://{project_ref}.supabase.co/rest/v1/{table}?select=*&{column}=eq.{value}&limit=1
POST endpoints
insert_row
Insert a row into any table. Body is JSON with column:value pairs matching your schema. 'Prefer: return=representation' returns the created row with auto-generated columns (id, created_at). For bulk insert, pass an array of objects. Unique constraint violations return 409.
https://{project_ref}.supabase.co/rest/v1/{table}
call_rpc
Call a Postgres function (RPC). Body is JSON with function parameters as key:value pairs. Function must be defined with 'security definer' or accessible via RLS. Returns the function result directly. Use for complex queries, aggregations, or custom logic that can't be expressed via PostgREST filters.
https://{project_ref}.supabase.co/rest/v1/rpc/{function_name}
PATCH endpoints
update_rows
Update rows matching a filter. Body contains columns to update. Filter required (no filter = update ALL rows). Returns updated rows with 'Prefer: return=representation'. Use multiple filters: 'status=eq.pending&created_at=lt.2024-01-01'. Returns empty array if no rows match filter.
https://{project_ref}.supabase.co/rest/v1/{table}?{column}=eq.{value}
Run this in your terminal:
claude mcp add supabase https://datafaucet.dev/api/mcp/t/supabase
Connect Supabase to your AI agent in under 60 seconds. No account required.
{notion_token}) with your real credentialsNeed API keys? Try our free sandbox templates first to see MCP in action with zero setup.
Replace these placeholders with your real values before deploying:
{bucket}Your value{column}Your value{function_name}Your value{new_status}Your value{project_ref}Your value{row_email}Email address{row_name}Your value{supabase_anon_key}Your value{supabase_service_key}Your value{table}Your value{value}Your valuePreview:
GET https://{project_ref}.supabase.co/rest/v1/{table}?select=*&limit=20 apikey: {supabase_anon_key} Authorization: Bearer {supabase_service_key}
claude mcp add supabase --url https://datafaucet.dev/api/mcp/t/supabaseWhat your AI agent sees
I have access to 8 tools from Supabase: list_rows, insert_row, list_users, and 5 more.
“Query rows via PostgREST. Filter with query params: 'column=eq.value', 'column=gt.5', 'column=in.(a,b,c)'. Select specific columns with 'select=id,name'. Order with 'order=created_at.desc'. RLS policies apply unless using service_key. Paginate with 'offset' and 'limit' (max 1000).”
Calling list_rows... Done. Here are the results.
Try these prompts
“List all users who signed up in the last 24 hours”
Copy“Query the orders table for items over $100 and show the results”
Copy“Check how many rows are in the products table”
CopyClick any prompt to copy, then paste into your AI client.