Supabase

Interactúa con bases de datos de Supabase, consulta tablas y genera tipos de TypeScript.

Documentación

Servidor MCP de Supabase

Un servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con bases de datos de Supabase. Este servidor proporciona herramientas para consultar tablas y generar tipos de TypeScript a través de la interfaz MCP.

Características

  • Consultar Tablas: Ejecuta consultas en cualquier tabla con soporte para:

    • Selección de esquema
    • Filtrado de columnas
    • Cláusulas WHERE con múltiples operadores
    • Paginación
    • Manejo de errores
  • Generación de Tipos: Genera tipos de TypeScript para tu base de datos:

    • Soporte para cualquier esquema (public, auth, api, etc.)
    • Funciona con proyectos de Supabase locales y remotos
    • Salida directa a la consola
    • Detección automática de referencia de proyecto

Requisitos Previos

  1. Node.js (v16 o superior)
  2. Un proyecto de Supabase (local o alojado)
  3. CLI de Supabase (para generación de tipos)

Instalación

  1. Clona el repositorio:
git clone https://github.com/yourusername/supabase-mcp-server.git
cd supabase-mcp-server
  1. Instala las dependencias:
npm install
  1. Instala el CLI de Supabase (requerido para la generación de tipos):
# Using npm
npm install -g supabase

# Or using Homebrew on macOS
brew install supabase/tap/supabase

Configuración

  1. Obtén tus credenciales de Supabase:

    • Para proyectos alojados:

      1. Ve al panel de tu proyecto de Supabase
      2. Navega a Configuración del Proyecto > API
      3. Copia la URL del Proyecto y la clave service_role (NO la clave anon)
    • Para proyectos locales:

      1. Inicia tu instancia local de Supabase
      2. Usa la URL local (típicamente http://localhost:54321)
      3. Usa tu clave service_role local
  2. Configura las variables de entorno:

# Create a .env file (this will be ignored by git)
echo "SUPABASE_URL=your_project_url
SUPABASE_KEY=your_service_role_key" > .env
  1. Compila el servidor:
npm run build

Integración con Claude Desktop

  1. Abre la configuración de Claude Desktop:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. Agrega la configuración del servidor:

{
  "mcpServers": {
    "supabase": {
      "command": "node",
      "args": ["/absolute/path/to/supabase-mcp-server/build/index.js"],
      "env": {
        "SUPABASE_URL": "your_project_url",
        "SUPABASE_KEY": "your_service_role_key"
      }
    }
  }
}

Integración con la Extensión de VSCode

  1. Abre la configuración de VSCode:

    • macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
    • Windows: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
    • Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  2. Agrega la configuración del servidor (mismo formato que Claude Desktop).

Ejemplos de Uso

Consultando Tablas

// Query with schema selection and where clause
<use_mcp_tool>
<server_name>supabase</server_name>
<tool_name>query_table</tool_name>
<arguments>
{
  "schema": "public",
  "table": "users",
  "select": "id,name,email",
  "where": [
    {
      "column": "is_active",
      "operator": "eq",
      "value": true
    }
  ]
}
</arguments>
</use_mcp_tool>

Generando Tipos

// Generate types for public schema
<use_mcp_tool>
<server_name>supabase</server_name>
<tool_name>generate_types</tool_name>
<arguments>
{
  "schema": "public"
}
</arguments>
</use_mcp_tool>

Herramientas Disponibles

query_table

Consulta una tabla específica con selección de esquema y soporte de cláusula WHERE.

Parámetros:

  • schema (opcional): Esquema de la base de datos (por defecto: public)
  • table (requerido): Nombre de la tabla a consultar
  • select (opcional): Lista de columnas separadas por comas
  • where (opcional): Arreglo de condiciones con:
    • column: Nombre de la columna
    • operator: Uno de: eq, neq, gt, gte, lt, lte, like, ilike, is
    • value: Valor para comparar

generate_types

Genera tipos de TypeScript para el esquema de tu base de datos de Supabase.

Parámetros:

  • schema (opcional): Esquema de la base de datos (por defecto: public)

Solución de Problemas

Problemas de Generación de Tipos

  1. Asegúrate de que el CLI de Supabase esté instalado:
supabase --version
  1. Para proyectos locales:

    • Asegúrate de que tu instancia local de Supabase esté ejecutándose
    • Verifica que tu clave service_role sea correcta
  2. Para proyectos alojados:

    • Confirma que la referencia de tu proyecto sea correcta (extraída de la URL)
    • Verifica que estés usando la clave service_role, no la clave anon

Problemas de Consulta

  1. Revisa los nombres de tu esquema y tablas
  2. Verifica los nombres de las columnas en las cláusulas select y where
  3. Asegúrate de que tu clave service_role tenga los permisos necesarios

Contribuciones

  1. Haz un fork del repositorio
  2. Crea tu rama de características: git checkout -b feature/my-feature
  3. Haz commit de tus cambios: git commit -am 'Add my feature'
  4. Haz push a la rama: git push origin feature/my-feature
  5. Envía una solicitud de pull

Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles