MySQL Server

Un servidor para realizar operaciones de base de datos MySQL.

Documentación

mcp-mysql-server

Un servidor de operaciones de base de datos MySQL basado en el Protocolo de Contexto de Modelos. Este servidor permite que los modelos de IA interactúen con bases de datos MySQL a través de una interfaz estandarizada.

Instalación

npx @malove86/mcp-mysql-server

Configuración

El servidor admite dos modos de implementación:

1. Modo de ejecución local

Ejecute mediante línea de comandos en el archivo de configuración de MCP:

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["-y", "@malove86/mcp-mysql-server"],
      "env": {
        "MYSQL_HOST": "your_host",
        "MYSQL_USER": "your_user",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "your_database",
        "MYSQL_PORT": "3306"
      }
    }
  }
}

2. Modo de URL remota (v0.2.2+)

Apunte a un servidor MCP que se ejecute de forma remota:

{
  "mcpServers": {
    "mcp-mysql-server": {
      "url": "http://your-server-address:port/mcp-mysql-server"
    }
  }
}

En el servidor remoto, debe configurar las variables de entorno y luego iniciar el servidor MCP:

# 设置环境变量
export MYSQL_HOST=your_host
export MYSQL_USER=your_user
export MYSQL_PASSWORD=your_password
export MYSQL_DATABASE=your_database
export MYSQL_PORT=3306  # 可选,默认为3306

# 启动服务器
npx @malove86/mcp-mysql-server

Nota: MYSQL_PORT es opcional, el valor predeterminado es 3306.

Funciones por versión

Novedades de v0.2.4+

  • Soporte de concurrencia multiusuario: el servidor ahora puede manejar solicitudes de múltiples usuarios simultáneamente
  • Gestión eficiente del grupo de conexiones: utiliza un grupo de conexiones mejorado que admite hasta 50 conexiones concurrentes
  • Aislamiento a nivel de solicitud: cada solicitud tiene un identificador único para facilitar el seguimiento y la depuración
  • Registro detallado: registra el proceso de ejecución y el uso de recursos de cada solicitud
  • Manejo de errores mejorado: captura y reporta errores de base de datos con mayor precisión
  • Optimización del rendimiento: la reutilización del grupo de conexiones y la gestión optimizada de conexiones mejoran la velocidad de procesamiento

Funciones de v0.2.2+

  • Conexión automática a la base de datos: al iniciar el servidor, si se configuran variables de entorno, se intenta conectar automáticamente a la base de datos
  • Sin parámetros de cliente necesarios: cuando se usa el modo URL, el cliente no necesita proporcionar información de conexión a la base de datos
  • Operaciones de base de datos transparentes: puede usar directamente herramientas como list_tables y query sin necesidad de llamar primero a connect_db
  • Más seguro: las credenciales sensibles de la base de datos solo existen en el lado del servidor y no se exponen en las conversaciones del cliente
  • Tolerancia a fallos elegante: incluso si la conexión inicial falla, las operaciones posteriores reintentarán la conexión automáticamente

Herramientas disponibles

1. connect_db

Establece una conexión con la base de datos MySQL utilizando las credenciales proporcionadas. Si la conexión ya se configuró mediante variables de entorno, esta herramienta es opcional.

{
  "host": "localhost",
  "user": "root",
  "password": "your_password",
  "database": "your_database",
  "port": 3306  // 可选,默认为3306
}

2. query

Ejecuta consultas SELECT, con soporte opcional para parámetros de declaraciones preparadas.

{
  "sql": "SELECT * FROM users WHERE id = ?",
  "params": [1]  // 可选参数
}

3. list_tables

Enumera todas las tablas en la base de datos conectada.

{}  // 从v0.2.4开始不再需要任何参数

4. describe_table

Obtiene la estructura de una tabla específica.

{
  "table": "users"
}

Características

  • Manejo seguro de conexiones con limpieza automática
  • Soporte para parámetros de declaraciones preparadas
  • Manejo integral de errores y validación
  • Soporte para TypeScript
  • Gestión automática de conexiones
  • Configuración mediante variables de entorno del servidor
  • Soporte para modo de conexión remota por URL
  • Soporte de concurrencia multiusuario
  • Grupo de conexiones de alto rendimiento

Rendimiento

  • Admite hasta 50 conexiones concurrentes (configurable)
  • El grupo de conexiones se gestiona automáticamente para mejorar la utilización de recursos
  • Seguimiento detallado de solicitudes y monitoreo de rendimiento

Seguridad

  • Uso de declaraciones preparadas para prevenir la inyección SQL
  • Soporte para manejo seguro de contraseñas mediante variables de entorno
  • Validación de consultas antes de la ejecución
  • Cierre automático de conexiones al finalizar
  • En modo URL, las credenciales sensibles no se exponen al cliente
  • Aislamiento de conexiones para prevenir fugas de datos entre usuarios

Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar una Solicitud de Extracción (Pull Request) a https://github.com/Malove86/mcp-mysql-server.git

Licencia

MIT