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 datos
  • MYSQL_PORT: Puerto de la base de datos
  • MYSQL_USERNAME: Nombre de usuario de la base de datos
  • MYSQL_PASSWORD: Contraseña de la base de datos
  • MYSQL_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 herramientaDescripción de la funciónParámetros principales
test_connectionPrueba la conexión a la base de datos-
get_security_infoObtiene información de configuración de seguridad-
list_tablesObtiene la lista de tablas de la base de datosdatabase (opcional)
describe_tableObtiene la estructura detallada de la tablatable_name, database (opcional)
generate_table_docGenera documentación de tablatable_name, format, database (opcional)
generate_database_overviewGenera resumen de la base de datosdatabase (opcional)
execute_queryEjecuta sentencias SQLsql
list_schemasObtiene 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

  1. En entornos de producción se recomienda usar el modo readonly
  2. En entornos sensibles evite usar el modo full_access
  3. Seguridad de contraseñas: Evite usar contraseñas débiles en la configuración
  4. Seguridad de red: Asegúrese de que la conexión a la base de datos use un canal de red seguro
  5. 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 MCP
  • config.py: Módulo de configuración de variables de entorno
  • database.py: Módulo de operaciones de base de datos y control de seguridad
  • document_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