Conectar Supabase desde Windsurf con MCP
Clase 7 de 13 • Curso de Herramientas de AI para Developers
Contenido del curso
Preparación
Construcción
Revisión
Despliegue
Trabajar con bases de datos directamente desde el editor de código ya es posible gracias al Model Context Protocol (MCP), un estándar abierto lanzado por Anthropic en noviembre de 2024. Esta integración permite conectar herramientas de inteligencia artificial con servicios de terceros sin cambiar de interfaz, y en este caso se aplica para gestionar tablas en Supabase desde Windsurf sin abrir el navegador.
¿Qué es MCP y por qué cambia la forma de trabajar con servicios externos?
El Model Context Protocol es un protocolo diseñado para que las herramientas de IA se comuniquen con servicios de terceros de forma estandarizada. En lugar de alternar entre el dashboard de Supabase y el editor, MCP permite ejecutar comandos de lectura y escritura directamente desde donde se escribe el código [0:28].
En la práctica, esto significa que operaciones como listar proyectos, consultar tablas o incluso crear nuevas estructuras en la base de datos se realizan sin abandonar Windsurf.
¿Cómo se instala el MCP de Supabase en Windsurf?
El proceso de instalación es directo y se completa en pocos pasos [1:02]:
- Abrir el apartado de Actions en Windsurf y acceder al marketplace de MCP.
- Buscar "Supabase" y hacer clic en instalar.
- Generar un access token desde la página de Supabase, en la sección de generación de tokens.
- Asignar un nombre al token (por ejemplo, "MCP Windsurf") y definir su tiempo de expiración.
- Copiar el token, pegarlo en Windsurf y guardar.
Una vez configurado, la interfaz cambia: aparecen opciones para eliminar, configurar y activar o desactivar la conexión. También se despliega un listado completo de herramientas disponibles como listar organizaciones, obtener proyectos, consultar costos y crear proyectos [2:25].
¿Cómo verificar que la conexión funciona correctamente?
Hay dos formas de confirmar que el MCP está activo. La primera es visual: en el panel de Actions aparece un circulito verde junto al nombre del MCP [3:02]. La segunda es funcional: se puede abrir un nuevo cascade y preguntar directamente "lista los proyectos que tengo en mi Supabase" usando el modo Ask para evitar modificaciones en archivos.
El editor se conecta al MCP, ejecuta la función listar proyectos y devuelve los resultados. En este ejemplo, detectó nueve proyectos en la cuenta, dos activos, entre ellos Platzi Fútbol Club [3:30].
¿Qué información revela el MCP al consultar tablas existentes?
Al pedir que liste las tablas del proyecto Platzi FC, el MCP busca en el esquema public y devuelve cada tabla con una descripción generada automáticamente por el editor [4:15]. Esa descripción no existe previamente en Supabase; el modelo la infiere a partir de la lectura del esquema.
Además, el sistema arroja observaciones importantes de seguridad:
- Todas las tablas están vacías.
- Ninguna tabla tiene Row-Level Security (RLS) habilitado, lo que representa un riesgo si se exponen vía API pública.
- Supabase habilita cada tabla como un endpoint consumible, y sin RLS cualquiera podría acceder a los datos.
- Una tabla de respaldo no tiene llave primaria definida [4:55].
¿Cómo crear tablas nuevas en Supabase desde el editor?
Para generar las tablas del contenido deportivo y estadístico del proyecto, se cambia del modo Ask al modo Code en el cascade de Windsurf [5:40]. El prompt indica crear las tablas siguiendo el estándar en inglés de las ya existentes, pasando únicamente los nombres.
El modelo interpreta la estructura necesaria sin recibir definiciones explícitas de columnas [6:10]:
- Analiza el patrón de las tablas existentes.
- Define tipos de datos coherentes para cada campo.
- Genera todas las tablas en una sola migración SQL.
- Crea campos como fechas de inicio y fin para temporadas, IDs de competición, jornadas de partido e IDs de equipos locales y visitantes.
Al validar en el dashboard de Supabase, las tablas aparecen correctamente creadas con una estructura lógica completa: equipos, standings, partidos (matches) y más [7:05]. Todo el esquema fue generado por el modelo y enviado a Supabase mediante sentencias SQL sin escribir código manualmente ni interactuar con la interfaz del proveedor.
El backend del proyecto queda casi completo, basado en PostgreSQL a través de Supabase, con tablas creadas exclusivamente desde el editor. ¿Qué MCP conoces o utilizas en tus proyectos? Compártelo en los comentarios para seguir ampliando la lista de herramientas de IA.