Bridges Supabase databases with natural language commands for querying tables, generating TypeScript types, and explorin...
Created byApr 23, 2025
Supabase MCP Server
A Model Context Protocol (MCP) server for interacting with Supabase databases. This server provides tools for querying tables and generating TypeScript types through the MCP interface.
Features
**Query Tables**: Execute queries on any table with support for:
- Schema selection
- Column filtering
- Where clauses with multiple operators
- Pagination
- Error handling
**Type Generation**: Generate TypeScript types for your database:
- Support for any schema (public, auth, api, etc.)
- Works with both local and remote Supabase projects
- Direct output to console
- Automatic project reference detection
Prerequisites
Node.js (v16 or higher)
A Supabase project (either local or hosted)
Supabase CLI (for type generation)
Installation
Clone the repository:
Install dependencies:
Install the Supabase CLI (required for type generation):
Configuration
Get your Supabase credentials:
- For hosted projects:
1. Go to your Supabase project dashboard
2. Navigate to Project Settings > API
3. Copy the Project URL and service_role key (NOT the anon key)
- For local projects:
1. Start your local Supabase instance
2. Use the local URL (typically http://localhost:54321)
3. Use your local service_role key
Configure environment variables:
Build the server:
Integration with Claude Desktop
Open Claude Desktop settings:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
- Linux: `~/.config/Claude/claude_desktop_config.json`
Add the server configuration (same format as Claude Desktop).
Usage Examples
Querying Tables
Generating Types
Available Tools
query_table
Query a specific table with schema selection and where clause support.
Parameters:
`schema` (optional): Database schema (defaults to public)
`table` (required): Name of the table to query
`select` (optional): Comma-separated list of columns
`where` (optional): Array of conditions with:
- `column`: Column name
- `operator`: One of: eq, neq, gt, gte, lt, lte, like, ilike, is
- `value`: Value to compare against
generate_types
Generate TypeScript types for your Supabase database schema.
Parameters:
`schema` (optional): Database schema (defaults to public)
Troubleshooting
Type Generation Issues
Ensure Supabase CLI is installed:
For local projects:
- Make sure your local Supabase instance is running
- Verify your service_role key is correct
For hosted projects:
- Confirm your project ref is correct (extracted from URL)
- Verify you're using the service_role key, not the anon key
Query Issues
Check your schema and table names
Verify column names in select and where clauses
Ensure your service_role key has necessary permissions
Contributing
Fork the repository
Create your feature branch: `git checkout -b feature/my-feature`
Commit your changes: `git commit -am 'Add my feature'`
Push to the branch: `git push origin feature/my-feature`