
Supabase
Executes SQL queries against Supabase databases through the WayStation integration platform. Provides database access without direct credentials.
Enables Claude and other LLMs to interact with Supabase databases and Edge Functions through a secure API for performing CRUD operations and invoking custom payloads without requiring integration code.
What it does
- Execute SQL queries on Supabase databases
- Retrieve table data and schemas
- Run INSERT, UPDATE, DELETE operations
- Perform database aggregations and joins
Best for
About Supabase
Supabase is a community-built MCP server published by cappahccino that provides AI assistants with tools and capabilities via the Model Context Protocol. Easily connect Claude and LLMs to Supabase databases and Supabase Edge Functions for secure, code-free CRUD and custom o It is categorized under databases.
How to install
You can install Supabase in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
License
Supabase is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Supabase MCP Server
A Model Context Protocol (MCP) server that allows Claude and other LLMs to interact with Supabase to perform CRUD operations on Postgres tables.
Features
- Database operations:
- Query data with filters
- Insert data
- Update data
- Delete data
- List tables
Prerequisites
- Node.js (v16 or newer)
- npm or yarn
- Supabase project with API keys
Installation
Option 1: Install from npm (recommended)
The package is published on npm! You can install it globally with:
npm install -g supabase-mcp
Or locally in your project:
npm install supabase-mcp
Option 2: Clone the repository
git clone https://github.com/Cappahccino/SB-MCP.git
cd SB-MCP
npm install
npm run build
Configuration
Create a .env file with your Supabase credentials:
# Supabase credentials
SUPABASE_URL=your_supabase_project_url
SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
# MCP server configuration
MCP_SERVER_PORT=3000
MCP_SERVER_HOST=localhost
MCP_API_KEY=your_secret_api_key
Usage with Claude
Claude requires a specific transport mode for compatibility. This package provides a dedicated binary for Claude integration:
In Claude Desktop MCP Config
"supabase": {
"command": "npx",
"args": [
"-y",
"supabase-mcp@latest",
"supabase-mcp-claude"
],
"env": {
"SUPABASE_URL": "your_supabase_project_url",
"SUPABASE_ANON_KEY": "your_supabase_anon_key",
"SUPABASE_SERVICE_ROLE_KEY": "your_service_role_key",
"MCP_API_KEY": "your_secret_api_key"
}
}
Make sure you set the required environment variables in the configuration. Claude will use the stdio transport for communication.
Manual Testing with Claude Binary
For testing outside of Claude, you can run:
npm run start:claude
Or if installed globally:
supabase-mcp-claude
Usage as a Standalone Server
After installing globally:
supabase-mcp
This will start the MCP server at http://localhost:3000 (or the port specified in your .env file).
Usage in Your Code
You can also use supabase-mcp as a library in your own Node.js projects:
import { createServer, mcpConfig, validateConfig } from 'supabase-mcp';
// Validate configuration
validateConfig();
// Create the server
const app = createServer();
// Start the server
app.listen(mcpConfig.port, mcpConfig.host, () => {
console.log(`Supabase MCP server running at http://${mcpConfig.host}:${mcpConfig.port}`);
});
Troubleshooting
Common Issues and Solutions
1. "Port XXXX is already in use"
The HTTP server attempts to find an available port automatically. You can manually specify a different port in your .env file by changing the MCP_SERVER_PORT value.
2. "Missing required environment variables"
Make sure you have a proper .env file with all the required values or that you've set the environment variables in your system.
3. "TypeError: Class constructor Server cannot be invoked without 'new'"
If you see this error, you may be running an older version of the package. Update to the latest version:
npm install -g supabase-mcp@latest
4. JSON parsing errors with Claude
Make sure you're using the Claude-specific binary (supabase-mcp-claude) instead of the regular HTTP server (supabase-mcp).
5. Request timed out with Claude
This usually means Claude initiated the connection but the server was unable to respond in time. Check:
- Are your Supabase credentials correct?
- Is your server setup properly and running?
- Is there anything blocking the connection?
Tools Reference
Database Tools
-
queryDatabase
- Parameters:
table(string): Name of the table to queryselect(string, optional): Comma-separated list of columns (default: "*")query(object, optional): Filter conditions
- Parameters:
-
insertData
- Parameters:
table(string): Name of the tabledata(object or array of objects): Data to insert
- Parameters:
-
updateData
- Parameters:
table(string): Name of the tabledata(object): Data to update as key-value pairsquery(object): Filter conditions for the update
- Parameters:
-
deleteData
- Parameters:
table(string): Name of the tablequery(object): Filter conditions for deletion
- Parameters:
-
listTables
- Parameters: None
Version History
- 1.0.0: Initial release
- 1.0.1: Added automatic port selection
- 1.0.2: Fixed protocol compatibility issues
- 1.0.3: Added JSON-RPC support
- 1.1.0: Complete rewrite using official MCP SDK
- 1.2.0: Added separate Claude transport and fixed port conflict issues
- 1.3.0: Updated for improved compatibility with TypeScript projects
- 1.4.0: Fixed Claude stdio transport integration based on Supabase community best practices
- 1.5.0: Removed Edge Function support to improve stability and focus on database operations
License
MIT
Alternatives
Related Skills
Browse all skillsThis skill should be used when the user requests to generate, create, or add Row-Level Security (RLS) policies for Supabase databases in multi-tenant or role-based applications. It generates comprehensive RLS policies using auth.uid(), auth.jwt() claims, and role-based access patterns. Trigger terms include RLS, row level security, supabase security, generate policies, auth policies, multi-tenant security, role-based access, database security policies, supabase permissions, tenant isolation.
Conduct comprehensive, systematic literature reviews using multiple academic databases (PubMed, arXiv, bioRxiv, Semantic Scholar, etc.). This skill should be used when conducting systematic literature reviews, meta-analyses, research synthesis, or comprehensive literature searches across biomedical, scientific, and technical domains. Creates professionally formatted markdown documents and PDFs with verified citations in multiple citation styles (APA, Nature, Vancouver, etc.).
Build full-stack applications with Supabase (PostgreSQL, Auth, Storage, Real-time, Edge Functions). Use when implementing authentication, database design with RLS, file storage, real-time features, or serverless functions.
Technical workflow for implementing accessible React user interfaces with shadcn/ui, Tailwind CSS, and TanStack Query. Includes 6-phase process with mandatory Style Guide compliance, Context7 best practices consultation, Chrome DevTools validation, and WCAG 2.1 AA accessibility standards. Use after Test Agent, Implementer, and Supabase agents complete their work.
Supabase operational knowledge for migrations, RLS optimization, MCP tool benchmarks, and ADR-003 compliance. Use when validating database migrations, optimizing Row-Level Security policies, checking MCP tool performance, or ensuring Supabase operational standards. Triggers on: migration validation, RLS patterns, Supabase benchmarks, ADR-003, database state tracking, schema governance.
Comprehensive guide for PostgreSQL psql - the interactive terminal client for PostgreSQL. Use when connecting to PostgreSQL databases, executing queries, managing databases/tables, configuring connection options, formatting output, writing scripts, managing transactions, and using advanced psql features for database administration and development.