mcp-database-universal
Servidor de Base de Datos MCP
Una interfaz de razonamiento para bases de datos para agentes de IA compatibles con MCP — no un envoltorio SQL simple.
mcp-database-universal proporciona a los agentes de IA un conjunto de 7 herramientas de razonamiento para explorar y consultar una base de datos de forma segura, comprender su esquema y la forma de los datos, ejecutar preguntas en lenguaje natural y visualizar relaciones — todo sin exponer los detalles internos de la conexión.
Características
7 herramientas de razonamiento diseñadas para agentes de IA: probar conexión, listar tablas, inspeccionar una tabla, ejecutar SQL parametrizado, hacer preguntas en lenguaje natural, perfilar datos y renderizar un diagrama ER.
Multi-motor: SQLite (integrado) más PostgreSQL, MySQL y MSSQL opcionales.
Seguridad ante todo: solo lectura por defecto, consultas parametrizadas, validación de sentencias, límites de filas/tiempo/salida.
Salida amigable para LLM: tipos traducidos,
NULLs manejados, resultados formateados en tablas Markdown con contexto.Introspección de esquema: descubrimiento automático de tablas, columnas, índices, claves foráneas y relaciones.
Consultas en lenguaje natural: traduce preguntas en texto plano a SQL y devuelve resultados.
Related MCP server: database-explorer-mcp
Motores compatibles
Motor | Requisito | Extra de instalación |
SQLite | integrado | — |
PostgreSQL | psycopg |
|
MySQL | PyMySQL |
|
MSSQL | pyodbc + controlador ODBC |
|
todos | — |
|
Instalación
pip install mcp-database-universal
# With optional engines:
pip install "mcp-database-universal[postgres]"
pip install "mcp-database-universal[mysql]"
pip install "mcp-database-universal[mssql]"
# or everything:
pip install "mcp-database-universal[all]"Inicio rápido
Ejecuta el servidor sobre STDIO (el transporte por defecto para clientes MCP):
DATABASE_URL=sqlite:///app.db python -m mcp_database_universalURLs de conexión:
sqlite:///path/to/db.db SQLite (file)
sqlite:///:memory: SQLite (in-memory)
postgresql://user:pass@host:5432/db PostgreSQL
mysql://user:pass@host:3306/db MySQL
mssql://user:pass@host:1433/db MSSQL (uses ODBC Driver 18)Docker
docker build -t mcp-db .
# Mount a SQLite database read-only:
docker run --rm -i \
-v /host/path/app.db:/data/app.db:ro \
-e DATABASE_URL=sqlite:////data/app.db \
mcp-db
# Or in-memory:
docker run --rm -i -e DATABASE_URL=sqlite:///:memory: mcp-dbConfiguración
Toda la configuración se realiza mediante variables de entorno.
Variable | Por defecto | Descripción |
| (obligatorio) | URL de conexión a la base de datos. |
|
| Forzar modo de solo lectura (bloquea escrituras incluso si |
|
| Permitir sentencias de escritura cuando |
|
| Máximo de filas devueltas por consulta. |
|
| Tiempo de espera de la consulta en segundos. |
|
| Límite del tamaño de la carga útil de resultados. |
|
| Número de filas de muestra mostradas en estadísticas de tabla/columna. |
|
| Entradas de distribución de valores Top-N en el perfilado. |
| — | Clave API para el modo |
| — | Clave API para el modo |
Herramientas
Herramienta | Descripción |
| Probar la conectividad de la base de datos; informar motor, versión, nombre, tamaño, número de tablas. |
| Resumen de todas las tablas con recuentos de filas, recuentos de columnas, relaciones de claves foráneas. |
| Estructura completa de una tabla: columnas, tipos, índices, claves foráneas, datos de muestra. |
| Ejecutar una consulta SQL segura y parametrizada y obtener resultados en Markdown. |
| Hacer una pregunta en texto plano; obtener SQL generado + resultados. |
| Perfil de datos: distribuciones, tasas de NULL, relaciones, tamaños. |
| Diagrama ER Mermaid de las relaciones entre tablas. |
Ejemplo: query con parámetros
{
"sql": "SELECT * FROM users WHERE id = :id AND active = :active",
"params": "{\"id\": 42, \"active\": true}"
}Los parámetros usan marcadores de posición :name; pasa los valores como una cadena JSON en params.
Ejemplo: natural_query
question: "How many users are there?"
-> SELECT COUNT(*) FROM users
question: "Show me all orders"
-> SELECT * FROM orders LIMIT 100Un ejemplo funcional contra una pequeña base de datos de muestra está en examples/ junto con fragmentos de configuración listos para usar para clientes MCP comunes.
Configuración de clientes MCP
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"database": {
"command": "python",
"args": ["-m", "mcp_database_universal"],
"env": {"DATABASE_URL": "sqlite:///C:/data/app.db"}
}
}
}Cursor / otros clientes basados en CLI
{
"mcpServers": {
"database": {
"command": "uvx",
"args": ["mcp-database-universal"],
"env": {"DATABASE_URL": "sqlite:///C:/data/app.db"}
}
}
}Nota para Windows: el controlador Postgres asíncrono requiere el bucle de eventos selector de Windows. El paquete establece esta política automáticamente en
win32, por lo que no se necesita configuración adicional.
Desarrollo
pip install -e ".[dev]"
pytestLas pruebas de integración para PostgreSQL/MySQL usan Docker Compose y se omiten automáticamente si los servidores no son accesibles:
docker compose -f tests/integration/docker-compose.yml up -d
pytestModelo de seguridad
El servidor es de solo lectura por defecto;
INSERT/UPDATE/DELETE/DROP/ALTERy otras sentencias de escritura están bloqueadas.Las escrituras solo son posibles cuando el operador establece explícitamente
DATABASE_READ_ONLY=falseyDATABASE_WRITE_ENABLED=true.Los resultados de las consultas están limitados por recuento de filas, tiempo de espera y tamaño de salida — se previenen consultas descontroladas.
Licencia
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
- OleanderOAuthdev.oleander
The all-in-one data stack for agents. Upload files, run SQL, evolve tables, and render charts.
Query Postgres, MySQL, SQL Server, Oracle, BigQuery, ClickHouse and Redshift from your AI client.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceConnect AI agents to SQL databases (SQLite, PostgreSQL, MySQL) with a unified interface for querying data, exploring schemas, inserting rows, and exporting results to CSV. Includes safety features like dangerous query blocking and write guards.5 npm40 PyPIMIT
- AlicenseAqualityDmaintenanceEnables AI assistants to connect to and interact with PostgreSQL, MySQL, SQLite, and MongoDB databases through natural language, supporting schema exploration, query execution, data export, and more.13MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with PostgreSQL or MySQL databases using natural language. Supports SQL queries, schema discovery, and pre-built aggregations without writing SQL.139 npmMIT
- AlicenseAqualityDmaintenanceEnables AI agents to securely query databases (PostgreSQL, SQLite, MySQL, DuckDB) with read-only defaults and multi-layer SQL injection prevention.81MIT