MySQL MCP
Un servicio MCP seguro para acceder y gestionar bases de datos MySQL, con seguridad multicapa y agrupación de conexiones de alto rendimiento.
Documentación
Servicio MCP de base de datos MySQL
Este es un servicio MCP (Model Context Protocol) de base de datos MySQL diseñado específicamente para Cursor, que proporciona consulta de estructura de tablas, generación de documentación y funciones de consulta de datos.
Características
- Integración específica para Cursor: Servicio de base de datos diseñado específicamente para el protocolo MCP de Cursor
- Múltiples modos de seguridad: Admite tres niveles de seguridad: solo lectura, escritura limitada y acceso completo
- Consulta de estructura de tablas: Obtiene información detallada de la estructura de las tablas de la base de datos
- Generación de documentación: Genera documentación de estructura de tablas en formato Markdown, JSON y SQL
- Resumen de la base de datos: Genera un documento de resumen de toda la base de datos
- Ejecución de consultas SQL: Ejecuta operaciones SQL de diferentes niveles según el modo de seguridad
- Caché de consultas: Almacena automáticamente en caché los resultados de las consultas para mejorar el rendimiento
Modos de seguridad
1. Modo de solo lectura (readonly) - Modo predeterminado
- Solo permite operaciones de consulta como SELECT, SHOW, DESCRIBE, EXPLAIN
- Prohíbe todas las operaciones de escritura y peligrosas
- Adecuado para análisis de datos y consultas de informes
2. Modo de escritura limitada (limited_write)
- Permite operaciones SELECT, INSERT, UPDATE
- Prohíbe operaciones peligrosas como DELETE, DROP, CREATE, ALTER
- Adecuado para escenarios que requieren entrada de datos pero necesitan proteger la estructura
3. Modo de acceso completo (full_access)
- Permite todas las operaciones SQL
- Úsese con precaución, actívelo solo en entornos de total confianza
- Adecuado para administración y mantenimiento de bases de datos
Instalación y configuración
1. Instalación local de dependencias
cd mysql-mcp
pip install -r requirements.txt
2. Configuración en Cursor
En la configuración de Cursor, busque la configuración de MCP y agregue lo siguiente:
{
"mcpServers": {
"mysql-mcp": {
"command": "python",
"args": ["F:/path/to/mysql-mcp/main.py"],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USERNAME": "your_username",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database",
"MYSQL_SECURITY_MODE": "readonly",
"MYSQL_ALLOWED_SCHEMAS": "*",
"MYSQL_ENABLE_QUERY_LOG": "false"
}
}
}
}
3. Descripción de las variables de entorno
Variables de entorno obligatorias:
MYSQL_HOST: Dirección del host de la base de datosMYSQL_PORT: Puerto de la base de datosMYSQL_USERNAME: Nombre de usuario de la base de datosMYSQL_PASSWORD: Contraseña de la base de datosMYSQL_DATABASE: Nombre de la base de datos
Variables de entorno opcionales:
MYSQL_SECURITY_MODE: Modo de seguridad (readonly/limited_write/full_access, predeterminado: readonly)MYSQL_ALLOWED_SCHEMAS: Lista de bases de datos a las que se permite acceder, admite tres formas de configuración:"*": Permite acceder a todas las bases de datos con permisos (recomendado)"auto": Descubre automáticamente las bases de datos con permisos"db1,db2,db3": Especifica explícitamente la lista de bases de datos (separadas por comas)
MYSQL_CONNECT_TIMEOUT: Tiempo de espera de conexión (segundos, predeterminado: 30)MYSQL_QUERY_TIMEOUT: Tiempo de espera de consulta (segundos, predeterminado: 60)MYSQL_MAX_RETRIES: Número máximo de reintentos (predeterminado: 3)MYSQL_ENABLE_QUERY_LOG: Si se habilita el registro de consultas (true/false, predeterminado: false)MYSQL_MAX_RESULT_ROWS: Número máximo de filas devueltas (predeterminado: 1000)
Ejemplos de uso
Obtener información de seguridad
Ingrese en Cursor:
@mysql-mcp 获取当前安全配置信息
Ver bases de datos accesibles
@mysql-mcp 获取所有可访问的数据库
Consultar lista de tablas
@mysql-mcp 列出 mydb 数据库中的所有表
Ver estructura de tablas
@mysql-mcp 描述 users 表的结构
Ejecutar consulta (modo de solo lectura)
@mysql-mcp 查询用户表前10条记录
Generar documentación de tabla
@mysql-mcp 为users表生成Markdown文档
Generar resumen de la base de datos
@mysql-mcp 生成mydb数据库的概览文档
Herramientas disponibles
| Nombre de la herramienta | Descripción de la función | Parámetros principales |
|---|---|---|
test_connection | Prueba la conexión a la base de datos | - |
get_security_info | Obtiene información de configuración de seguridad | - |
list_tables | Obtiene la lista de tablas de la base de datos | database (opcional) |
describe_table | Obtiene la estructura detallada de la tabla | table_name, database (opcional) |
generate_table_doc | Genera documentación de tabla | table_name, format, database (opcional) |
generate_database_overview | Genera resumen de la base de datos | database (opcional) |
execute_query | Ejecuta sentencias SQL | sql |
list_schemas | Obtiene la lista de bases de datos disponibles | - |
Notas sobre la generación de documentación
La función de generación de documentación guarda los documentos generados como archivos reales:
- Ubicación de guardado: Carpeta
docs/en el directorio mysql-mcp - Nombres de archivo: Formato
{database}_{table_name}_{timestamp}.{ext} - Formatos admitidos: Markdown (.md), JSON (.json), SQL (.sql)
Salida de ejemplo:
✅ 文档生成成功!
📁 保存路径: docs/mydb_users_20250110_142000.md
📂 MCP服务目录: F:/path/to/mysql-mcp
📊 表名: mydb.users
📝 格式: markdown
⏰ 生成时间: 2025-01-10 14:20:00
Gestión de caché
Este servicio proporciona una función de caché de consultas que almacena automáticamente los resultados de las consultas de solo lectura:
# 获取缓存统计信息
@mysql-mcp 获取查询缓存统计信息
# 清空缓存
@mysql-mcp 清空查询缓存
Consideraciones de seguridad
- En entornos de producción se recomienda usar el modo
readonly - En entornos sensibles evite usar el modo
full_access - Seguridad de contraseñas: Evite usar contraseñas débiles en la configuración
- Seguridad de red: Asegúrese de que la conexión a la base de datos use un canal de red seguro
- Mínimos privilegios: El usuario de la base de datos solo debe tener los privilegios mínimos necesarios
Manejo de errores
- Error de configuración: Verifique la configuración de las variables de entorno en la configuración de MCP de Cursor
- Fallo de conexión: Verifique los parámetros de conexión de la base de datos y la conectividad de red
- Permisos insuficientes: Verifique los permisos del usuario de la base de datos y la configuración del modo de seguridad
- SQL rechazado: El modo de seguridad actual no permite ejecutar este tipo de operación SQL
Arquitectura técnica
Módulos principales
main.py: Programa principal del servicio MCPconfig.py: Módulo de configuración de variables de entornodatabase.py: Módulo de operaciones de base de datos y control de seguridaddocument_generator.py: Módulo de generación de documentación
Control de seguridad
- Validación de modos de seguridad de múltiples niveles
- Verificación del tipo de sentencias SQL
- Control de permisos de acceso a la base de datos
- Límite de filas en los resultados de consultas
- Mecanismo de tiempo de espera de conexión y reintentos
Adaptación de MySQL
- Usa el controlador mysql-connector-python para la conexión
- Adapta la sintaxis de consulta de las tablas del sistema de MySQL
- Admite el reconocimiento de tipos de restricciones de MySQL
- Adapta el mapeo de tipos de datos de MySQL
Licencia
Este proyecto se publica como código abierto bajo la licencia MIT.
- ✅ Uso libre: Permite que cualquier persona use, copie y modifique este software de forma gratuita
- ✅ Apto para uso comercial: Admite uso y distribución comercial
- ✅ Libertad de modificación: Puede modificar el código fuente y publicar obras derivadas
- ✅ Restricciones mínimas: Solo requiere conservar el aviso de copyright
Versión: 1.0.0
Fecha de actualización: 2025-01-10
Objetivo de diseño: Optimizado específicamente para la integración de bases de datos MySQL y Cursor MCP