Skip to main content
Glama

Supabase MCP HTTP Stream Server

by BIFROTEK-com
Apache 2.0
2

BIFROTEK Header Animation

🐳 Supabase MCP HTTP Stream Server for n8n

One-Click Docker deployment of Supabase MCP Server with native HTTP Stream Transport support for n8n, AI Agents, and modern automation workflows.

🚀 Quick Start

🌊 Coolify Deployment (Production)

For production deployment on Coolify, follow these detailed steps:

Step 1: Create Resource in Coolify
  1. Navigate to your Coolify dashboard
  2. Go to Projects → Select your project (e.g., "My first project")
  3. Click "Add Resource""Docker Compose"
  4. Choose "From GIT Repository" or "Raw Docker Compose"
Step 2: Configure Docker Compose

Option A: From GIT Repository

  • Repository: https://github.com/BIFROTEK-com/supabase-mcp-http-stream-n8n.git
  • Branch: main
  • Docker Compose Location: docker/docker-compose.coolify.yaml

Option B: Raw Docker Compose Copy the content from docker/docker-compose.coolify.yaml

Step 3: Set Environment Variables

Configure these required environment variables in Coolify:

# 🔐 Required: Supabase Configuration SUPABASE_ACCESS_TOKEN=sbp_your_access_token_here SUPABASE_PROJECT_REF=your_project_ref_here # 🔑 Security: API Keys (highly recommended) MCP_API_KEYS=your-secure-api-key-here # 📍 Domain Configuration DOMAIN=your.domain.com # ⚙️ Optional: Feature Configuration MCP_FEATURES=database,docs,development,functions MCP_READ_ONLY=false MCP_PORT=3333 NODE_ENV=production # 🛡️ Optional: Security Settings MCP_RATE_LIMIT_REQUESTS=100 MCP_RATE_LIMIT_GENERAL=60 MCP_ALLOWED_ORIGINS=* NODE_LOG_LEVEL=warn
Step 4: Configure Domain & Traefik
  1. Resource Name: supabase-mcp (or your preferred name)
  2. Domain Configuration: https://your.domain.com:3333
    • Format: https://your-domain.com:3333
    • Port: Must be 3333 (the container port)
    • Protocol: Use https for SSL termination via Traefik
Step 5: Deploy
  1. Save Configuration
  2. Click "Deploy"
  3. Monitor Logs for successful startup:
    ✅ MCP HTTP Server running on port 3333 🚀 Streamable HTTP: POST /mcp 🌊 SSE: GET/POST /sse ❤️ Health: GET /health 🏠 Landing: GET / 🔗 Ready for connections!
Step 6: Verify Deployment

Test your deployed instance using the API Examples below.

🐳 Local Development

  1. Clone the repository:
git clone https://github.com/BIFROTEK-com/supabase-mcp-http-stream-n8n.git cd supabase-mcp-http-stream-n8n
  1. Create .env file:
cp env.example .env # Edit .env with your Supabase credentials
  1. Start the server:
cd docker && docker-compose up -d
  1. Test the connection: See API Examples below

🔌 API Endpoints

The modern MCP transport using HTTP streaming for real-time communication:

EndpointMethodDescription
POST /mcpPOSTMain MCP API - HTTP Stream Transport
GET /healthGETHealth Check - Server status
GET /GETAPI Dashboard - Landing page (requires API key)
DELETE /mcpDELETESession Termination - Terminate MCP session

Example Usage:

curl -X POST https://your-domain.com:3333/mcp \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "X-API-Key: your-api-key" \ -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'

🌊 SSE Transport (n8n Compatible)

Server-Sent Events transport for legacy n8n MCP Client Tool Node compatibility:

EndpointMethodDescription
GET /sseGETSSE Connection - Establish Server-Sent Events stream
POST /messagesPOSTSSE Messages - Send JSON-RPC messages via SSE

SSE Features:

  • Auto Session Management - Secure crypto-based session IDs
  • Keep-Alive Pings - 15-second intervals for connection stability
  • n8n Compatibility - Works with n8n MCP Client Tool Node
  • Automatic Cleanup - Sessions auto-terminate on disconnect

SSE Connection Flow:

  1. Connect: GET /sse establishes SSE stream
  2. Receive: Server sends endpoint event with sessionId
  3. Send Messages: POST /messages?sessionId=<session>
  4. Keep-Alive: Server pings every 15 seconds
  5. Disconnect: Automatic cleanup on connection close

Example Usage:

# 1. Establish SSE connection curl -N -H "Accept: text/event-stream" https://your-domain.com:3333/sse # Server responds: # event: endpoint # data: /messages?sessionId=abc123... # data: {"type":"ready","status":"connected","session":"abc123..."} # 2. Send messages via returned sessionId curl -X POST https://your-domain.com:3333/messages?sessionId=abc123... \ -H "Content-Type: application/json" \ -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'

🛡️ Security Features

  • API Key Authentication: Secure access control
  • Rate Limiting: DoS protection (configurable)
  • CORS Protection: Configurable origin restrictions
  • Security Headers: Helmet.js with CSP
  • Input Validation: JSON-RPC 2.0 validation
  • SSL/TLS: HTTPS support via Traefik

📊 MCP Tools Available

ToolDescription
list_tablesLists all database tables
list_extensionsLists database extensions
execute_sqlExecute raw SQL queries
apply_migrationApply database migrations
search_docsSearch Supabase documentation
list_edge_functionsList Edge Functions
deploy_edge_functionDeploy Edge Functions
get_project_urlGet project API URL
get_anon_keyGet anonymous API key
generate_typescript_typesGenerate TypeScript types
list_migrationsList database migrations

🔧 Configuration

Environment Variables

VariableRequiredDefaultDescription
SUPABASE_ACCESS_TOKEN-Supabase Management API token
SUPABASE_PROJECT_REF-Your Supabase project reference
MCP_API_KEYS⚠️-Comma-separated API keys
MCP_PORT3333HTTP server port
MCP_FEATURESdatabase,docs,development,functionsEnabled features
MCP_READ_ONLYfalseRead-only mode
MCP_RATE_LIMIT_REQUESTS100Requests per 15 minutes
MCP_RATE_LIMIT_GENERAL60Requests per minute
MCP_ALLOWED_ORIGINS*CORS allowed origins

Feature Groups

Enable specific features by setting MCP_FEATURES:

  • database - Database operations (tables, SQL, migrations)
  • docs - Supabase documentation search
  • development - Development tools and utilities
  • functions - Edge Functions management
  • account - Account management (requires no project scoping)
  • branching - Database branching operations
  • storage - Storage management
  • debug - Debugging tools

🔄 n8n Integration

⚠️ Important: Built-in MCP Node Issues

The built-in n8n MCP Client node has known issues with SSE Stream Transport (Deprecated) and may not work reliably with this server. For the best experience, we strongly recommend using the community-developed MCP Client node instead.

Use the community node: @nerding-io/n8n-nodes-mcp

This community node provides:

  • Full HTTP Stream Transport support (recommended)
  • Reliable SSE Transport for legacy compatibility
  • Better error handling and connection stability
  • Active maintenance and community support
  • AI Agent integration as a tool

📦 Installation

  1. Install the community node in your n8n instance:
    # Via n8n UI: Settings → Community Nodes → Install # Package name: @nerding-io/n8n-nodes-mcp # Or via Docker environment: N8N_COMMUNITY_PACKAGES_ENABLED=true
  2. Enable community nodes as tools (for AI Agents):
    # Required for using MCP Client as AI Agent tool N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true

🚀 Configuration with HTTP Stream Transport

Recommended Setup:

  1. Create HTTP Streamable Credentials:
    • Base URL: https://your.domain.com:3333/mcp
    • API Key: Your configured API key
    • Transport: HTTP Streamable
  2. Add MCP Client Node:
    • Connection Type: HTTP Streamable
    • Operation: List Tools / Execute Tool
    • Select your credentials
  3. Example Tool Execution:
    { "tool": "list_tables", "parameters": {} }

🌊 Legacy SSE Configuration (if needed)

Only if HTTP Stream doesn't work:

  1. Create SSE Credentials:
    • SSE URL: https://your.domain.com:3333/sse
    • Connection Type: Server-Sent Events (SSE)
    • Headers: X-API-Key: your-api-key
  2. Configure Node:
    • Connection Type: Server-Sent Events (SSE)
    • Select your SSE credentials

Note: SSE is deprecated but maintained for compatibility. Always try HTTP Stream first.

🤖 AI Agent Integration

The community MCP node works perfectly as an AI Agent tool:

// Example AI Agent prompt I need you to help me analyze my Supabase database. First, list all available tables using the list_tables tool. Then, execute some SQL queries to get insights about the data.

Docker Configuration for AI Agents:

version: '3' services: n8n: image: n8nio/n8n environment: - N8N_COMMUNITY_PACKAGES_ENABLED=true - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true - MCP_API_KEY=your-supabase-mcp-api-key # ... rest of configuration

🎯 Use Cases

  • Database Management: Query and manage Supabase databases
  • AI Agents: Provide database access to AI assistants
  • Automation: Integrate with n8n workflows
  • Documentation: Search Supabase docs programmatically
  • Edge Functions: Deploy and manage serverless functions
  • Data Analysis: Execute complex SQL queries
  • Schema Management: Handle database migrations
  • MCP Framework - Model Context Protocol
  • Supabase - Open source Firebase alternative
  • n8n - Workflow automation platform
  • Coolify - Self-hosted Heroku alternative

📝 License

MIT License - see LICENSE file for details.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

🆘 Support


Made with ❤️ by BIFROTEK

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    An MCP server that provides tools for interacting with Supabase databases, storage, and edge functions.
    Last updated -
    14
    42
    JavaScript
    MIT License
  • -
    security
    F
    license
    -
    quality
    A multi-tenant service that automatically monitors Supabase database changes, generates OpenAI embeddings, and maintains synchronized vector search capabilities for each tenant's projects.
    Last updated -
    TypeScript
  • -
    security
    F
    license
    -
    quality
    A powerful server that provides administrative control over Supabase PostgreSQL databases through Cursor's Composer and Codeium's Cascade, enabling database management with features for tables, records, schema modifications, and more.
    Last updated -
    4
    13
    TypeScript
    • Apple
    • Linux
  • A
    security
    F
    license
    A
    quality
    A protocol server that enables interaction with self-hosted Supabase instances directly from development environments, allowing database introspection, management of migrations, auth users, and storage through MCP clients like IDE extensions.
    Last updated -
    21
    44
    TypeScript

View all related MCP servers

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/BIFROTEK-com/supabase-mcp-http-stream-n8n'

If you have feedback or need assistance with the MCP directory API, please join our Discord server