D

Supabase MCP Server

MCP server for managing Supabase projects including database operations, edge functions, branching, storage, and documentation search

Overall Score52/100

Score Breakdown

Server Info

Package
@supabase/mcp-server-supabase
Registry
npm
Maintainer
SupabaseVendor
Category
Cloud & Infrastructure
Tags
databaseauthpostgres
Last Scanned
7 Apr 2026

Findings

7 issues

Authentication & Identity

HIGHNo per-request auth - requires instance-per-user

Stdio-only transport. Auth is via SUPABASE_ACCESS_TOKEN env var or --access-token CLI flag. The token is a Personal Access Token (PAT) for the Supabase Management API. Project-scoped mode removes account-level tools and injects project_id automatically. For multi-tenant deployment, the platform must spawn a separate server instance per user.

Remediation

Add HTTP/SSE transport to accept per-request Authorization headers, or implement the MCP OAuth spec.

Tool Schema Quality

MEDIUMOnly 6 of 32 schemas have parameter constraints

Most schemas lack maxLength, enum, or pattern constraints on string parameters.

Remediation

Add constraints to string parameters, especially on write operations.

CRITICALDangerous execution surface: execute_sql: raw SQL execution

Tool allows raw code/query execution which could be exploited via prompt injection.

Remediation

Use parameterized queries or validated command sets.

CRITICALDangerous execution surface: apply_migration: raw SQL via migration

Tool allows raw code/query execution which could be exploited via prompt injection.

Remediation

Use parameterized queries or validated command sets.

LLM Safety

HIGHTool descriptions contain instructional language

Descriptions include directives that could influence LLM behavior beyond tool selection.

Remediation

Remove instructional language. Descriptions should be purely factual.

Data Exposure

MEDIUM7 list operations lack pagination

List operations (list_tables, list_projects, list_organizations, etc.) do not have pagination parameters - they return all results. list_tables has a verbose flag to control detail level. No field selection support. The logs tool is scoped to last 24 hours.

Remediation

Add limit/offset or cursor-based pagination.

LOWNo field selection on responses

Responses return full records rather than projected fields.

Remediation

Implement field selection to return only relevant fields.

Tools

32 total
NameDescriptionRisk
list_organizationsLists all organizations that the user is a member of.read
get_organizationGets details for an organization. Includes subscription plan.read
list_projectsLists all Supabase projects for the user.read
get_projectGets details for a Supabase project.read
get_costGets the cost of creating a new project or branch.read
confirm_costAsk the user to confirm their understanding of the cost of creating a new project or branch.read
create_projectCreates a new Supabase project.admin
pause_projectPauses a Supabase project.admin
restore_projectRestores a Supabase project.admin
list_tablesLists all tables in one or more schemas. By default returns a compact summary. Set verbose to true to include column details.read
list_extensionsLists all extensions in the database.read
list_migrationsLists all migrations in the database.read
apply_migrationApplies a migration to the database. Use this when executing DDL operations.write
execute_sqlExecutes raw SQL in the Postgres database. Use apply_migration instead for DDL operations.write
get_logsGets logs for a Supabase project by service type.read
get_advisorsGets a list of advisory notices for the Supabase project.read
get_project_urlGets the API URL for a project.read
get_publishable_keysGets all publishable API keys for a project, including legacy anon keys and modern publishable keys.read
generate_typescript_typesGenerates TypeScript types for a project.read
search_docsSearch the Supabase documentation using GraphQL.read
list_edge_functionsLists all Edge Functions in a Supabase project.read
get_edge_functionRetrieves file contents for an Edge Function in a Supabase project.read
deploy_edge_functionDeploys an Edge Function to a Supabase project. If the function already exists, this will create a new version.write
create_branchCreates a development branch on a Supabase project.write
list_branchesLists all development branches of a Supabase project.read
delete_branchDeletes a development branch.admin
merge_branchMerges migrations and edge functions from a development branch to production.write
reset_branchResets migrations of a development branch. Any untracked data or schema changes will be lost.admin
rebase_branchRebases a development branch on top of the latest production migrations.write
list_storage_bucketsLists all storage buckets in a Supabase project.read
get_storage_configGet the storage config for a Supabase project.read
update_storage_configUpdate the storage config for a Supabase project.write

Deploy Supabase MCP Server securely

CompleteFlow adds per-user authentication, permission scoping, and audit logging to any MCP server out of the box.

Deploy on CompleteFlow