Skip to main content
Glama
cloud9-labs

MCP Supabase Server

by cloud9-labs

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)

Related MCP server: Supabase MCP Server

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 Connectors

Related MCP Servers