supabase-mcp-http-stream-n8n

BIFROTEK-com/supabase-mcp-http-stream-n8n

3.3

If you are the rightful owner of supabase-mcp-http-stream-n8n and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Supabase MCP HTTP Stream Server for n8n is a robust solution designed for seamless integration with modern automation workflows, AI agents, and n8n, leveraging the Model Context Protocol (MCP) with HTTP Stream Transport.

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 Hub License: MIT MCP 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 Compose Copy the content from

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:

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.

🌟 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 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