Supabase MCP Server
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:
git clone https://github.com/yourusername/supabase-mcp-server.git
cd supabase-mcp-serverInstall dependencies:
npm installInstall the Supabase CLI (required for type generation):
# Using npm
npm install -g supabase
# Or using Homebrew on macOS
brew install supabase/tap/supabaseConfiguration
Get your Supabase credentials:
For hosted projects:
Go to your Supabase project dashboard
Navigate to Project Settings > API
Copy the Project URL and service_role key (NOT the anon key)
For local projects:
Start your local Supabase instance
Use the local URL (typically http://localhost:54321)
Use your local service_role key
Configure environment variables:
# Create a .env file (this will be ignored by git)
echo "SUPABASE_URL=your_project_url
SUPABASE_KEY=your_service_role_key" > .envBuild the server:
npm run buildIntegration with Claude Desktop
Open Claude Desktop settings:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add the server configuration:
{
"mcpServers": {
"supabase": {
"command": "node",
"args": ["/absolute/path/to/supabase-mcp-server/build/index.js"],
"env": {
"SUPABASE_URL": "your_project_url",
"SUPABASE_KEY": "your_service_role_key"
}
}
}
}Integration with VSCode Extension
Open VSCode settings:
macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonWindows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.jsonLinux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Add the server configuration (same format as Claude Desktop).
Usage Examples
Querying Tables
// Query with schema selection and where clause
<use_mcp_tool>
<server_name>supabase</server_name>
<tool_name>query_table</tool_name>
<arguments>
{
"schema": "public",
"table": "users",
"select": "id,name,email",
"where": [
{
"column": "is_active",
"operator": "eq",
"value": true
}
]
}
</arguments>
</use_mcp_tool>Generating Types
// Generate types for public schema
<use_mcp_tool>
<server_name>supabase</server_name>
<tool_name>generate_types</tool_name>
<arguments>
{
"schema": "public"
}
</arguments>
</use_mcp_tool>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 queryselect(optional): Comma-separated list of columnswhere(optional): Array of conditions with:column: Column nameoperator: One of: eq, neq, gt, gte, lt, lte, like, ilike, isvalue: 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:
supabase --versionFor 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-featureCommit your changes:
git commit -am 'Add my feature'Push to the branch:
git push origin feature/my-featureSubmit a pull request
License
MIT License - see LICENSE file for details
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NightTrek/Supabase-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server