remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Includes support link integration for the project via Buy Me A Coffee, allowing users to financially support the development of the MCP server.
Planned for Q4 2025 to provide search-optimized AI interactions with Elasticsearch, enabling context-aware queries and operations.
Listed in the roadmap for Q3 2025 to add support for document-oriented schema understanding, enabling AI reasoning with MongoDB databases.
Servidor MCP de múltiples bases de datos
¿Qué es DB MCP Server?
El servidor DB MCP proporciona una forma estandarizada para que los modelos de IA interactúen con múltiples bases de datos simultáneamente. Basado en el framework FreePeak/Cortex , permite a los asistentes de IA ejecutar consultas SQL, gestionar transacciones, explorar esquemas y analizar el rendimiento en diferentes sistemas de bases de datos mediante una interfaz unificada.
Conceptos básicos
Compatibilidad con múltiples bases de datos
A diferencia de los conectores de bases de datos tradicionales, DB MCP Server puede conectarse e interactuar con múltiples bases de datos simultáneamente:
Generación dinámica de herramientas
Para cada base de datos conectada, el servidor genera automáticamente un conjunto de herramientas especializadas:
Arquitectura limpia
El servidor sigue los principios de Arquitectura Limpia con estas capas:
- Capa de dominio : entidades y interfaces empresariales principales
- Capa de repositorio : Implementaciones de acceso a datos
- Capa de caso de uso : lógica empresarial de la aplicación
- Capa de entrega : Interfaces externas (herramientas MCP)
Características
- Compatibilidad simultánea con múltiples bases de datos : conéctese e interactúe con múltiples bases de datos MySQL y PostgreSQL simultáneamente
- Generación de herramientas específicas de la base de datos : crea automáticamente herramientas especializadas para cada base de datos conectada
- Arquitectura limpia : diseño modular con clara separación de preocupaciones
- Compatibilidad del SDK de OpenAI Agents : compatibilidad total con el SDK de OpenAI Agents para una integración perfecta con asistentes de IA
- Herramientas de bases de datos dinámicas :
- Ejecutar consultas SQL con parámetros
- Ejecute declaraciones de modificación de datos con un manejo de errores adecuado
- Administrar transacciones de bases de datos entre sesiones
- Explorar esquemas y relaciones de bases de datos
- Analice el rendimiento de las consultas y reciba sugerencias de optimización
- Interfaz unificada : patrones de interacción consistentes en diferentes tipos de bases de datos
- Gestión de conexiones : configuración sencilla para múltiples conexiones de bases de datos
Bases de datos compatibles actualmente
Base de datos | Estado | Características |
---|---|---|
MySQL | ✅ Soporte completo | Consultas, transacciones, análisis de esquemas, información de rendimiento |
PostgreSQL | ✅ Soporte completo (v9.6-17) | Consultas, transacciones, análisis de esquemas, información de rendimiento |
Inicio rápido
Usando Docker
La forma más rápida de comenzar es con Docker:
Nota : El montaje se realiza en
/app/my-config.json
porque el contenedor ya tiene un archivo en/app/config.json
. Si encuentra advertencias de incompatibilidad de plataforma, puede especificar la plataforma:--platform linux/amd64
o--platform linux/arm64
.
De la fuente
Ejecución del servidor
El servidor admite múltiples modos de transporte para adaptarse a diferentes casos de uso:
Modo STDIO (para integración IDE)
Ideal para la integración con asistentes de codificación de IA:
La salida se enviará como mensajes JSON-RPC a stdout, mientras que los registros van a stderr.
Para la integración del cursor, agregue esto a su .cursor/mcp.json
:
Modo SSE (eventos enviados por el servidor)
Para aplicaciones y servicios basados en web:
Conecte su cliente a http://localhost:9092/sse
para la transmisión de eventos.
Docker Compose
Para entornos de desarrollo con contenedores de bases de datos, proporcionamos un archivo docker-compose.yml completo:
Características principales de esta configuración de docker-compose:
- El contenedor db-mcp-server espera a que todos los servicios de base de datos estén listos antes de iniciarse
- Se incluyen varios tipos y versiones de bases de datos (MySQL 8.0, PostgreSQL 15, 16.3 y 17)
- Todas las bases de datos incluyen controles de estado para garantizar que estén completamente inicializadas antes de que el servidor se conecte.
- Volúmenes persistentes para todos los servicios de base de datos
- Puertos expuestos para acceso directo a la base de datos si es necesario
La configuración utiliza un script wait-for-it.sh
para garantizar que todos los servicios de la base de datos estén listos antes de iniciar el servidor. Este script comprueba si hay un host o puerto TCP disponible antes de continuar. Debe incluir este script en el directorio de su proyecto. La configuración de Docker monta este script en el contenedor y lo utiliza para verificar la disponibilidad de la base de datos.
Para utilizar esta configuración:
Asegúrese de que su archivo config.json incluya detalles de conexión que coincidan con los servicios definidos en docker-compose.yml.
Configuración
Configuración de la base de datos
Crea un archivo config.json
con tus conexiones de base de datos:
Al utilizar la configuración docker-compose, tenga en cuenta que los valores host
deben coincidir con los nombres de servicio en el archivo docker-compose.yml.
Opciones de la línea de comandos
El servidor admite varias opciones de línea de comandos:
Herramientas disponibles
Para cada base de datos conectada (por ejemplo, "mysql1", "mysql2"), el servidor crea:
Convención de nomenclatura de herramientas
El servidor genera automáticamente herramientas con nombres que siguen este formato:
Dónde:
<tool_type>
: Uno de: consulta, ejecución, transacción, esquema, rendimiento<database_id>
: El ID de la base de datos tal como se define en su configuración
Ejemplos de nombres de herramientas para una base de datos con ID "mysql1":
query_mysql1
execute_mysql1
transaction_mysql1
schema_mysql1
performance_mysql1
Herramientas específicas de la base de datos
query_<dbid>
: Ejecutar consultas SQL en la base de datos especificadaCopyexecute_<dbid>
: Ejecutar sentencias SQL (INSERTAR, ACTUALIZAR, ELIMINAR)Copytransaction_<dbid>
: Administrar transacciones de base de datosCopyschema_<dbid>
: Obtener información del esquema de la base de datosCopyperformance_<dbid>
: Analizar el rendimiento de las consultasCopy
Herramientas globales
list_databases
: enumera todas las conexiones de base de datos configuradasCopy
Ejemplos
Consulta de múltiples bases de datos
Ejecución de transacciones
Hoja de ruta
Nos comprometemos a ampliar DB MCP Server para admitir una amplia gama de sistemas de bases de datos:
T3 2025
- MongoDB : soporte para operaciones de bases de datos orientadas a documentos
- SQLite : Integración ligera de bases de datos integradas
- MariaDB : paridad de funciones completa con la implementación de MySQL
cuarto trimestre de 2025
- Microsoft SQL Server : compatibilidad con bases de datos empresariales con capacidades T-SQL
- Oracle Database : integración de nivel empresarial
- Redis - Operaciones de almacenamiento de clave-valor
2026
- Cassandra - Soporte para bases de datos NoSQL distribuidas
- Elasticsearch : capacidades especializadas de búsqueda y análisis
- CockroachDB : base de datos SQL distribuida para aplicaciones a escala global
- DynamoDB : integración de bases de datos NoSQL nativas de AWS
- Neo4j - Compatibilidad con bases de datos gráficas
- ClickHouse - Soporte de bases de datos analíticas
Solución de problemas
Problemas comunes
- Errores de conexión : Verifique la configuración de conexión de su base de datos en
config.json
- Herramienta no encontrada : asegúrese de que el servidor esté en ejecución y verifique los prefijos del nombre de la herramienta
- Consultas fallidas : Verifique la sintaxis SQL y los permisos de la base de datos
- Errores de montaje de volumen de Docker : Si ves errores como
mountpoint for /app/config.json: not a directory
, significa que el contenedor ya tiene un archivo en esa ruta. Móntalo en una ruta diferente (p. ej.,/app/my-config.json
) y actualiza tu configuración según corresponda. - Errores de comandos de Docker : si encuentra errores relacionados con los comandos de Docker, utilice uno de estos enfoques:
- Utilice variables de entorno:
-e TRANSPORT_MODE=sse -e CONFIG_PATH=/app/my-config.json
- Anular el punto de entrada:
--entrypoint /app/server freepeak/db-mcp-server -t sse -c /app/my-config.json
- Utilice la ejecución del shell:
freepeak/db-mcp-server /bin/sh -c "/app/server -t sse -c /app/my-config.json"
- Utilice variables de entorno:
- Wait-for-it.sh falta o no funciona : si ve errores relacionados con wait-for-it.sh:
- Asegúrese de que el archivo exista en el directorio de su proyecto
- Asegúrese de que tenga permisos ejecutables:
chmod +x wait-for-it.sh
- Verifique que los finales de línea sean correctos (use LF estilo Unix, no CRLF estilo Windows)
- Si aún tiene problemas, puede modificar docker-compose.yml para usar comprobaciones del estado del servicio en su lugar.
Registros
El servidor escribe registros en:
- Modo STDIO: stderr
- Modo SSE: stdout y
./logs/db-mcp-server.log
Habilite el registro de depuración con el indicador -debug
:
Contribuyendo
¡Agradecemos tus contribuciones! Puedes ayudarnos de la siguiente manera:
- Bifurcar el repositorio
- Crear una rama de características:
git checkout -b new-feature
- Confirme sus cambios:
git commit -am 'Add new feature'
- Empujar a la rama:
git push origin new-feature
- Enviar una solicitud de extracción
Asegúrese de que su código cumpla con nuestros estándares de codificación e incluya pruebas adecuadas.
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
Soporte y contacto
- Para preguntas o problemas, envíe un correo electrónico a mnhatlinh.doan@gmail.com
- Abrir un problema directamente: Rastreador de problemas
- Si DB MCP Server ayuda en su trabajo, considere brindar soporte a:
Integración del cursor
Convención de nomenclatura de herramientas
El servidor MCP registra herramientas con nombres que coinciden con el formato que Cursor espera. Los nombres de las herramientas siguen este formato:
Por ejemplo: mcp_mysql1_db_mcp_server_stdio_schema_mysql1_db
El servidor utiliza el nombre mysql1_db_mcp_server_stdio
de forma predeterminada, que debe coincidir con la configuración del cursor en el archivo mcp.json
.
Configuración del cursor
En la configuración de tu Cursor ( ~/.cursor/mcp.json
), deberías tener una configuración como:
El servidor registrará automáticamente herramientas con nombres simples que coincidan con los identificadores de base de datos en su configuración.
Uso de herramientas MCP en el cursor
Una vez que su servidor MCP de base de datos esté en funcionamiento y configurado correctamente en Cursor, podrá usar las herramientas MCP en las conversaciones de su asistente de IA. Las herramientas siguen este patrón de nombres:
Dónde:
<server_name>
es el nombre definido en su .cursor/mcp.json (por ejemplo, "multidb")<tool_type>
es uno de los siguientes: consulta, ejecución, transacción, esquema, rendimiento, lista_bases_de_datos<database_id>
es el ID de la base de datos de su configuración (no es necesario para list_databases)
Ejemplos:
Para un servidor llamado "multidb" con un ID de base de datos "mysql1":
- Listado de todas las bases de datos :
- Consultando la base de datos :
- Visualización del esquema de la base de datos :
- Ejecución de sentencias :
- Gestión de transacciones :
Solución de problemas de las herramientas MCP en Cursor
Si el asistente de IA no puede llamar a las herramientas MCP:
- Asegúrese de que el servidor esté ejecutándose (verifique con
ps aux | grep server
) - Verifique que su configuración de .cursor/mcp.json sea correcta
- Asegúrese de que el nombre_del_servidor en .env coincida con lo que hay en las llamadas de su herramienta MCP
- Reiniciar el cursor después de realizar cambios de configuración
- Verifique los registros en el directorio logs/ para ver si hay errores
Integración del SDK de agentes de OpenAI
El servidor DB MCP es totalmente compatible con el SDK de agentes de OpenAI, lo que le permite crear agentes de IA que pueden interactuar con bases de datos directamente.
Prerrequisitos
- Cuenta OpenAI con acceso a API
- SDK de OpenAI Agents instalado:
pip install openai-agents
- Una instancia de servidor DB MCP en ejecución (modo SSE)
Ejemplo básico de integración
A continuación se explica cómo integrar el servidor DB MCP con un agente OpenAI:
Probando su integración
El repositorio incluye un script de prueba para verificar la compatibilidad con el SDK de OpenAI Agents:
El guión hará lo siguiente:
- Construya el servidor con los últimos cambios
- Inicie el servidor si aún no está en ejecución
- Pruebe la conexión con el SDK de OpenAI Agents
- Informar si la integración está funcionando correctamente
Solución de problemas de integración del SDK de agentes
Si encuentra problemas:
- Asegúrese de que el servidor se esté ejecutando en modo SSE en el puerto esperado
- Compruebe que su clave API de OpenAI esté configurada como una variable de entorno
- Verifique que las instrucciones de su agente mencionen específicamente las herramientas de base de datos
- Inspeccione los registros del servidor para detectar cualquier mensaje de error
Historia de las estrellas
This server cannot be installed
El servidor Multi DB MCP es una implementación de alto rendimiento del Protocolo de Contexto del Modelo de Base de Datos (DMP), diseñado para revolucionar la interacción de los agentes de IA con las bases de datos. Actualmente es compatible con bases de datos MySQL y PostgreSQL.