Data as of

Query MCP for Supabase for Windsurf: Setup & Config

Windsurf: Query MCP connects coding assistants to Supabase SQL, schema changes, project management, and user administration.

What you can do with Query MCP for Supabase in Windsurf

Supabase SQL and administration in one stdio server, with explicit query-risk controls.

  • Version database schema changes during development.
  • Manage users through Supabase Auth Admin methods.

Before you start: Query MCP for Supabase in Windsurf

  • Python 3.12+
  • uv for this launch command
  • Install the supabase-mcp-server package
  • A Supabase hosted project or local development instance

The README installs the package with uv pip install supabase-mcp-server before launching it. Packaged installs do not load project-local .env files. Claude Desktop requires an absolute executable path. Active maintenance has ended.

Query MCP for Supabase Windsurf configuration

  1. Choose Windsurf configuration scope

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

  2. Add Query MCP for Supabase to Windsurf

    Use the supabase-mcp-server entry below in mcpServers. Keep Query MCP for Supabase's documented stdio connection fields and your other Windsurf entries.

  3. Check Query MCP for Supabase in Windsurf

    Query MCP for Supabase: 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-server": {
      "command": "uv",
      "args": [
        "run",
        "supabase-mcp-server"
      ],
      "env": {
        "QUERY_API_KEY": "<API key from thequery.dev>",
        "SUPABASE_PROJECT_REF": "<Project reference or local host and port>",
        "SUPABASE_DB_PASSWORD": "<Database password>",
        "SUPABASE_REGION": "<Hosting region for a remote project>",
        "SUPABASE_ACCESS_TOKEN": "<Optional Management API access token>",
        "SUPABASE_SERVICE_ROLE_KEY": "<Optional Auth Admin service-role key>"
      }
    }
  }
}

Troubleshooting Query MCP for Supabase in Windsurf

  • Check uv on the machine running Windsurf's MCP integration for Query MCP for Supabase; refresh MCP and inspect Cascade's tools.
  • Check QUERY_API_KEY, SUPABASE_ACCESS_TOKEN, SUPABASE_DB_PASSWORD, SUPABASE_PROJECT_REF, SUPABASE_REGION, SUPABASE_SERVICE_ROLE_KEY for Query MCP for Supabase; do not bypass a Windsurf permission error with a broad administrator token.
  • Query MCP for Supabase uses stdio here: Windsurf must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
  • Known limitation: No longer actively maintained by its author.
  • Known limitation: Requires a separate Query API key.
  • Known limitation: Does not support arbitrary connection strings or session pooling.
  • General Windsurf troubleshooting lives in the /clients/windsurf guide.

Query MCP for Supabase — details. Windsurf guide

Frequently asked questions

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

Windsurf's supabase-mcp-server example uses stdio.

Query MCP for Supabase's Windsurf configuration invokes uv.

Windsurf's Query MCP for Supabase example references QUERY_API_KEY, SUPABASE_ACCESS_TOKEN, SUPABASE_DB_PASSWORD, SUPABASE_PROJECT_REF, SUPABASE_REGION, SUPABASE_SERVICE_ROLE_KEY. Check these names if startup or authentication fails; the example alone does not distinguish required from optional values.

No. Remote database access uses transaction pooling; local development uses a direct connection.

The input identifies Apache-2.0.