Supabase MCP

oficial

Servidor oficial de Supabase MCP para gestionar proyectos, bases de datos, autenticación, almacenamiento, funciones edge y flujos de trabajo SQL de Supabase desde agentes de IA.

¿Qué puedes hacer con Supabase MCP?

  • Gestionar tablas de base de datos — Pídele a la IA que liste, cree, actualice o elimine tablas en tu proyecto de Supabase usando herramientas como list_tables y create_table.
  • Obtener configuración del proyecto — Recupera la configuración del proyecto, las variables de entorno y las credenciales de la API con get_project_url y herramientas de configuración relacionadas.
  • Consultar e inspeccionar datos — Haz que la IA ejecute consultas SQL de solo lectura o explore el esquema de tu base de datos directamente a través del servidor MCP.
  • Integrar con AI SDK — Usa createToolSchemas() para obtener esquemas de entrada/salida tipados para el cliente MCP de Vercel AI SDK.

Documentación

Servidor MCP de Supabase

MCP Registry Version

Conecta tus proyectos de Supabase a Cursor, Claude, Windsurf y otros asistentes de IA.

supabase-mcp-demo

El Protocolo de Contexto de Modelo (MCP) estandariza la forma en que los Modelos de Lenguaje de Gran Escala (LLMs) se comunican con servicios externos como Supabase. Conecta asistentes de IA directamente con tu proyecto de Supabase y les permite realizar tareas como gestionar tablas, obtener configuración y consultar datos. Consulta la lista completa de herramientas.

Configuración

1. Sigue nuestras mejores prácticas de seguridad

Antes de configurar el servidor MCP, te recomendamos leer nuestras mejores prácticas de seguridad para entender los riesgos de conectar un LLM a tus proyectos de Supabase y cómo mitigarlos.

2. Configura tu cliente MCP

Para configurar el servidor MCP de Supabase en tu cliente, visita nuestra documentación de configuración. También puedes generar una URL MCP personalizada para tu proyecto visitando la pestaña de conexión MCP en el panel de Supabase.

Tu cliente MCP te pedirá automáticamente que inicies sesión en Supabase durante la configuración. Asegúrate de elegir la organización que contiene el proyecto con el que deseas trabajar.

La mayoría de los clientes MCP requieren la siguiente información:

{
  "mcpServers": {
    "supabase": {
      "type": "http",
      "url": "https://mcp.supabase.com/mcp"
    }
  }
}

Si no ves tu cliente MCP en nuestra documentación, consulta la documentación MCP de tu cliente y copia la información MCP anterior en el formato esperado (json, yaml, etc.).

CLI

Si estás ejecutando Supabase localmente con Supabase CLI, puedes acceder al servidor MCP en http://localhost:54321/mcp. Actualmente, el servidor MCP en entornos CLI ofrece un subconjunto limitado de herramientas y no incluye OAuth 2.1.

Autoalojado

Para Supabase autoalojado, consulta la página Habilitar servidor MCP. Actualmente, el servidor MCP en entornos autoalojados ofrece un subconjunto limitado de herramientas y no incluye OAuth 2.1.

Opciones de configuración y herramientas

Consulta la documentación del Servidor MCP de Supabase para ver la lista completa de herramientas disponibles y opciones de configuración.

La documentación también incluye un constructor de URL interactivo para completar las opciones de configuración por ti.

Riesgos de seguridad

[!TIP] Antes de usar el servidor MCP, revisa los riesgos de seguridad y las mitigaciones recomendadas en la Documentación de Supabase.

Uso con el cliente MCP de AI SDK

El paquete @supabase/mcp-server-supabase exporta createToolSchemas() para completar los esquemas de entrada y salida para el cliente MCP de Vercel AI SDK. Esto permite que las herramientas MCP de Supabase se traten como herramientas estáticas con validación del lado del cliente y tipos TypeScript inferidos para sus entradas y salidas.

import { createToolSchemas } from '@supabase/mcp-server-supabase';
import { createMCPClient } from '@ai-sdk/mcp';
import { streamText } from 'ai';

const mcpClient = await createMCPClient({
  transport: {
    type: 'http',
    url: 'https://mcp.supabase.com/mcp',
  },
});

const tools = await mcpClient.tools({
  schemas: createToolSchemas(),
});

const result = streamText({ model, tools, prompt: '...' });

for (const step of await result.steps) {
  for (const toolResult of step.staticToolResults) {
    if (toolResult.toolName === 'get_project_url') {
      toolResult.input;  // { project_id: string }
      toolResult.output; // { url: string }
    }
  }
}

createToolSchemas() acepta opciones de filtrado similares a los parámetros de URL del servidor MCP:

  • features: Restringir a grupos de funciones específicos (ej. ['database', 'docs']). Por defecto, todos los grupos de funciones predeterminados.
  • projectScoped: Cuando es true, omite project_id de los esquemas de entrada de herramientas y excluye las herramientas a nivel de cuenta — usar al conectarse a un servidor configurado con project_ref. Por defecto false.
  • readOnly: Cuando es true, excluye las herramientas de mutación — usar al conectarse a un servidor configurado con read_only=true. Por defecto false.
const mcpClient = await createMCPClient({
  transport: {
    type: 'http',
    url: 'https://mcp.supabase.com/mcp?project_ref=<project-ref>&read_only=true&features=database,docs',
  },
});

const tools = await mcpClient.tools({
  schemas: createToolSchemas({
    features: ['database', 'docs'],
    projectScoped: true,
    readOnly: true,
  }),
});

[!NOTE] Este servidor no envía structuredContent en los resultados de las herramientas MCP. AI SDK recurre a analizar JSON desde el texto content.

Para más información, consulta Definición de Esquema y Salidas de Herramientas Tipadas en la documentación de AI SDK.

Otros servidores MCP

@supabase/mcp-server-postgrest

El servidor MCP de PostgREST te permite conectar a tus propios usuarios a tu aplicación a través de una API REST. Consulta más detalles en su README del proyecto.

Recursos

Para desarrolladores

Consulta CONTRIBUTING para obtener detalles sobre cómo contribuir a este proyecto.

Licencia

Este proyecto está licenciado bajo Apache 2.0. Consulta el archivo LICENSE para más detalles.