MCP Supabase Server

cloud9-labs/mcp-supabase
0 starsCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

MCP server for Supabase database and storage operations, enabling querying, inserting, updating, deleting rows, schema introspection, and file storage management.

README.md

MCP Supabase Server

Model Context Protocol (MCP) server for Supabase database and storage operations.

Features

  • Database Operations: Query, insert, update, delete rows
  • Schema Introspection: List tables, get column definitions
  • Storage Operations: Upload, list, delete files and buckets
  • RPC Support: Call stored functions
  • Raw SQL: Execute custom SQL queries (requires setup)

Installation

npm install @cloud9-labs/mcp-supabase

Configuration

Set the following environment variables:

export SUPABASE_URL="https://your-project.supabase.co"
export SUPABASE_SERVICE_KEY="your-service-role-key"

Claude Desktop Configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "supabase": {
      "command": "npx",
      "args": ["-y", "@cloud9-labs/mcp-supabase"],
      "env": {
        "SUPABASE_URL": "https://your-project.supabase.co",
        "SUPABASE_SERVICE_KEY": "your-service-role-key"
      }
    }
  }
}

Available Tools

Database Operations

  • supabase_query: Execute SELECT with filters, ordering, pagination
  • supabase_insert: Insert rows into a table
  • supabase_update: Update rows matching filter conditions
  • supabase_delete: Delete rows matching filter conditions
  • supabase_rpc: Call stored functions/RPC endpoints

Schema Introspection

  • supabase_list_tables: List all tables in public schema
  • supabase_get_table_schema: Get column definitions for a table

Storage Operations

  • supabase_upload_file: Upload a file to storage bucket
  • supabase_list_files: List files in a bucket
  • supabase_delete_file: Delete a file from storage
  • supabase_list_buckets: List all storage buckets

Advanced Operations

  • supabase_execute_sql: Execute raw SQL (requires RPC function setup)

Usage Examples

Query a table

{
  "table": "users",
  "select": "id,name,email",
  "filter": { "status": "active" },
  "order": "created_at.desc",
  "limit": 10
}

Insert data

{
  "table": "posts",
  "data": {
    "title": "Hello World",
    "content": "My first post",
    "author_id": 123
  }
}

Upload a file

{
  "bucket": "avatars",
  "path": "user123/profile.jpg",
  "data": "<base64-encoded-data>",
  "contentType": "image/jpeg"
}

Raw SQL Setup

To use supabase_execute_sql, create this function in your Supabase SQL Editor:

CREATE OR REPLACE FUNCTION execute_sql(query text)
RETURNS json AS $$
DECLARE
  result json;
BEGIN
  EXECUTE query INTO result;
  RETURN result;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;

Development

# Install dependencies
npm install

# Build
npm run build

# Run locally
node dist/index.js

License

MIT

Related MCP servers

Browse all →