supabase-mcp

supabase-mcp

0

The Supabase MCP Server is designed to allow AI assistants to manipulate Supabase databases through defined interactions. Key features include reading, creating, updating, and deleting records with configurable filtering and security measures.

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