MCP server for self-hosted Supabase instances
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"clr-supabase-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# clr-supabase-mcp MCP server for self-hosted Supabase instances with multi-instance support. ## Features - Schema introspection, SQL execution, migrations - Auth user management (GoTrue) - Storage bucket/object management - Edge function management - Multi-instance support via credentials.json - Module-based tool loading (`--modules` flag) - Read-only mode ## Installation ```bash pip install clr-supabase-mcp ``` ## Configuration ### Step 1: Create the credentials directory ```bash mkdir -p ~/.config/supabase ``` ### Step 2: Find your Supabase credentials You need three values from your self-hosted Supabase deployment: **1. Supabase URL** — The public Kong gateway URL for your instance. This is the URL you use to access the Supabase API (e.g. `https://supabase.example.com`). If you're running Supabase locally via Docker, this is typically `http://localhost:8000`. **2. Service Role Key** — The `service_role` JWT key that grants admin access. Find it in your Supabase `.env` file: ```bash # In your Supabase deployment directory: grep SERVICE_ROLE_KEY .env # or look for the value of SUPABASE_SERVICE_ROLE_KEY ``` This key looks like `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...` (a long JWT token). **3. Database URL** — Direct PostgreSQL connection string. Build it from values in your Supabase `.env` file: ``` postgresql://postgres:YOUR_POSTGRES_PASSWORD@YOUR_DB_HOST:5432/postgres ``` Find the password: ```bash grep POSTGRES_PASSWORD .env ``` The DB host depends on your setup: - **Docker on same machine:** `localhost` (or the mapped port, check `docker compose ps`) - **Remote server:** The hostname/IP of your database server - **Docker network name:** `db` (if connecting from within the same Docker network) ### Step 3: Create credentials.json **Single instance:** ```bash cat > ~/.config/supabase/credentials.json << 'EOF' { "url": "https://supabase.example.com", "service_key": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "db_url": "postgresql://postgres:…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.