Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt

Use this file to discover all available pages before exploring further.

Version: 1.0.0
Date: 2026-01-15

Overview

This guide documents how to configure Supabase MCP (Model Context Protocol) to access multiple Supabase projects (e.g., staging and production) from within Cursor IDE.

Project Configuration

Current Projects

ProjectProject ReferenceURLEnvironment
Productionzkgxozahyczcnzpwhbbfhttps://zkgxozahyczcnzpwhbbf.supabase.coProduction
Stagingrzfzikcargkoyhgqllaphttps://rzfzikcargkoyhgqllap.supabase.coStaging

Configuration Options

Configure separate MCP server entries in your Cursor settings (~/.cursor/mcp_settings.json or VS Code settings.json):
{
  "mcpServers": {
    "supabase": {
      "command": "npx",
      "args": ["-y", "@supabase/mcp-server-supabase@latest", "--project-ref", "rzfzikcargkoyhgqllap"],
      "env": {
        "SUPABASE_ACCESS_TOKEN": "${env:SUPABASE_ACCESS_TOKEN}"
      }
    },
    "supabase_prod": {
      "command": "npx",
      "args": ["-y", "@supabase/mcp-server-supabase@latest", "--project-ref", "zkgxozahyczcnzpwhbbf"],
      "env": {
        "SUPABASE_ACCESS_TOKEN": "${env:SUPABASE_ACCESS_TOKEN}"
      }
    }
  }
}
Usage:
  • Use mcp_supabase_* tools for staging operations
  • Use mcp_supabase_prod_* tools for production operations

Option 2: Environment-Based Switching

Configure a single MCP server and switch projects using environment variables:
{
  "mcpServers": {
    "supabase": {
      "command": "npx",
      "args": ["-y", "@supabase/mcp-server-supabase@latest", "--project-ref", "${env:SUPABASE_PROJECT_REF}"],
      "env": {
        "SUPABASE_ACCESS_TOKEN": "${env:SUPABASE_ACCESS_TOKEN}"
      }
    }
  }
}
Usage:
# For staging
export SUPABASE_PROJECT_REF=rzfzikcargkoyhgqllap
# Restart Cursor

# For production
export SUPABASE_PROJECT_REF=zkgxozahyczcnzpwhbbf
# Restart Cursor

Option 3: OAuth Client Per Environment (Enterprise)

For enhanced security in production environments, register separate OAuth clients for each environment:
  1. Create OAuth Clients in Supabase Dashboard:
    • Go to Settings → API → OAuth Clients
    • Create mcp-staging client for staging project
    • Create mcp-production client for production project
  2. Configure MCP with OAuth:
    {
      "mcpServers": {
        "supabase": {
          "command": "npx",
          "args": [
            "-y", "@supabase/mcp-server-supabase@latest",
            "--project-ref", "rzfzikcargkoyhgqllap",
            "--oauth-client-id", "${env:MCP_STAGING_CLIENT_ID}",
            "--oauth-client-secret", "${env:MCP_STAGING_CLIENT_SECRET}"
          ]
        }
      }
    }
    

Security Considerations

Access Token Management

  • Personal Access Token: Generated from Supabase Dashboard → Account → Access Tokens
  • Store in environment variable: SUPABASE_ACCESS_TOKEN
  • Never commit access tokens to version control
  • Rotate tokens regularly

Environment Isolation

EnvironmentRecommended Access
StagingFull MCP access (read/write)
ProductionRead-only MCP access OR separate OAuth client

Best Practices

  1. Use staging by default for AI-assisted operations
  2. Require explicit confirmation before production operations
  3. Log all MCP operations for audit purposes
  4. Rotate access tokens after team member departures

Available MCP Tools

Staging Project (mcp_supabase_*)

ToolPurpose
mcp_supabase_execute_sqlExecute SQL queries
mcp_supabase_apply_migrationApply database migrations
mcp_supabase_list_tablesList database tables
mcp_supabase_list_migrationsList applied migrations
mcp_supabase_search_docsSearch Supabase documentation
mcp_supabase_get_project_urlGet project URL
mcp_supabase_generate_typescript_typesGenerate TypeScript types
mcp_supabase_list_edge_functionsList Edge Functions
mcp_supabase_get_logsGet service logs

Production Project (mcp_supabase_prod_*)

Same tools as staging, prefixed with _prod:
  • mcp_supabase_prod_execute_sql
  • mcp_supabase_prod_list_tables
  • etc.

Verification

Check Current Connection

-- Run via MCP to verify project
SELECT current_database(), current_user;

Verify Project Isolation

-- Check for seed data (should only exist in staging)
SELECT COUNT(*) FROM pf_organizations WHERE id::text LIKE '00000000-%';
-- Expected: 2 (staging), 0 (production)

Troubleshooting

MCP Connection Issues

  1. Verify access token is set correctly
  2. Check project reference matches intended environment
  3. Restart Cursor after configuration changes
  4. Check logs in Cursor Developer Tools

Wrong Project Connected

If operations are being applied to the wrong project:
  1. Stop immediately and assess damage
  2. Check mcp_settings.json configuration
  3. Verify environment variables
  4. Revert any unintended changes

Change Log

VersionDateChanges
1.0.02026-01-15Initial version with multi-project setup options