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
MariaDB Server MCP server

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 SQL
  • 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": "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:

  1. Revisa los registros del servidor para ver mensajes de error
  2. Verifica tus credenciales de MariaDB y los detalles de conexión
  3. Asegúrate de que tu usuario de MariaDB tenga los permisos adecuados
  4. 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.