MySQL MCP Server

by xiangma9712
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Uses environment variables stored in .env files for configuration management, particularly for sensitive database connection credentials.

  • Runs as a containerized service with special configurations for host connectivity, allowing MySQL database access from Docker environments with proper networking setup.

  • Enables interaction with MySQL databases through read-only queries, schema exploration, and safe testing of write operations (with rollback). Provides tools for executing queries, listing tables, and describing table structures.

Servidor MySQL MCP

Un servidor MCP para interactuar con bases de datos MySQL.

Este servidor admite la ejecución de consultas de solo lectura (consulta) y consultas de escritura que finalmente se revierten (test_execute).

Configuración

Variables de entorno

Agregue las siguientes variables de entorno a ~/.mcp/.env :

MYSQL_HOST=host.docker.internal # Hostname to access host services from Docker container MYSQL_PORT=3306 MYSQL_USER=root MYSQL_PASSWORD=your_password

Nota : host.docker.internal es un nombre DNS especial para acceder a los servicios del equipo host desde contenedores Docker. Use esta configuración al conectarse a un servidor MySQL que se esté ejecutando en su equipo host. Si se conecta a otro servidor MySQL, cambie al nombre de host correspondiente.

Configuración de mcp.json

{ "mcpServers": { "mysql": { "command": "docker", "args": [ "run", "-i", "--rm", "--add-host=host.docker.internal:host-gateway", "--env-file", "/Users/username/.mcp/.env", "ghcr.io/xiangma9712/mcp/mysql" ] } } }

Uso

Iniciando el servidor

docker run -i --rm --add-host=host.docker.internal:host-gateway --env-file ~/.mcp/.env ghcr.io/xiangma9712/mcp/mysql

Nota : Si usa OrbStack, host.docker.internal se admite automáticamente, por lo que puede omitir la opción --add-host . Aunque Docker Desktop también suele admitirlo automáticamente, se recomienda agregar la opción --add-host para una mayor fiabilidad.

Comandos disponibles

1. Ejecutar consulta de solo lectura

{ "type": "query", "payload": { "sql": "SELECT * FROM your_table" } }

Respuesta:

{ "success": true, "data": [ { "id": 1, "name": "example" } ] }

2. Ejecución de la consulta de prueba

{ "type": "test_execute", "payload": { "sql": "UPDATE your_table SET name = 'updated' WHERE id = 1" } }

Respuesta:

{ "success": true, "data": "The UPDATE SQL query can be executed." }

3. Tablas de listas

{ "type": "list_tables" }

Respuesta:

{ "success": true, "data": ["table1", "table2", "table3"] }

4. Describir la tabla

{ "type": "describe_table", "payload": { "table": "your_table" } }

Respuesta:

{ "success": true, "data": [ { "Field": "id", "Type": "int(11)", "Null": "NO", "Key": "PRI", "Default": null, "Extra": "" }, { "Field": "name", "Type": "varchar(255)", "Null": "YES", "Key": "", "Default": null, "Extra": "" } ] }

Detalles de implementación

  • Implementado en TypeScript
  • Utiliza el paquete mysql2
  • Se ejecuta como un contenedor Docker
  • Acepta comandos JSON a través de la entrada estándar
  • Devuelve respuestas JSON a través de la salida estándar
  • Utiliza host.docker.internal para conectarse al host MySQL (compatible con OrbStack y Docker Desktop)

Consideraciones de seguridad

  • Utiliza variables de entorno para la gestión de información confidencial
  • La prevención de inyecciones SQL es responsabilidad del implementador
  • Se requiere una configuración de red adecuada para el uso en producción
  • Se necesitan configuraciones de firewall adecuadas al conectarse a los servicios de la máquina host

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Permite la interacción con una base de datos MySQL a través de comandos JSON, admite consultas de solo lectura, ejecución de pruebas de consultas de escritura y recuperación de información de tablas a través de Docker.

  1. Setup
    1. Environment Variables
    2. mcp.json Configuration
  2. Usage
    1. Starting the Server
    2. Available Commands
  3. Implementation Details
    1. Security Considerations
      ID: kucglstegf