Servidor MCP de Supabase
Un servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con bases de datos de Supabase. Este servidor implementa el Protocolo de Contexto de Modelo mediante el SDK de Python FastMCP para proporcionar herramientas de operación de bases de datos para modelos de lenguaje grandes (LLM).
Características
- Leer registros de tablas de Supabase con filtrado, paginación y ordenación
- Crear nuevos registros (individuales o por lotes) en las tablas de Supabase
- Actualizar los registros existentes según las condiciones del filtro
- Eliminar registros de tablas según las condiciones del filtro
- Se comunica mediante el transporte Stdio de MCP
Prerrequisitos
- Python 3.8 o superior
- Un proyecto de Supabase con tablas ya configuradas
- Clave de rol del servicio Supabase para autenticación
Instalación
- Clonar este repositorio:Copy
- Configurar un entorno virtual (recomendado):Copy
- Instalar las dependencias:Copy
- Configurar variables de entorno:
- Copie el archivo
.env.example
a.env
:Copy - Complete la URL de Supabase y la clave de rol de servicio en el archivo
.env
:Copy
- Copie el archivo
Uso
Iniciando el servidor
Asegúrese de que su entorno virtual esté activado, luego ejecute el servidor:
El servidor utiliza el transporte Stdio, por lo que escuchará las solicitudes MCP en la entrada estándar y responderá en la salida estándar.
Integración con clientes MCP
Este servidor implementa el Protocolo de Contexto de Modelo y se integra con cualquier cliente compatible con MCP. Por ejemplo, puede usarlo con frameworks LLM compatibles con herramientas MCP.
Agregar a la configuración de Windsurf/Cursor MCP
Para agregar este servidor MCP a su configuración de Windsurf o Cursor:
- Localice su archivo
mcp_config.json
:- Windows:
C:\Users\<username>\.codeium\windsurf\mcp_config.json
- macOS:
~/.codeium/windsurf/mcp_config.json
- Linux:
~/.codeium/windsurf/mcp_config.json
- Windows:
- Agregue el servidor Supabase MCP a la sección
mcpServers
:
Reemplace /path/to/your/supabase-mcp/server.py
con la ruta absoluta a su archivo server.py.
Nota : Para un mejor aislamiento, puede utilizar el ejecutable de Python desde su entorno virtual:
- Reinicie su aplicación Windsurf/Cursor para aplicar los cambios.
- Las herramientas Supabase MCP ahora estarán disponibles para su asistente de IA.
Descripciones de herramientas
El servidor proporciona las siguientes herramientas:
1. leer_registros
Lee registros de una tabla de base de datos Supabase con opciones de consulta flexibles.
Parámetros:
table
(cadena, obligatoria): nombre de la tabla desde la que se leerácolumns
(cadena, opcional, valor predeterminado: "*"): columnas para seleccionar (separadas por comas o * para todas)filters
(objeto, opcional): condiciones de filtrado como pares clave-valorlimit
(entero, opcional): número máximo de registros a devolveroffset
(entero, opcional): Número de registros a omitir para la paginaciónorder_by
(objeto, opcional): Opciones de ordenamiento como pares columna:dirección
Ejemplo:
2. crear_registros
Crea uno o más registros en una tabla de base de datos de Supabase.
Parámetros:
table
(cadena, obligatoria): nombre de la tabla en la que se crearán los registrosrecords
(objeto o matriz, obligatorio): un único objeto de registro o una matriz de objetos de registro para crear
Ejemplo (registro único):
Ejemplo (múltiples registros):
3. actualizar_registros
Actualiza registros existentes en una tabla de base de datos de Supabase según las condiciones del filtro.
Parámetros:
table
(cadena, obligatoria): nombre de la tabla en la que se actualizarán los registrosupdates
(objeto, obligatorio): Campos para actualizar como pares clave-valorfilters
(objeto, obligatorio): Condiciones de filtrado para identificar registros a actualizar
Ejemplo:
4. eliminar_registros
Elimina registros de una tabla de base de datos de Supabase según las condiciones del filtro.
Parámetros:
table
(cadena, obligatoria): nombre de la tabla de la que se eliminarán registrosfilters
(objeto, obligatorio): Condiciones de filtrado para identificar registros a eliminar
Ejemplo:
Desarrollo
Estructura del proyecto
server.py
: Implementación del servidor MCP principalsupabase_client.py
: contenedor de cliente de Supabaserequirements.txt
: Dependencias de Python.env.example
: archivo de variables de entorno de ejemplo
Agregar nuevas herramientas
Para agregar una nueva herramienta al servidor:
- Defina un modelo Pydantic para los parámetros de solicitud de la herramienta en
server.py
- Agregue un método de controlador a la clase
SupabaseMCPServer
- Registre la herramienta en el método
_register_tools
con un nombre descriptivo y documentación
Licencia
Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
This server cannot be installed
Implementa el Protocolo de Contexto de Modelo para proporcionar a los LLM herramientas para interactuar con las bases de datos de Supabase, respaldando operaciones como lectura, creación, actualización y eliminación de registros con capacidades de filtrado y paginación.