An MCP server providing administrative control over a Supabase PostgreSQL database, compatible with Cursor's Composer and Codeium's Cascade.
š„ A powerful Model Context Protocol (MCP) server that provides full administrative control over your Supabase PostgreSQL database through both Cursor's Composer and Codeium's Cascade. This tool enables seamless database management with comprehensive features for table operations, record management, schema modifications, and more.
# Clone the repository
git clone https://github.com/Quegenx/supabase-mcp-server.git
cd supabase-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
Install dependencies and build the project:
npm install
npm run build
In Cursor's MCP settings, add the server with this command:
/opt/homebrew/bin/node /path/to/dist/index.js postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres
Replace:
/path/to/dist/index.js
with your actual path[PROJECT-ID]
with your Supabase project ID[PASSWORD]
with your database passwordNote: Keep your database credentials secure and never commit them to version control.
The Model Context Protocol (MCP) allows you to provide custom tools to agentic LLMs in Cursor. This server can be integrated with Cursor's Composer feature, providing direct access to all database management tools through natural language commands.
Open Cursor Settings > Features > MCP
Click the "+ Add New MCP Server" button
Fill in the modal form:
command
(stdio transport)Build the project first:
npm install
npm run build
Get your Node.js path:
# On Mac/Linux
which node
# On Windows
where node
Add the server command:
/path/to/node /path/to/dist/index.js postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres
Replace:
/path/to/node
with your actual Node.js path (from step 5)/path/to/dist/index.js
with your actual path to the built JavaScript file[PROJECT-ID]
with your Supabase project ID[PASSWORD]
with your database passwordClick "Add Server" and then click the refresh button in the top right corner
The Composer Agent will automatically detect and use relevant tools when you describe your database tasks. For example:
When the agent uses a tool, you'll see:
Note: For stdio servers like this one, the command should be a valid shell command. If you need environment variables, consider using a wrapper script.
This MCP server also supports Codeium's Cascade (Windsurf) integration. Note that this feature is currently only available for paying individual users (not available for Teams or Enterprise users).
Create or edit ~/.codeium/windsurf/mcp_config.json
:
{
"mcpServers": {
"supabase-mcp": {
"command": "/path/to/node",
"args": [
"/path/to/dist/index.js",
"postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres"
]
}
}
}
Quick access to config:
Replace in the configuration:
/path/to/node
with your actual Node.js path/path/to/dist/index.js
with your actual path[PROJECT-ID]
with your Supabase project ID[PASSWORD]
with your database passwordIn Cascade:
list_tables
, create_table
, drop_table
, rename_table
add_column
, drop_column
, alter_column
fetch_records
, create_record
, update_record
, delete_record
list_indexes
, create_index
, delete_index
, update_index
list_constraints
, add_constraint
, remove_constraint
, update_constraint
list_functions
, create_function
, update_function
, delete_function
list_triggers
, create_trigger
, update_trigger
, delete_trigger
list_policies
, create_policy
, update_policy
, delete_policy
list_roles
, create_role
, update_role
, delete_role
list_buckets
, create_bucket
, delete_bucket
delete_file
, bulk_delete_files
list_folders
list_enumerated_types
, create_enumerated_type
, update_enumerated_type
, delete_enumerated_type
list_publications
, create_publication
, update_publication
, delete_publication
list_realtime_policies
, create_realtime_policy
, update_realtime_policy
, delete_realtime_policy
list_realtime_channels
, manage_realtime_channels
, send_realtime_message
, get_realtime_messages
manage_realtime_status
, manage_realtime_views
list_users
, create_user
, update_user
, delete_user
query
- Execute custom SQL queriessupabase-mcp-server/
āāā dist/ # Compiled JavaScript files
ā āāā index.d.ts # TypeScript declarations
ā āāā index.js # Main JavaScript file
āāā src/ # Source code
ā āāā index.ts # Main TypeScript file
āāā package.json # Project configuration
āāā package-lock.json # Dependency lock file
āāā tsconfig.json # TypeScript configuration
Once configured, the MCP server provides all database management tools through Cursor's Composer. Simply describe what you want to do with your database, and the AI will use the appropriate commands.
Examples:
Node.js Path Issues
which node
to find the correct pathwhere node
to find the correct path/usr/local/bin/node
with your actual Node.js pathFile Path Issues
pwd
in the project directory to get the full pathcd
to get the full path/Users/username/projects/supabase-mcp-server/dist/index.js
MCP Not Detecting Tools
Permission Issues
dist
directory exists (run npm run build
)chmod +x
on Unix systems)npm install
with appropriate permissionsAdd DEBUG=true
before your command to see detailed logs:
DEBUG=true /usr/local/bin/node /path/to/dist/index.js [connection-string]
# Use this format for the command
"C:\\Program Files\\nodejs\\node.exe" "C:\\path\\to\\dist\\index.js" "postgresql://..."
# Find Node.js path
which node
# Make script executable
chmod +x /path/to/dist/index.js
If you're still experiencing issues, please open an issue with:
node --version
)Contributions are welcome! Please feel free to submit a Pull Request.
MCP server for libSQL databases with comprehensive security and management tools. Supports file, local HTTP, and remote Turso databases with connection pooling, transaction support, and 6 specialized database tools.
Enables persistent knowledge storage for Claude using a knowledge graph with multiple database backends like PostgreSQL and SQLite.
A read-only MCP server for querying live data from Outreach.io using the CData JDBC Driver.
A production-ready MCP server for Customer Relationship Management (CRM) functionality, built with TypeScript and SQLite.
An MCP-based database server with support for SQLite, MySQL, PostgreSQL, and MSSQL.
Search and query patient Electronic Health Record (EHR) data using SMART on FHIR.
A read-only MCP server for Reckon, enabling LLMs to query live data using the CData JDBC Driver.
Interact with Neon Postgres databases using natural language to manage projects, branches, queries, and migrations via the Neon API.
A lightweight server to connect AI assistants with Kintone applications and data.
Universal database MCP server supporting multiple database types including PostgreSQL, Redshift, CockroachDB, MySQL, RDS MySQL, Microsoft SQL Server, BigQuery, Oracle DB, and SQLite