Supabase MCP Server
Provides secure access to Supabase databases via the PostgREST API, enabling operations such as selecting, inserting, updating, deleting, and upserting table rows, as well as executing stored procedures.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Supabase MCP Server
A Supabase MCP server built with the Dedalus MCP framework. Provides secure access to Supabase databases via the PostgREST API with credential encryption and JIT token exchange.
Features
Available Tools
Read Operations
Tool | Description |
| Select rows from a table with optional filters, ordering, and pagination |
| Get a single row by primary key |
Write Operations
Tool | Description |
| Insert one or more rows into a table |
| Update rows matching specified filters |
| Delete rows matching specified filters |
| Insert or update rows on conflict |
RPC
Tool | Description |
| Call a Supabase stored procedure/function |
Related MCP server: Supabase MCP Server
Prerequisites
Python 3.10+
uv package manager
Supabase project URL and API key
Dedalus API Key
Setup
Clone the repository
git clone https://github.com/dedalus-labs/supabase-mcp.git
cd supabase-mcpInstall dependencies
uv syncConfigure environment variables
Create a .env file based on .env.example.
Client Usage
import asyncio
import os
from dotenv import load_dotenv
from dedalus_labs import AsyncDedalus, DedalusRunner
from dedalus_mcp.auth import Connection, SecretKeys, SecretValues
load_dotenv()
SUPABASE_URL = os.getenv("SUPABASE_URL")
# Define the Supabase connection
supabase = Connection(
name="supabase-mcp",
secrets=SecretKeys(key="SUPABASE_SECRET_KEY"),
base_url=f"{SUPABASE_URL}/rest/v1",
auth_header_name="apikey",
auth_header_format="{api_key}",
)
# Bind credentials (encrypted client-side, decrypted at dispatch time)
supabase_secrets = SecretValues(supabase, key=os.getenv("SUPABASE_SECRET_KEY", ""))
async def main():
client = AsyncDedalus(
api_key=os.getenv("DEDALUS_API_KEY"),
base_url=os.getenv("DEDALUS_API_URL"),
as_base_url=os.getenv("DEDALUS_AS_URL"),
)
runner = DedalusRunner(client)
result = await runner.run(
input="Select all rows from the users table, limit to 5.",
model="openai/gpt-5",
mcp_servers=["issac/supabase-mcp"],
credentials=[supabase_secrets],
)
print(result.output)
if __name__ == "__main__":
asyncio.run(main())License
MIT License - see LICENSE for details.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for interacting with the Supabase platform
Remote MCP for 1,500+ APIs. Vault-managed credentials; OAuth or API key. Search, load, and execute.
Managed Postgres MCP: projects, SQL, docs search, and storage buckets via OAuth.
Manage Supabase projects end to end across database, auth, storage, realtime, and migrations. Moni…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables developers to interact with self-hosted Supabase instances, providing database introspection, migration management, auth user operations, storage management, and TypeScript type generation directly from MCP-compatible development environments.ISC
- AlicenseNot gradedqualityDmaintenanceProvides secure access to Supabase databases via PostgREST API and management tools for projects, schemas, branches, logs, and code generation.MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Supabase databases, including listing tables, querying, inserting, updating, deleting records, and executing RPC functions.72 npmMIT
- AlicenseBqualityDmaintenanceMCP server for Supabase database and storage operations, enabling querying, inserting, updating, deleting rows, schema introspection, and file storage management.126 npmMIT