Skip to main content
Glama

Servidor MCP para MySQL basado en NodeJS

insignia de herrería

Manifestación

Un servidor de Protocolo de Contexto de Modelo que proporciona acceso de solo lectura a bases de datos MySQL. Este servidor permite a los LLM inspeccionar esquemas de bases de datos y ejecutar consultas de solo lectura.

Instalación

Uso de herrería

La forma más sencilla de instalar y configurar este servidor MCP es a través de Smithery :

# Install the MCP server npx -y @smithery/cli@latest install @benborla29/mcp-server-mysql --client claude

Durante la configuración, se le solicitará que ingrese los datos de su conexión MySQL. Smithery realizará automáticamente lo siguiente:

  • Configurar las variables de entorno correctas

  • Configure su aplicación LLM para utilizar el servidor MCP

  • Pruebe la conexión a su base de datos MySQL

  • Proporcionar solución de problemas útil si es necesario

Uso de MCP Get

También puedes instalar este paquete usando MCP Get :

npx @michaellatman/mcp-get@latest install @benborla29/mcp-server-mysql

MCP Get proporciona un registro centralizado de servidores MCP y simplifica el proceso de instalación.

Uso de NPM/PNPM

Para la instalación manual:

# Using npm npm install -g @benborla29/mcp-server-mysql # Using pnpm pnpm add -g @benborla29/mcp-server-mysql

Después de la instalación manual, deberá configurar su aplicación LLM para usar el servidor MCP (consulte la sección Configuración a continuación).

Componentes

Herramientas

  • consulta_mysql

    • Ejecutar consultas SQL de solo lectura contra la base de datos conectada

    • Entrada: sql (cadena): La consulta SQL a ejecutar

    • Todas las consultas se ejecutan dentro de una transacción de SOLO LECTURA

    • Admite declaraciones preparadas para el manejo seguro de parámetros

    • Tiempos de espera de consulta y paginación de resultados configurables

    • Estadísticas de ejecución de consultas integradas

Recursos

El servidor proporciona información de base de datos completa:

  • Esquemas de tabla

    • Información del esquema JSON para cada tabla

    • Nombres de columnas y tipos de datos

    • Información y restricciones del índice

    • Relaciones de clave externa

    • Estadísticas y métricas de la tabla

    • Descubierto automáticamente a partir de metadatos de la base de datos

Características de seguridad

  • Prevención de inyección SQL mediante sentencias preparadas

  • Consultar las capacidades de listas blancas/negras

  • Limitación de velocidad para la ejecución de consultas

  • Análisis de la complejidad de las consultas

  • Cifrado de conexión configurable

  • Aplicación de transacciones de solo lectura

Optimizaciones de rendimiento

  • Agrupación de conexiones optimizada

  • Almacenamiento en caché de resultados de consultas

  • Transmisión de grandes conjuntos de resultados

  • Análisis del plan de ejecución de consultas

  • Tiempos de espera de consulta configurables

Monitoreo y depuración

  • Registro completo de consultas

  • Recopilación de métricas de rendimiento

  • Seguimiento y generación de informes de errores

  • Puntos finales de comprobación de estado

  • Estadísticas de ejecución de consultas

Configuración

Configuración automática con Smithery

Si instaló con Smithery, su configuración ya está configurada. Puede verla o modificarla con:

smithery configure @benborla29/mcp-server-mysql

Configuración manual de la aplicación de escritorio Claude

Para configurar manualmente el servidor MCP para Claude Desktop App, agregue lo siguiente a su archivo claude_desktop_config.json (normalmente ubicado en su directorio de usuario):

{ "mcpServers": { "mcp_server_mysql": { "command": "npx", "args": [ "-y", "@benborla29/mcp-server-mysql" ], "env": { "MYSQL_HOST": "127.0.0.1", "MYSQL_PORT": "3306", "MYSQL_USER": "root", "MYSQL_PASS": "", "MYSQL_DB": "db_name" } } } }

Reemplace db_name con el nombre de su base de datos o déjelo en blanco para acceder a todas las bases de datos.

Opciones de configuración avanzadas

Para tener más control sobre el comportamiento del servidor MCP, puede utilizar estas opciones de configuración avanzadas:

{ "mcpServers": { "mcp_server_mysql": { "command": "/path/to/npx/binary/npx", "args": [ "-y", "@benborla29/mcp-server-mysql" ], "env": { // Basic connection settings "MYSQL_HOST": "127.0.0.1", "MYSQL_PORT": "3306", "MYSQL_USER": "root", "MYSQL_PASS": "", "MYSQL_DB": "db_name", "PATH": "/path/to/node/bin:/usr/bin:/bin", // Performance settings "MYSQL_POOL_SIZE": "10", "MYSQL_QUERY_TIMEOUT": "30000", "MYSQL_CACHE_TTL": "60000", // Security settings "MYSQL_RATE_LIMIT": "100", "MYSQL_MAX_QUERY_COMPLEXITY": "1000", "MYSQL_SSL": "true", // Monitoring settings "MYSQL_ENABLE_LOGGING": "true", "MYSQL_LOG_LEVEL": "info", "MYSQL_METRICS_ENABLED": "true" } } } }

Variables de entorno

Conexión básica

  • MYSQL_HOST : host del servidor MySQL (predeterminado: "127.0.0.1")

  • MYSQL_PORT : Puerto del servidor MySQL (predeterminado: "3306")

  • MYSQL_USER : nombre de usuario de MySQL (predeterminado: "root")

  • MYSQL_PASS : contraseña de MySQL

  • MYSQL_DB : Nombre de la base de datos de destino

Configuración de rendimiento

  • MYSQL_POOL_SIZE : Tamaño del grupo de conexiones (predeterminado: "10")

  • MYSQL_QUERY_TIMEOUT : Tiempo de espera de la consulta en milisegundos (valor predeterminado: "30000")

  • MYSQL_CACHE_TTL : Tiempo de vida de la caché en milisegundos (valor predeterminado: "60000")

Configuración de seguridad

  • MYSQL_RATE_LIMIT : Máximo de consultas por minuto (predeterminado: "100")

  • MYSQL_MAX_QUERY_COMPLEXITY : Puntuación máxima de complejidad de la consulta (valor predeterminado: "1000")

  • MYSQL_SSL : Habilitar el cifrado SSL/TLS (valor predeterminado: "falso")

Configuración de monitorización

  • MYSQL_ENABLE_LOGGING : Habilitar el registro de consultas (predeterminado: "falso")

  • MYSQL_LOG_LEVEL : Nivel de registro (predeterminado: "info")

  • MYSQL_METRICS_ENABLED : Habilitar métricas de rendimiento (valor predeterminado: "falso")

Pruebas

Configuración de la base de datos

Antes de ejecutar pruebas, debe configurar la base de datos de prueba y cargarla con datos de prueba:

  1. Crear una base de datos de prueba y un usuario

    -- Connect as root and create test database CREATE DATABASE IF NOT EXISTS mcp_test; -- Create test user with appropriate permissions CREATE USER IF NOT EXISTS 'mcp_test'@'localhost' IDENTIFIED BY 'mcp_test_password'; GRANT ALL PRIVILEGES ON mcp_test.* TO 'mcp_test'@'localhost'; FLUSH PRIVILEGES;
  2. Ejecutar el script de configuración de la base de datos

    # Run the database setup script pnpm run setup:test:db

    Esto creará las tablas y los datos de inicialización necesarios. El script se encuentra en scripts/setup-test-db.ts

  3. Configurar el entorno de prueba Cree un archivo .env.test en la raíz del proyecto:

    MYSQL_HOST=127.0.0.1 MYSQL_PORT=3306 MYSQL_USER=mcp_test MYSQL_PASS=mcp_test_password MYSQL_DB=mcp_test
  4. Actualizar scripts de package.json Agregue estos scripts a su package.json:

    { "scripts": { "setup:test:db": "ts-node scripts/setup-test-db.ts", "pretest": "pnpm run setup:test:db", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage" } }

Ejecución de pruebas

El proyecto incluye un conjunto de pruebas integral para garantizar la funcionalidad y la confiabilidad:

# First-time setup pnpm run setup:test:db # Run all tests pnpm test

Solución de problemas

Uso de herrería para la resolución de problemas

Si lo instaló con Smithery, puede usar sus diagnósticos integrados:

# Check the status of your MCP server smithery status @benborla29/mcp-server-mysql # Run diagnostics smithery diagnose @benborla29/mcp-server-mysql # View logs smithery logs @benborla29/mcp-server-mysql

Uso de MCP Get para la resolución de problemas

Si lo instaló con MCP Get:

# Check the status mcp-get status @benborla29/mcp-server-mysql # View logs mcp-get logs @benborla29/mcp-server-mysql

Problemas comunes

  1. Problemas de conexión

    • Verifique que el servidor MySQL esté en ejecución y sea accesible

    • Comprobar credenciales y permisos

    • Asegúrese de que la configuración de SSL/TLS sea correcta si está habilitada

    • Intente conectarse con un cliente MySQL para confirmar el acceso

  2. Problemas de rendimiento

    • Ajustar el tamaño del grupo de conexiones

    • Configurar valores de tiempo de espera de consulta

    • Habilitar el almacenamiento en caché de consultas si es necesario

    • Comprobar la configuración de la complejidad de la consulta

    • Supervisar el uso de los recursos del servidor

  3. Restricciones de seguridad

    • Revisar la configuración de limitación de velocidad

    • Comprobar la configuración de la lista blanca/lista negra de consultas

    • Verificar la configuración de SSL/TLS

    • Asegúrese de que el usuario tenga los permisos MySQL adecuados

  4. Resolución de ruta Si encuentra un error "No se pudo conectar al servidor MCP mcp-server-mysql", establezca explícitamente la ruta de todos los binarios requeridos:

{ "env": { "PATH": "/path/to/node/bin:/usr/bin:/bin" } }
  1. Problemas de autenticación

    • Para MySQL 8.0+, asegúrese de que el servidor admita el complemento de autenticación caching_sha2_password

    • Compruebe si su usuario MySQL está configurado con el método de autenticación correcto

    • Intente crear un usuario con autenticación heredada si es necesario:

      CREATE USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios a https://github.com/benborla/mcp-server-mysql

Configuración de desarrollo

  1. Clonar el repositorio

  2. Instalar dependencias: pnpm install

  3. Construya el proyecto: pnpm run build

  4. Ejecutar pruebas: pnpm test

Hoja de ruta del proyecto

Estamos trabajando activamente para mejorar este servidor MCP. Consulta nuestro CHANGELOG.md para obtener más información sobre las funciones planificadas, incluyendo:

  • Capacidades de consulta mejoradas con declaraciones preparadas

  • Funciones de seguridad avanzadas

  • Optimizaciones de rendimiento

  • Monitoreo integral

  • Información de esquema ampliada

Si desea contribuir a alguna de estas áreas, consulte los problemas en GitHub o abra uno nuevo para discutir sus ideas.

Envío de cambios

  1. Bifurcar el repositorio

  2. Crea una rama de funciones: git checkout -b feature/your-feature-name

  3. Confirme sus cambios: git commit -am 'Add some feature'

  4. Empujar a la rama: git push origin feature/your-feature-name

  5. Enviar una solicitud de extracción

Licencia

Este servidor MCP está licenciado bajo la licencia MIT. Consulte el archivo de licencia para obtener más información.

-
security - not tested
-
license - not tested
-
quality - not tested

Related MCP Servers

  • -
    security
    -
    license
    -
    quality
    A Model Context Protocol server that enables SQL query execution, database management, and business intelligence capabilities through MySQL connections.
    Last updated -
  • -
    security
    -
    license
    -
    quality
    A Model Context Protocol server that provides read-only access to MySQL databases, enabling LLMs to inspect database schemas and execute read-only queries.
    Last updated -
    15
    842
    MIT License
    • Linux
    • Apple
  • -
    security
    -
    license
    -
    quality
    A Model Context Protocol server that provides read-only access to MySQL databases, enabling LLMs to inspect database schemas and execute read-only queries.
    Last updated -
    3,401
    MIT License
  • -
    security
    -
    license
    -
    quality
    A Model Context Protocol server providing read-only access to MySQL databases, enabling LLMs to inspect database schemas and execute read-only queries.
    Last updated -
    560
    1

View all related MCP servers

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/zhaoxin34/mcp-server-mysql'

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