Skip to main content
Glama
gistrec

mcp-mysql-client

MySQL MCP

npm CI License: MIT

MySQL MCP conecta una aplicación de IA a una base de datos MySQL o MariaDB: ver la estructura, hacer preguntas a los datos en lenguaje natural, entender una consulta lenta y, si usted mismo lo ha permitido, modificar los datos.

El servidor está vinculado a una sola base de datos: está definida por la configuración, y ninguna herramienta puede acceder a otra. Por defecto, solo está disponible la lectura.

  • 6 herramientas. Conexión y permisos, lista de tablas, estructura de tabla, consulta de lectura, plan de consulta, consulta de modificación.

  • El tipo de consulta lo determina el servidor. El SQL se analiza antes de la conexión: DELETE en la herramienta de lectura será rechazado, incluso si los permisos de escritura están habilitados.

  • La lectura no puede escribir. Las consultas de lectura se ejecutan dentro de START TRANSACTION READ ONLY — la escritura será rechazada por el propio MySQL, incluso si alguien engaña al análisis SQL.

  • La respuesta no desbordará el contexto. Las filas se leen en flujo y se cortan en el límite, no se descargan completas; en la respuesta hay un indicador honesto truncated.

  • Permisos solo desde fuera. INSERT, UPDATE y DELETE se habilitan mediante variables de entorno y requieren reinicio — no se pueden obtener desde el diálogo. DDL no está disponible siempre.

Comience con una consulta que solo lea datos:

Muestra la estructura de la base de datos y calcula cuántos registros han aparecido en la última semana.


Inicio rápido

Claude Code:

claude mcp add mysql-myapp \
  -e MYSQL_HOST=db.example.com \
  -e MYSQL_USER=myapp_ro \
  -e MYSQL_PASS='пароль' \
  -e MYSQL_DB=myapp \
  -e MYSQL_SSL=true \
  -- npx -y mcp-mysql-client

O en .mcp.json / claude_desktop_config.json:

{
  "mcpServers": {
    "mysql-myapp": {
      "command": "npx",
      "args": ["-y", "mcp-mysql-client"],
      "env": {
        "MYSQL_HOST": "db.example.com",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "myapp_ro",
        "MYSQL_PASS": "пароль",
        "MYSQL_DB": "myapp",
        "MYSQL_SSL": "true"
      }
    }
  }
}

Un servidor — una base de datos. Si necesita varias bases: agregue varias entradas con sus propias credenciales; así los permisos permanecen aislados, y el servidor conectado a la base de pruebas no ve físicamente la de producción.

Related MCP server: MySQL MCP Server

Qué se puede encargar

Consulta

Qué hace el servidor

«¿Qué hay en esta base de datos?»

list_tables — tablas, tamaños, estimaciones de número de filas

«¿Cómo está estructurada la tabla orders?»

describe_table — columnas, índices, claves externas en ambas direcciones

«¿Cuántos pedidos hay en julio y por cuánto?»

query — SELECT con agregación

«¿Por qué esta consulta es lenta?»

explain — plan, índices, estimación de filas

«¿Con qué usuario estoy conectado y qué puedo hacer?»

server_info — base de datos, usuario, GRANT, límites del servidor

«Asigna el estado a los pedidos cancelados»

execute — solo con ALLOW_UPDATE_OPERATION=true

Qué puede cambiar

Por defecto, nada: el servidor arranca en modo solo lectura. La escritura se habilita operación por operación:

"ALLOW_INSERT_OPERATION": "true",
"ALLOW_UPDATE_OPERATION": "true",
"ALLOW_DELETE_OPERATION": "false"

Lo que sigue siendo imposible:

  • DDLCREATE, ALTER, DROP, TRUNCATE, RENAME — bajo ninguna configuración.

  • Cambio de base de datos, SET, CALL, PREPARE, LOAD DATA, bloqueos, GRANT y cualquier otra cosa que cambie el significado de la siguiente consulta o ejecute texto no verificado.

  • SELECT ... INTO OUTFILE — escritura de un archivo en el servidor de la base de datos.

  • UPDATE y DELETE sin WHERE — requieren confirmación explícita allow_full_table=true en la llamada.

  • Varias instrucciones en una sola llamada — se ejecuta exactamente una.

Los permisos de MySQL son una restricción adicional sobre esto. El permiso ALLOW_UPDATE_OPERATION no agrega nada a un usuario que no tiene GRANT UPDATE. Buena práctica: un usuario separado con permisos mínimos, no root.

Variables de entorno

Variable

Por defecto

Propósito

MYSQL_HOST

127.0.0.1

Host del servidor

MYSQL_PORT

3306

Puerto

MYSQL_SOCKET_PATH

Socket Unix en lugar de host/puerto

MYSQL_USER

Usuario (obligatorio)

MYSQL_PASS

Contraseña (sinónimo de MYSQL_PASSWORD)

MYSQL_PASS_FILE

Leer la contraseña de un archivo en lugar de la variable

MYSQL_DB

Base de datos (obligatorio, sinónimo de MYSQL_DATABASE)

MYSQL_SSL

false

Requerir TLS

MYSQL_SSL_CA

Ruta al certificado raíz; por sí mismo habilita TLS

MYSQL_SSL_REJECT_UNAUTHORIZED

true

Verificar el certificado del servidor

ALLOW_INSERT_OPERATION

false

Permitir INSERT

ALLOW_UPDATE_OPERATION

false

Permitir UPDATE

ALLOW_DELETE_OPERATION

false

Permitir DELETE

MYSQL_MAX_ROWS

1000

Límite de filas en una respuesta

MYSQL_TIMEOUT_MS

30000

Tiempo de espera de la consulta

MYSQL_CONNECT_TIMEOUT_MS

10000

Tiempo de espera de conexión

MYSQL_POOL_SIZE

3

Conexiones en el pool

MYSQL_MAX_RETRIES

2

Reintentos ante cortes de conexión y bloqueos mutuos

MYSQL_READ_ONLY_TX

true

Ejecutar lectura en transacción de solo lectura

ASKADS_TELEMETRY

0 desactiva las estadísticas anónimas de ejecuciones

La contraseña en la configuración del cliente MCP está en texto plano. MYSQL_PASS_FILE permite mantenerla en un archivo con los permisos adecuados.

Migración desde @benborla29/mcp-server-mysql

Los nombres de las variables coinciden, por lo que basta con reemplazar el paquete en el comando de inicio:

-  "args": ["-y", "@benborla29/mcp-server-mysql"]
+  "args": ["-y", "mcp-mysql-client"]

Qué cambiará en el comportamiento:

  • MYSQL_DB es obligatorio — el servidor siempre está vinculado a una sola base de datos;

  • las respuestas están limitadas por MYSQL_MAX_ROWS y se marcan como truncated;

  • DDL no está disponible incluso con permisos de escritura habilitados;

  • UPDATE/DELETE sin WHERE requieren confirmación en la llamada;

  • el conjunto de herramientas es diferente: query, execute, explain, list_tables, describe_table, server_info.

Diagnóstico

Lo primero — server_info: mostrará a qué está conectado el servidor, qué permisos tiene el usuario de MySQL y qué restricciones están habilitadas.

Síntoma

Causa

errno 1045

MYSQL_USER / MYSQL_PASS incorrectos

errno 1044

El usuario existe, pero no tiene permisos sobre la base de datos

errno 1142

Falta GRANT para la operación o tabla — ALLOW_* no ayuda aquí

errno 3159

El servidor requiere TLS: MYSQL_SSL=true

ECONNREFUSED / ETIMEDOUT

Host, puerto, firewall o VPN no levantada

ER_NOT_SUPPORTED_AUTH_MODE

Se necesita TLS para caching_sha2_password

El servidor no se conecta

El error de configuración se ve directamente en el diálogo: el servidor arranca incluso sin credenciales y explica qué falta

Documentación técnica

Licencia

MIT

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that enables AI agents to safely explore and interact with MySQL databases through dynamic tool generation from stored procedures. It provides database discovery capabilities and intelligent procedure categorization while enforcing security restrictions to prevent data modification.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to safely interact with MySQL/MariaDB databases, supporting read-only queries by default with optional write operations and access control.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to query and manage MySQL databases through a structured MCP interface, supporting SQL execution, table inspection, and database operations.
    9
    14
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A robust MCP server for interacting with MySQL databases through AI agents, providing tools for schema analysis, query execution, and dynamic connection management with read-only security.
    61
    MIT

View all related MCP servers

Related MCP Connectors

  • Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.

  • Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.

  • Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gistrec/mcp-mysql-client'

If you have feedback or need assistance with the MCP directory API, please join our Discord server