# 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: ```bash git clone cd mcp ``` 2. Create a virtual environment and install dependencies: ```bash python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate pip install -r requirements.txt ``` 3. Set up environment variables: Create a `.env` file in the project root with: ```bash SUPABASE_URL=your_project_url SUPABASE_SERVICE_KEY=your_service_role_key ``` ## Usage Run the MCP server: ```bash python -m supabase_mcp.server ``` ## Available Tools ### read_rows Read data from Supabase tables with optional filtering and column selection. ```python { "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. ```python { "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. ```python { "table": "users", "filters": {"id": 123}, "data": {"status": "active"} } ``` ### delete_records Delete records that match specific filters. ```python { "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