Yazdani-Supabase-MCP Server

MIT License
  • Linux
  • Apple

Integrations

  • Uses .env files to securely store and manage configuration variables like API keys and database credentials

  • Enables SQL execution, schema inspection, and database migration management for PostgreSQL databases

  • Designed for integration with React Native PaveApp, providing database access capabilities

Servidor MCP de Yazdani Supabase

Un servidor MCP que se integra con Supabase PostgreSQL y utiliza Claude 3.7 para el procesamiento de consultas en lenguaje natural, diseñado para la integración con React Native PaveApp.

Características

  • Inspección de esquemas : ver esquemas, tablas, columnas y relaciones de bases de datos
  • Ejecución de SQL : ejecute consultas SQL con controles de seguridad
  • Gestión de migraciones : ver y administrar migraciones de bases de datos
  • Procesamiento del lenguaje natural : Convierta el lenguaje natural a SQL usando Claude 3.7
  • Controles de seguridad : Protección contra operaciones destructivas
  • Modo de base de datos simulada : soporte para desarrollo y pruebas sin una conexión de base de datos en vivo
  • Mecanismo de retroceso automático : recurre elegantemente a datos simulados cuando falla la conexión a la base de datos
  • Compatibilidad con el agrupador de sesiones : utiliza el agrupador de sesiones Supabase para conexiones estables

Instalación

Prerrequisitos

  • Python 3.8 o superior
  • Acceso a una base de datos PostgreSQL de Supabase (opcional con modo simulado)
  • Clave API antrópica (para la integración de Claude)

Configuración

  1. Clonar el repositorio:
    git clone <repository-url> cd Yazdani-supabase-mcp-server
  2. Instalar dependencias:
    pip install -r requirements.txt
  3. Crea un archivo .env con tus credenciales:
    # Supabase credentials SUPABASE_PROJECT_REF=your_project_ref SUPABASE_URL=https://your_project_ref.supabase.co SUPABASE_DB_PASSWORD=your_db_password SUPABASE_REGION=your_region SUPABASE_ACCESS_TOKEN=your_access_token SUPABASE_SERVICE_ROLE_KEY=your_service_role_key # Database connection POSTGRES_HOST=db.your_project_ref.supabase.co POSTGRES_PORT=5432 POSTGRES_DB=postgres POSTGRES_USER=postgres SUPABASE_POOLER_HOST=aws-0-ca-central-1.pooler.supabase.com # Claude API ANTHROPIC_API_KEY=your_anthropic_api_key # Optional: for mock database mode # USE_MOCK_DB=true

Uso

Ejecución del servidor con base de datos en vivo

Para el funcionamiento normal con una conexión de base de datos Supabase:

python run_server.py

Ejecución del servidor con una base de datos simulada

Para desarrollo o pruebas sin una conexión a una base de datos en vivo:

# Windows improved_mock_server.bat # Unix/macOS USE_MOCK_DB=true python run_server.py

Conexión de prueba

Para probar la conexión con la base de datos real y simulada:

python connection_test.py

Pruebas de lenguaje natural

Hemos agregado un potente entorno de prueba de lenguaje natural que le permite probar el servidor MCP con consultas de lenguaje natural:

# Windows - Run the full test environment (HTTP server + NL client) run_nl_test.bat # Manual setup python http_server.py --port 8000 # Terminal 1 python nl_test_client.py # Terminal 2

El cliente de prueba de lenguaje natural proporciona:

  • Interfaz de línea de comandos interactiva para realizar pruebas
  • Conversión de lenguaje natural a SQL usando Claude
  • Ejecución de SQL contra la base de datos Supabase
  • Visualización de resultados formateados
  • Historial de comandos y capacidades de guardado de resultados

Ejemplos de consultas en lenguaje natural para probar:

  • "Muéstrame todas las tablas en el esquema público"
  • "Obtener todos los usuarios que se registraron en el último mes"
  • "¿Cuál es el número total de usuarios en la base de datos?"

Instalación como paquete

pip install -e . yazdani-supabase-mcp-server

Integración con React Native PaveApp

Configuración del servidor MCP para React Native

  1. Ejecutar el servidor :
    • Para desarrollo: utilice el modo simulado con improved_mock_server.bat
    • Para producción: asegúrese de que las credenciales de la base de datos sean correctas y ejecute run_server.py
  2. Hacer que el servidor sea accesible :
    • Para el desarrollo local: asegúrese de que React Native pueda acceder a su red local
    • Para producción: aloje el servidor donde su aplicación pueda acceder a él
  3. Conectarse desde React Native :
    • Utilice las bibliotecas de cliente MCP para conectarse al servidor
    • Configurar el cliente con la dirección y el puerto del servidor

Puntos finales de API

El servidor MCP expone las siguientes herramientas a las que se puede acceder a través del protocolo MCP:

  • get_schemas : enumera todos los esquemas de base de datos
  • get_tables : enumera las tablas en un esquema
  • get_table_schema : Obtener la estructura detallada de la tabla
  • execute_postgresql : Ejecutar sentencias SQL
  • retrieve_migrations : Lista de migraciones de bases de datos
  • generate_sql : Generar SQL a partir de lenguaje natural

Solución de problemas

Detalles de la conexión

El servidor utiliza el agrupador de sesiones Supabase para las conexiones de base de datos:

postgresql://postgres.{project_ref}:{password}@{pooler_host}:5432/postgres

Supabase recomienda este formato de conexión para aplicaciones que mantienen conexiones persistentes, especialmente en redes IPv4.

Problemas de conexión

Si tiene problemas de conexión con Supabase:

  1. Verifique que su proyecto Supabase esté activo
  2. Verifique que las credenciales de su base de datos sean correctas en el archivo .env
  3. Asegúrese de que su dirección IP esté permitida en la configuración de la base de datos de Supabase
  4. Verifique que esté utilizando el host de pooler correcto para su región
  5. Intente utilizar el modo de base de datos simulada: USE_MOCK_DB=true
  6. Ejecute python test_pooler_connection.py para probar específicamente la conexión del pooler
  7. Ejecute python connection_test.py para ejecutar una prueba de conexión completa

Modo de base de datos simulada

El servidor ahora incluye soporte mejorado para bases de datos simuladas:

  • Retorno automático a datos simulados cuando falla la conexión
  • Interfaz consistente entre datos reales y simulados
  • Indicación clara cuando se utilizan datos simulados
  • Registro mejorado para la resolución de problemas

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor MCP que permite la consulta en lenguaje natural de bases de datos Supabase PostgreSQL utilizando Claude 3.7, lo que permite a los usuarios inspeccionar esquemas, ejecutar SQL, administrar migraciones y convertir lenguaje natural en consultas SQL.

  1. Features
    1. Installation
      1. Prerequisites
      2. Setup
    2. Usage
      1. Running the Server with Live Database
      2. Running the Server with Mock Database
      3. Testing Connection
      4. Natural Language Testing
      5. Installing as a Package
    3. Integration with React Native PaveApp
      1. Setting Up MCP Server for React Native
      2. API Endpoints
    4. Troubleshooting
      1. Connection Details
      2. Connection Issues
      3. Mock Database Mode
    5. Contributing
      1. License
        ID: 7jnh2kp4l9