supabase-mcp

supabase-mcp

3.1

If you are the rightful owner of supabase-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A Model Context Protocol (MCP) server that provides AI assistants with the ability to interact with Supabase databases through standardized tools.

Supabase MCP Server

A Model Context Protocol (MCP) server that provides AI assistants with the ability to interact with Supabase databases through standardized tools.

Features

  • Read rows from tables with filtering and column selection
  • Create single or multiple records
  • Update records with flexible filtering
  • Delete records safely with filter conditions
  • Environment-based configuration
  • Stdio transport support

Installation

  1. Clone the repository:
git clone <repository-url>
cd mcp
  1. Create a virtual environment and install dependencies:
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
  1. Set up environment variables: Create a .env file in the project root with:
SUPABASE_URL=your_project_url
SUPABASE_SERVICE_KEY=your_service_role_key

Usage

Run the MCP server:

python -m supabase_mcp.server

Available Tools

read_rows

Read data from Supabase tables with optional filtering and column selection.

{
    "table": "users",
    "columns": ["id", "name", "email"],  # Optional
    "filters": {"is_active": true},      # Optional
    "limit": 10                          # Optional
}

create_records

Insert one or multiple records into a table.

{
    "table": "users",
    "records": {
        "name": "John Doe",
        "email": "john@example.com"
    }
    # Or multiple records:
    # "records": [
    #     {"name": "John", "email": "john@example.com"},
    #     {"name": "Jane", "email": "jane@example.com"}
    # ]
}

update_records

Update records that match specific filters.

{
    "table": "users",
    "filters": {"id": 123},
    "data": {"status": "active"}
}

delete_records

Delete records that match specific filters.

{
    "table": "users",
    "filters": {"status": "inactive"}
}

Security

  • Uses service role key for database operations
  • Requires proper environment configuration
  • Validates all inputs using Pydantic models

License

MIT License