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 mediante la interfaz MCP.
Características
Tablas de consulta : ejecute 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 : genere tipos TypeScript para su base de datos:
Soporte para cualquier esquema (público, auth, api, etc.)
Funciona con proyectos Supabase tanto locales como remotos
Salida directa a consola
Detección automática de referencias de proyectos
Related MCP server: Supabase MCP Server
Prerrequisitos
Node.js (v16 o superior)
Un proyecto de Supabase (ya sea local o alojado)
Supabase CLI (para generación de tipos)
Instalación
Clonar el repositorio:
git clone https://github.com/yourusername/supabase-mcp-server.git
cd supabase-mcp-serverInstalar dependencias:
npm installInstale la CLI de Supabase (necesaria para la generación de tipos):
# Using npm
npm install -g supabase
# Or using Homebrew on macOS
brew install supabase/tap/supabaseConfiguración
Obtenga sus credenciales de Supabase:
Para proyectos alojados:
Vaya al panel de control de su proyecto Supabase
Vaya a Configuración del proyecto > API
Copia la URL del proyecto y la clave service_role (NO la clave anónima)
Para proyectos locales:
Inicie su instancia local de Supabase
Utilice la URL local (normalmente http://localhost:54321 )
Utilice su clave de servicio local
Configurar 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" > .envConstruir el servidor:
npm run buildIntegración con Claude Desktop
Abra la configuración de Claude Desktop:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonVentanas:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Agregue 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 VSCode
Abrir la configuración de VSCode:
macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonWindows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.jsonLinux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Agregue la configuración del servidor (mismo formato que Claude Desktop).
Ejemplos de uso
Consulta de 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
tabla de consulta
Consultar una tabla específica con selección de esquema y soporte de cláusula where.
Parámetros:
schema(opcional): esquema de base de datos (predeterminado a público)table(obligatorio): Nombre de la tabla a consultarselect(opcional): lista de columnas separadas por comaswhere(opcional): Matriz de condiciones con:column: Nombre de la columnaoperator: Uno de: eq, neq, gt, gte, lt, lte, like, ilike, isvalue: Valor con el que comparar
generar_tipos
Genere tipos TypeScript para su esquema de base de datos Supabase.
Parámetros:
schema(opcional): esquema de base de datos (predeterminado a público)
Solución de problemas
Problemas de generación de tipos
Asegúrese de que Supabase CLI esté instalado:
supabase --versionPara proyectos locales:
Asegúrese de que su instancia local de Supabase se esté ejecutando
Verifique que su clave service_role sea correcta
Para proyectos alojados:
Confirme que la referencia de su proyecto sea correcta (extraída de la URL)
Verifique que esté utilizando la clave service_role, no la clave anon
Problemas de consulta
Comprueba tu esquema y los nombres de las tablas
Verificar los nombres de las columnas en las cláusulas select y where
Asegúrese de que su clave service_role tenga los permisos necesarios
Contribuyendo
Bifurcar el repositorio
Crea tu rama de funciones:
git checkout -b feature/my-featureConfirme sus cambios:
git commit -am 'Add my feature'Empujar a la rama:
git push origin feature/my-featureEnviar una solicitud de extracción
Licencia
Licencia MIT: consulte el archivo de LICENCIA para obtener más detalles