MariaDB-MCP

MariaDB-MCP

Enables interaction with MariaDB/MySQL databases via MCP, supporting read-only mode, SQL execution, and schema inspection.

Category
Visit Server

README

MariaDB MCP Server (JavaScript)

Servidor MCP escrito en Node.js / JavaScript para interactuar con bases de datos MariaDB/MySQL.

Características

  • Transporte stdio compatible con el protocolo MCP (Model Context Protocol).
  • Transporte HTTP/SSE preparado para extenderse con un bridge web.
  • Conexión pool usando mysql2/promise con tamaño configurable.
  • Soporte SSL con CA, certificados cliente y configuración de verificación.
  • Modo solo lectura (READ_ONLY) que bloquea queries de escritura y funciones de archivo (LOAD_FILE, INTO OUTFILE).
  • Logging a stderr (compatible con stdio transport) y archivos rotados diariamente con winston.
  • Docker y Docker Compose listos para usar.

Herramientas MCP expuestas

Herramienta Descripción
list_databases Lista todas las bases de datos accesibles.
list_tables Lista las tablas de una base de datos.
get_table_schema Obtiene columnas, tipos, nullable, keys, defaults y extras.
get_table_schema_with_relations Igual que get_table_schema pero incluye claves foráneas.
execute_sql Ejecuta queries SELECT/SHOW/DESCRIBE. Valida parámetros y modo solo lectura.
create_database Crea una base de datos (requiere MCP_READ_ONLY=false).

Requisitos

  • Node.js >= 18 (recomendado 20 LTS)
  • MariaDB/MySQL accesible desde la red del servidor

Instalación

# Clonar o copiar la carpeta MariaDB-MCP
cd MariaDB-MCP

# Instalar dependencias
npm install

Configuración

Copia el archivo de ejemplo y ajusta tus credenciales:

cp .env.example .env

Variables disponibles:

Variable Descripción Default
DB_HOST Host del servidor MariaDB localhost
DB_PORT Puerto 3306
DB_USER Usuario root
DB_PASSWORD Contraseña (vacío)
DB_NAME Base de datos por defecto genoma
DB_CHARSET Charset de conexión utf8mb4
DB_SSL Habilitar SSL false
DB_SSL_CA Ruta al certificado CA (vacío)
DB_SSL_CERT Ruta al certificado cliente (vacío)
DB_SSL_KEY Ruta a la clave privada cliente (vacío)
DB_SSL_VERIFY_CERT Verificar certificado true
DB_SSL_VERIFY_IDENTITY Verificar identidad del host true
MCP_READ_ONLY Modo solo lectura true
MCP_MAX_POOL_SIZE Tamaño máximo del pool 10
LOG_LEVEL Nivel de log (debug,info,warn,error) info
ALLOWED_ORIGINS Orígenes CORS separados por coma (vacío)
ALLOWED_HOSTS Hosts permitidos separados por coma localhost,127.0.0.1

Uso

Modo stdio (por defecto)

npm start
# o
node src/index.js

Modo HTTP/SSE

node src/index.js --http 3000

Ayuda

node src/index.js --help

Docker

Construir y ejecutar

# Modo stdio ( foreground )
docker-compose run --rm mcp-server

# Modo HTTP ( background )
docker-compose up -d mcp-server

Asegúrese de que las variables de entorno estén definidas en un archivo .env o en el shell antes de ejecutar docker-compose.

Seguridad

  • MULTI_STATEMENTS y LOCAL_INFILE están desactivados en el pool de conexiones.
  • En modo READ_ONLY, solo se permiten queries que inicien con SELECT, SHOW, DESC, DESCRIBE o USE.
  • Se bloquean explícitamente las funciones LOAD_FILE() y sentencias INTO OUTFILE/DUMPFILE.
  • Se detecta y se alerta si el usuario de base de datos posee el privilegio global FILE.

Estructura del proyecto

MariaDB-MCP/
├── src/
│   ├── index.js      # Punto de entrada y CLI
│   ├── server.js     # Lógica MCP, pool y herramientas
│   ├── config.js     # Variables de entorno
│   └── logger.js     # Configuración de winston
├── logs/             # Archivos de log rotados
├── .env.example
├── .gitignore
├── .dockerignore
├── Dockerfile
├── docker-compose.yml
├── package.json
└── README.md

Licencia

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured