MariaDB / MySQL
Proporciona acceso a bases de datos MariaDB y MySQL para consultas y manipulación de datos.
Documentación
MariaDB / MySQL MCP Server
Este servidor MCP expone bases de datos MariaDB y MySQL a clientes MCP como Claude Desktop, VS Code y otras herramientas compatibles.
Proporciona herramientas para:
- listar bases de datos disponibles
- listar tablas en una base de datos
- describir esquemas de tablas
- ejecutar consultas SQL
Características
- Comportamiento seguro por defecto: el acceso de solo lectura está habilitado por defecto
- Validación de consultas para bloquear sentencias no permitidas y reducir el riesgo de inyección
- Permisos de escritura configurables mediante variables de entorno
- Protección de tiempo de espera y límite de filas
- Seguridad numérica para IDs de inserción y valores BIGINT devueltos por el controlador MariaDB
Instalación
Opción 1: Instalar desde npm
npm install -g mariadb-mcp-server
Opción 2: Instalar localmente
npm install mariadb-mcp-server
Opción 3: Compilar desde el código fuente
git clone https://github.com/rjsalgado/mariadb-mcp-server.git
cd mariadb-mcp-server
npm install
npm run build
Configuración
Establezca las siguientes variables de entorno antes de iniciar el servidor:
MARIADB_HOST: Host de la base de datosMARIADB_PORT: Puerto de la base de datos (predeterminado:3306)MARIADB_USER: Nombre de usuario de la base de datosMARIADB_PASSWORD: Contraseña de la base de datosMARIADB_DATABASE: Nombre de la base de datos predeterminada (opcional)MARIADB_ALLOW_INSERT: Habilitar sentenciasINSERT(true/false)MARIADB_ALLOW_UPDATE: Habilitar sentenciasUPDATE(true/false)MARIADB_ALLOW_DELETE: Habilitar sentenciasDELETE(true/false)MARIADB_TIMEOUT_MS: Tiempo de espera de consulta en milisegundos (predeterminado:10000)MARIADB_ROW_LIMIT: Número máximo de filas devueltas (predeterminado:1000)
Ejemplo:
export MARIADB_HOST=localhost
export MARIADB_PORT=3306
export MARIADB_USER=myuser
export MARIADB_PASSWORD=mypassword
export MARIADB_DATABASE=mydb
export MARIADB_ALLOW_INSERT=false
export MARIADB_ALLOW_UPDATE=false
export MARIADB_ALLOW_DELETE=false
export MARIADB_TIMEOUT_MS=10000
export MARIADB_ROW_LIMIT=1000
Configuración de MCP
Usando el paquete npm
{
"mcpServers": {
"mariadb": {
"command": "npx",
"args": ["mariadb-mcp-server"],
"env": {
"MARIADB_HOST": "your-host",
"MARIADB_PORT": "3306",
"MARIADB_USER": "your-user",
"MARIADB_PASSWORD": "your-password",
"MARIADB_DATABASE": "your-database",
"MARIADB_ALLOW_INSERT": "false",
"MARIADB_ALLOW_UPDATE": "false",
"MARIADB_ALLOW_DELETE": "false",
"MARIADB_TIMEOUT_MS": "10000",
"MARIADB_ROW_LIMIT": "1000"
},
"disabled": false,
"autoApprove": []
}
}
}
Usando un servidor local compilado
{
"mcpServers": {
"mariadb": {
"command": "node",
"args": ["/absolute/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-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
El servidor registra las siguientes herramientas MCP:
list_databases
Lista todas las bases de datos accesibles para el usuario configurado.
list_tables
Lista las tablas de una base de datos específica.
Parámetros:
database(opcional): nombre de la base de datos a inspeccionar
describe_table
Devuelve el esquema de una tabla específica.
Parámetros:
database(opcional): nombre de la base de datostable(obligatorio): nombre de la tabla
execute_query
Ejecuta una consulta SQL.
Parámetros:
database(opcional): nombre de la base de datosquery(obligatorio): sentencia SQL a ejecutar
Pruebas
El repositorio incluye scripts para validar el servidor contra una instancia de MariaDB o MySQL.
npm run test:setup
npm run test:tools
O ejecute todo junto:
npm test
Notas
- El servidor es seguro por defecto y solo permite operaciones de solo lectura a menos que los indicadores de escritura estén habilitados explícitamente.
- Las operaciones de escritura siguen sujetas a validación de consultas y límites de tiempo de ejecución.
Solución de problemas
Si encuentra problemas:
- Revise los registros del servidor para ver mensajes de error
- Verifique sus credenciales y detalles de conexión de MariaDB/MySQL
- Asegúrese de que su usuario de MariaDB/MySQL tenga los permisos adecuados
- Compruebe que su consulta sea de solo lectura y esté correctamente formateada
Inspiración https://github.com/dpflucas/mysql-mcp-server
Licencia
Este proyecto está licenciado bajo la Licencia MIT; consulte el archivo LICENSE para obtener más detalles.