Este tutorial explica cómo configurar el acceso seguro al servidor MCP (Model Context Protocol) en una instalación self-hosted de Supabase.
El servidor MCP en Supabase self-hosted se ejecuta detrás de la API interna. Actualmente:
- No ofrece autenticación OAuth 2.1.
- No está diseñado para exponerse a Internet.
- El endpoint correspondiente debe protegerse restringiendo las conexiones de red.
- Por defecto, todas las conexiones al servidor MCP están bloqueadas.
Esta guía describe cómo habilitar el acceso de forma segura.
Consideraciones de seguridad
No se deben permitir conexiones al servidor MCP desde Internet. El acceso debe realizarse únicamente mediante:
- Una conexión VPN al servidor donde corre el contenedor Studio.
- Un túnel SSH desde tu máquina local.
Acceso mediante túnel SSH
Paso 1: Determinar la IP local utilizada para acceder al servidor MCP
Cuando se establece un túnel SSH hacia el contenedor Studio de Docker, la IP de origen será la del Docker bridge gateway. Es necesario permitir explícitamente conexiones desde esa IP.
Para obtener la IP del gateway del bridge de Docker en el host que ejecuta Supabase, ejecuta:
docker inspect supabase-kong \
--format '{{range .NetworkSettings.Networks}}{{println .Gateway}}{{end}}'El comando devolverá una dirección IP, por ejemplo:
172.18.0.1Paso 2: Permitir conexiones desde la IP del gateway
Edita el archivo de configuración de Kong ubicado en:
./volumes/api/kong.ymlDentro de la definición del endpoint MCP:
- Comenta la sección
request-termination, que bloquea el acceso por defecto. - Descomenta la sección que comienza con
- name: cors. - Agrega la IP del Docker bridge gateway en la lista
allowdel pluginip-restriction. - No elimines la sección
deny, ya que es necesaria para mantener el control de acceso.
Una vez realizado esto, el endpoint MCP quedará accesible únicamente desde las IPs permitidas.
Paso 3: Reiniciar el API Gateway
Después de modificar la configuración, reinicia el contenedor de Kong para aplicar los cambios:
docker compose restart kongPaso 4: Crear el túnel SSH
Desde tu máquina local, crea un túnel SSH hacia el host donde está instalado Supabase:
ssh -L localhost:8080:localhost:8000 you@your-supabase-hostEste comando redirige el puerto local 8080 al puerto 8000 del host de Supabase.
Paso 5: Configurar el cliente MCP
En la configuración de tu cliente MCP (por ejemplo Claude Code, Cursor u otro), agregá el servidor MCP de Supabase con la siguiente URL:
http://localhost:8080/mcpEsto suele configurarse dentro de las secciones mcpServers o servers, según el cliente.
Paso 6: Verificar el acceso al servidor MCP
Desde tu máquina local, puedes verificar que el servidor MCP esté accesible ejecutando una llamada de inicialización al endpoint MCP.
Si la respuesta es válida, el servidor está correctamente habilitado.
A partir de este punto, puedes iniciar tu cliente MCP y utilizar las herramientas del servidor MCP de Supabase.
Troubleshooting
Si no puedes conectarte al servidor MCP, revisa lo siguiente:
- Asegúrate de estar usando la versión más reciente del archivo de configuración de Kong.
- Verifica que la IP del Docker bridge gateway esté correctamente agregada en
./volumes/api/kong.yml. - Revisa los logs de Kong para detectar errores:
docker compose logs kong- Confirma que el túnel SSH esté activo y funcionando.
Relacionada con
Comentarios
0 comentarios
El artículo está cerrado para comentarios.