Skip to main content
Glama

FastAPI MCP Server

by DavidHolguin

MCP Server (FastAPI + Supabase + n8n)

Estructura

  • main.py: App FastAPI y healthcheck /healthz.

  • app/mcp/server.py: Endpoint /mcp JSON-RPC 2.0 (tools/list, tools/call).

  • app/integrations/supabase.py: Operaciones DB/Storage/Vector.

  • app/integrations/n8n.py: Invocación de webhooks n8n.

  • app/security/auth.py: API tokens por cabecera x-api-key.

  • app/config.py: Carga de variables de entorno.

  • migrations/001_init.sql: Esquema Supabase (session_state, tool_audit, vector_store, RPC match_vectors).

  • tools.schema.json: Definiciones de herramientas MCP.

Variables de entorno

Copiar .env.example a .env en local o configurar en Railway.

  • SUPABASE_URL: URL del proyecto Supabase.

  • SUPABASE_SERVICE_ROLE_KEY: clave service role (solo backend).

  • SUPABASE_ANON_KEY: opcional.

  • N8N_WEBHOOK_BASE: base de webhooks públicos de n8n, ej: https://n8n.tu-dominio.com/webhook.

  • MCP_API_TOKENS: CSV de tokens válidos, ej: token1,token2.

  • ALLOW_ORIGINS: lista CORS, ej: https://mi-host-agente.com.

Desarrollo local (Windows PowerShell)

python -m venv .venv . .venv/Scripts/Activate.ps1 pip install -r requirements.txt $env:MCP_API_TOKENS="dev-token" $env:SUPABASE_URL="https://xxxxx.supabase.co" $env:SUPABASE_SERVICE_ROLE_KEY="eyJ..." $env:N8N_WEBHOOK_BASE="https://n8n.tu-dominio.com/webhook" uvicorn main:app --host 0.0.0.0 --port 8000 --reload

Probar:

  • GET http://localhost:8000/healthz

  • POST http://localhost:8000/mcp con header x-api-key: dev-token y body:

{"jsonrpc":"2.0","id":"1","method":"tools/list"}

Despliegue en Railway

  • Añadir servicio Dockerfile.

  • Variables de entorno: SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY, N8N_WEBHOOK_BASE, MCP_API_TOKENS, ALLOW_ORIGINS.

  • Comando inicio: uvicorn main:app --host 0.0.0.0 --port $PORT --proxy-headers.

  • Healthcheck: /healthz.

  • Escalado horizontal: habilitar auto-scale; la app es stateless.

Migraciones Supabase

Ejecutar migrations/001_init.sql en el SQL Editor de Supabase.

Seguridad

  • Mantener Service Role solo en backend.

  • Rotar MCP_API_TOKENS periódicamente.

  • Opcional: firmar requests con HMAC y timestamp para antireplay.

-
security - not tested
F
license - not found
-
quality - not tested

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 -
    44
    MIT License
  • A
    security
    A
    license
    A
    quality
    This server enables interaction with Supabase PostgreSQL databases through the MCP protocol, allowing seamless integration with Cursor and Windsurf IDEs for secure and validated database management.
    Last updated -
    12
    811
    Apache 2.0
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    An MCP server that connects to Supabase PostgreSQL databases, exposing table schemas as resources and providing tools for data analysis through SQL queries.
    Last updated -
    1
    MIT License
  • A
    security
    -
    license
    A
    quality
    🪄 MCP server for programmatic creation and management of n8n workflows. Enables AI assistants to build, modify, and manage workflows without direct user intervention through a comprehensive set of tools and resources for interacting with n8n's REST API.
    Last updated -
    10
    22
    77
    MIT License
    • Linux

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/DavidHolguin/mcpEAM'

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