Data as of

Supabase MCP Server for Windsurf: Setup & Config

Connect Windsurf to Supabase projects for SQL, schema changes, debugging, and Edge Functions.

What you can do with Supabase in Windsurf

A broad Supabase development interface with explicit project scoping and read-only controls.

  • Inspect project tables and run data queries.
  • Apply tracked SQL migrations during development.
  • Manage development branches when the plan supports them.

Before you start: Supabase in Windsurf

  • A Supabase account with access to the intended organization
  • An MCP client supporting hosted HTTP connections

No runnable server launch command is stated in the provided README. Configure the hosted URL and complete the client login flow. The README recommends project_ref scoping and read_only=true.

Supabase Windsurf configuration

  1. Choose Windsurf configuration scope

    For Supabase MCP Server, open macOS/Linux: ~/.codeium/windsurf/mcp_config.json Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json. Merge into mcpServers; remote endpoints use serverUrl.

  2. Add Supabase MCP Server to Windsurf

    Use the supabase-mcp entry below in mcpServers. Keep Supabase MCP Server's documented http connection fields and your other Windsurf entries.

  3. Check Supabase MCP Server in Windsurf

    Supabase MCP Server: Refresh MCP in Windsurf settings and inspect Cascade’s tools.

Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json

Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

JSON
{
  "mcpServers": {
    "supabase-mcp": {
      "serverUrl": "https://mcp.supabase.com/mcp"
    }
  }
}

Supabase tools available to Windsurf

Supabase's stored tool list documents 33 tools; compare it with Windsurf's connected tool list, because the stored list is not a live check.

search_docs

After refreshing Supabase in Windsurf settings, check Cascade's tool list for search_docs.

Search current Supabase documentation through a GraphQL request.

list_organizations

After refreshing Supabase in Windsurf settings, check Cascade's tool list for list_organizations.

Find organizations associated with the signed-in user.

get_organization

After refreshing Supabase in Windsurf settings, check Cascade's tool list for get_organization.

list_projects

After refreshing Supabase in Windsurf settings, check Cascade's tool list for list_projects.

get_project

After refreshing Supabase in Windsurf settings, check Cascade's tool list for get_project.

get_cost

After refreshing Supabase in Windsurf settings, check Cascade's tool list for get_cost.

confirm_cost

After refreshing Supabase in Windsurf settings, check Cascade's tool list for confirm_cost.

create_project

After refreshing Supabase in Windsurf settings, check Cascade's tool list for create_project.

pause_project

After refreshing Supabase in Windsurf settings, check Cascade's tool list for pause_project.

restore_project

After refreshing Supabase in Windsurf settings, check Cascade's tool list for restore_project.

list_tables

After refreshing Supabase in Windsurf settings, check Cascade's tool list for list_tables.

Inspect tables in selected schemas, optionally expanding structural details.

list_extensions

After refreshing Supabase in Windsurf settings, check Cascade's tool list for list_extensions.

Inspect installed database extensions.

list_migrations

After refreshing Supabase in Windsurf settings, check Cascade's tool list for list_migrations.

Inspect the database's tracked migration history.

apply_migration

After refreshing Supabase in Windsurf settings, check Cascade's tool list for apply_migration.

Apply SQL schema changes as a recorded database migration.

execute_sql

After refreshing Supabase in Windsurf settings, check Cascade's tool list for execute_sql.

Run database SQL for data queries rather than tracked schema changes.

query_logs

After refreshing Supabase in Windsurf settings, check Cascade's tool list for query_logs.

Query a project's unified log stream with read-only ClickHouse SQL.

get_logs

After refreshing Supabase in Windsurf settings, check Cascade's tool list for get_logs.

Retrieve a project's logs for a selected service.

get_advisors

After refreshing Supabase in Windsurf settings, check Cascade's tool list for get_advisors.

get_project_url

After refreshing Supabase in Windsurf settings, check Cascade's tool list for get_project_url.

get_publishable_keys

After refreshing Supabase in Windsurf settings, check Cascade's tool list for get_publishable_keys.

generate_typescript_types

After refreshing Supabase in Windsurf settings, check Cascade's tool list for generate_typescript_types.

list_edge_functions

After refreshing Supabase in Windsurf settings, check Cascade's tool list for list_edge_functions.

get_edge_function

After refreshing Supabase in Windsurf settings, check Cascade's tool list for get_edge_function.

deploy_edge_function

After refreshing Supabase in Windsurf settings, check Cascade's tool list for deploy_edge_function.

create_branch

After refreshing Supabase in Windsurf settings, check Cascade's tool list for create_branch.

list_branches

After refreshing Supabase in Windsurf settings, check Cascade's tool list for list_branches.

Inspect development branches and their operation status.

delete_branch

After refreshing Supabase in Windsurf settings, check Cascade's tool list for delete_branch.

Remove a development branch.

merge_branch

After refreshing Supabase in Windsurf settings, check Cascade's tool list for merge_branch.

Promote a branch's migrations and Edge Functions into production.

reset_branch

After refreshing Supabase in Windsurf settings, check Cascade's tool list for reset_branch.

Reset branch migrations, discarding untracked schema or data changes.

rebase_branch

After refreshing Supabase in Windsurf settings, check Cascade's tool list for rebase_branch.

Apply newer production migrations to a development branch.

list_storage_buckets

After refreshing Supabase in Windsurf settings, check Cascade's tool list for list_storage_buckets.

Inspect the storage buckets available in a project.

get_storage_config

After refreshing Supabase in Windsurf settings, check Cascade's tool list for get_storage_config.

Read project storage settings.

update_storage_config

After refreshing Supabase in Windsurf settings, check Cascade's tool list for update_storage_config.

Change project storage settings; the README requires a paid plan.

Supabase: full stored tool descriptions

Troubleshooting Supabase in Windsurf

  • For Supabase MCP Server, Windsurf reads serverUrl (mcp.supabase.com), not url. Refresh the connection and check the tools exposed to Cascade.
  • Supabase MCP Server: check http connectivity to mcp.supabase.com from Windsurf; a stdio command is not a replacement for this endpoint.
  • Transport mismatch: Supabase's catalog lists stdio; the displayed Windsurf configuration uses http.
  • Known limitation: Broad access can mutate project data and infrastructure unless restricted.
  • Known limitation: Branching is experimental and requires a paid plan.
  • Known limitation: Local and self-hosted MCP variants provide fewer tools and lack OAuth 2.1.
  • General Windsurf troubleshooting lives in the /clients/windsurf guide.

Supabase MCP Server — details. Windsurf guide

Frequently asked questions

Windsurf reads Supabase MCP Server under mcpServers in ~/.codeium/windsurf/mcp_config.json on macOS/Linux; Windows uses %USERPROFILE%\.codeium\windsurf\mcp_config.json.

Windsurf's supabase-mcp example uses http. The Supabase MCP Server catalog lists stdio; these instructions follow the stored configuration instead.

Windsurf connects Supabase MCP Server to mcp.supabase.com using serverUrl.

Supabase MCP Server's stored list contains 33 tools, including search_docs, list_organizations, get_organization. Compare those names with Windsurf's connected tool list; the stored list is not a live check.

It disables mutating tools and runs execute_sql through a read-only Postgres user.

The CLI exposes a local MCP endpoint, but the README says local and self-hosted variants have a smaller toolset and no OAuth 2.1.