Supabase MCP server with native HTTP-Stream transport for n8n, AI Agents & modern automation (one-click Docker).

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.

Docker HubLicense: MITMCP Compatible

๐Ÿš€ 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 ComposeCopy 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

๐Ÿš€ HTTP Stream Transport (Recommended)

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

Endpoint Method Description
POST /mcp POST Main MCP API - HTTP Stream Transport
GET /health GET Health Check - Server status
GET / GET API Dashboard - Landing page (requires API key)
DELETE /mcp DELETE Session 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:

Endpoint Method Description
GET /sse GET SSE Connection - Establish Server-Sent Events stream
POST /messages POST SSE 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

Tool Description
list_tables Lists all database tables
list_extensions Lists database extensions
execute_sql Execute raw SQL queries
apply_migration Apply database migrations
search_docs Search Supabase documentation
list_edge_functions List Edge Functions
deploy_edge_function Deploy Edge Functions
get_project_url Get project API URL
get_anon_key Get anonymous API key
generate_typescript_types Generate TypeScript types
list_migrations List database migrations

๐Ÿ”ง Configuration

Environment Variables

Variable Required Default Description
SUPABASE_ACCESS_TOKEN โœ… - Supabase Management API token
SUPABASE_PROJECT_REF โœ… - Your Supabase project reference
MCP_API_KEYS โš ๏ธ - Comma-separated API keys
MCP_PORT โŒ 3333 HTTP server port
MCP_FEATURES โŒ database,docs,development,functions Enabled features
MCP_READ_ONLY โŒ false Read-only mode
MCP_RATE_LIMIT_REQUESTS โŒ 100 Requests per 15 minutes
MCP_RATE_LIMIT_GENERAL โŒ 60 Requests 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.

๐ŸŒŸ Recommended: Community MCP Node

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

๐Ÿ”— Related Projects

  • 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

MCP Server ยท Populars

MCP Server ยท New