概览
What is Supabase MCP Server?
Supabase MCP Server is a Model Context Protocol (MCP) server that provides tools for interacting with a Supabase database. It enables AI assistants to perform database operations such as reading, creating, updating, and deleting records, as well as listing and creating tables through a standardized interface.
How to use Supabase MCP Server?
Clone the repository, install dependencies with pip install -r requirements.txt, create a .env file with your SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY, then run python server.py. You can also build and run a Docker container using the provided Dockerfile. The server accepts JSON requests on standard input with a tool name and arguments object.
Key features of Supabase MCP Server
- Provides CRUD tools for Supabase database tables
- Lists all tables in the Supabase database
- Creates new tables with custom schema and column types
- Reads rows with optional table name and limit
- Accepts JSON requests over standard input (stdin)
- Supports Docker deployment for containerized environments
Use cases of Supabase MCP Server
- An AI assistant querying a Supabase database for customer records
- Automating record creation from user input or external data
- Updating product inventory or user profiles via natural language
- Managing database schema by listing or creating tables
- Integrating Supabase operations into MCP‑compatible AI workflows
FAQ from Supabase MCP Server
What environment variables are required?
You need SUPABASE_URL (your Supabase project URL) and SUPABASE_SERVICE_ROLE_KEY (your service role key) in a .env file.
How do I run the server locally?
After installing dependencies, run python server.py from the project directory.
What tools does the server provide?
The server provides read_rows, create_record, update_record, delete_record, list_tables, and create_table tools, each with specific parameters.
Can I run it with Docker?
Yes. Build the image with docker build -t mcp-server . and run it with docker run -p 8000:8000 mcp-server.
How do I send requests to the server?
Send JSON objects to the server’s standard input, for example: {"tool": "read_rows", "arguments": {"table_name": "products", "limit": 5}}.