remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Provides read-only access to MySQL databases, allowing inspection of database schemas and execution of read-only SQL queries with features like prepared statements, connection pooling, and comprehensive table schema information.
Servidor MCP para MySQL basado en NodeJS
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 :
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 :
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:
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:
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):
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:
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 MySQLMYSQL_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:
- Crear una base de datos de prueba y un usuarioCopy
- Ejecutar el script de configuración de la base de datosEsto creará las tablas y los datos de inicialización necesarios. El script se encuentra enCopy
scripts/setup-test-db.ts
- Configurar el entorno de prueba Cree un archivo
.env.test
en la raíz del proyecto:Copy - Actualizar scripts de package.json Agregue estos scripts a su package.json:Copy
Ejecución de pruebas
El proyecto incluye un conjunto de pruebas integral para garantizar la funcionalidad y la confiabilidad:
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:
Uso de MCP Get para la resolución de problemas
Si lo instaló con MCP Get:
Problemas comunes
- 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
- 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
- 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
- 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:
- 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:Copy
- Para MySQL 8.0+, asegúrese de que el servidor admita el complemento de autenticación
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
- Clonar el repositorio
- Instalar dependencias:
pnpm install
- Construya el proyecto:
pnpm run build
- 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
- Bifurcar el repositorio
- Crea una rama de funciones:
git checkout -b feature/your-feature-name
- Confirme sus cambios:
git commit -am 'Add some feature'
- Empujar a la rama:
git push origin feature/your-feature-name
- 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.
This server cannot be installed
Un servidor de protocolo de contexto de modelo que proporciona acceso de solo lectura a bases de datos MySQL, lo que permite a los LLM inspeccionar esquemas de bases de datos y ejecutar consultas de solo lectura.