MariaDB / MySQL
Accede y gestiona bases de datos MariaDB o MySQL usando un servidor MCP.
Documentación
Servidor MCP de Acceso a Base de Datos MariaDB / MySQL
Este servidor MCP proporciona acceso a bases de datos MariaDB / MySQL.
Le permite:
- Listar bases de datos disponibles
- Listar tablas en una base de datos
- Describir esquemas de tablas
- Ejecutar consultas SQL
Características de Seguridad
- Acceso de solo lectura por defecto: SELECT, SHOW, DESCRIBE y EXPLAIN
- Validación de consultas: Previene la inyección SQL y bloquea cualquier intento de modificación de datos
- Tiempo de espera de consulta: Evita que las consultas de larga duración consuman recursos
- Límite de filas: Evita la devolución excesiva de datos
Instalación
Opción 1: Compilar desde el código fuente
# Clone the repository
git clone https://github.com/bretoreta/mariadb-mcp-server.git
cd mariadb-mcp-server
# Install dependencies and build
pnpm install
pnpm run build
2. Configurar variables de entorno
El servidor requiere las siguientes variables de entorno:
- MARIADB_HOST: Nombre de host del servidor de base de datos
- MARIADB_PORT: Puerto del servidor de base de datos (por defecto: 3306)
- MARIADB_USER: Nombre de usuario de la base de datos
- MARIADB_PASSWORD: Contraseña de la base de datos
- MARIADB_DATABASE: Nombre de base de datos por defecto (opcional)
- MARIADB_ALLOW_INSERT: false
- MARIADB_ALLOW_UPDATE: false
- MARIADB_ALLOW_DELETE: false
- MARIADB_TIMEOUT_MS: 10000
- MARIADB_ROW_LIMIT: 1000
3. Añadir a la configuración de MCP
Añade la siguiente configuración a tu archivo de configuración de MCP:
Si compilaste desde el código fuente:
{
"mcpServers": {
"mariadb": {
"command": "node",
"args": ["/path/to/mariadb-mcp-server/dist/index.js"],
"env": {
"MARIADB_HOST": "your-host",
"MARIADB_PORT": "3306",
"MARIADB_USER": "your-user",
"MARIADB_PASSWORD": "your-password",
"MARIADB_DATABASE": "your-default-database",
"MARIADB_ALLOW_INSERT": "false",
"MARIADB_ALLOW_UPDATE": "false",
"MARIADB_ALLOW_DELETE": "false",
"MARIADB_TIMEOUT_MS": "10000",
"MARIADB_ROW_LIMIT": "1000",
},
"disabled": false,
"autoApprove": []
}
}
}
Herramientas Disponibles
list_databases
Lista todas las bases de datos accesibles en el servidor MariaDB / MySQL. Parámetros: Ninguno
Ejemplo:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"sessionId": "session_id from /sse call",
"name": "list_databases"
}
}
list_tables
Lista todas las tablas en una base de datos especificada.
Parámetros:
database(opcional): Nombre de la base de datos (usa el predeterminado si no se especifica)
Ejemplo:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"sessionId": "session_id from /sse call",
"name": "list_tables",
"database": "my_database_name"
}
}
describe_table
Muestra el esquema de una tabla específica.
Parámetros:
database(opcional): Nombre de la base de datos (usa el predeterminado si no se especifica)table(obligatorio): Nombre de la tabla
Ejemplo:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"sessionId": "session_id from /sse call",
"name": "describe_table",
"database": "my_database_name",
"table": "my_table_name"
}
}
execute_query
Ejecuta una consulta SQL.
Parámetros:
query(obligatorio): Consulta SQLdatabase(opcional): Nombre de la base de datos (usa el predeterminado si no se especifica)
Ejemplo:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"sessionId": "session_id from /sse call",
"name": "execute_query",
"query": "SELECT * FROM my_table LIMIT 10"
}
}
Pruebas
El servidor prueba automáticamente MariaDB para verificar la funcionalidad con tu configuración de MariaDB:
Solución de problemas
Si encuentras problemas:
- Revisa los registros del servidor para ver mensajes de error
- Verifica tus credenciales de MariaDB y los detalles de conexión
- Asegúrate de que tu usuario de MariaDB tenga los permisos adecuados
- Comprueba que tu consulta sea de solo lectura y esté correctamente formateada
Inspiración https://github.com/rjsalgado/mariadb-mcp-server
Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulte el archivo LICENSE para más detalles.