Simple MySQL MCP Server
Un servidor MCP simple para MySQL, que demuestra conceptos fundamentales del protocolo MCP. Requiere una conexión a una base de datos MySQL configurada mediante variables de entorno.
GitHubPrueba este MCPPatrocinado
Documentación
Servidor MCP MySQL Optimizado
Servidor MCP (Model Context Protocol) para MySQL con arquitectura limpia y principios SOLID.
🆕 Mejoras en la v1.1.0
✨ Arquitectura Optimizada
- Separación de Responsabilidades: Clases especializadas para cada función
- Principios SOLID: Código más mantenible y extensible
- Arquitectura Limpia: Estructura modular y testeable
🔒 Seguridad Mejorada
- Validación de Consultas: Protección contra operaciones peligrosas
- Sanitización: Nombres de tablas validados
- Protección contra Inyección SQL: Parámetros seguros
🚀 Rendimiento y Fiabilidad
- Conexión Reutilizada: Gestión eficiente de recursos
- Manejo de Errores: Mensajes consistentes e informativos
- Apagado Controlado: Cierre controlado de conexiones
🏗️ Arquitectura
MySQLMCPServer
├── DatabaseConfig (Configurações)
├── DatabaseConnection (Conexão MySQL)
├── QueryValidator (Validação e Segurança)
├── ResponseFormatter (Formatação)
├── ToolsHandler (Ferramentas)
├── ResourcesHandler (Recursos)
└── PromptsHandler (Templates)
🎯 Conceptos MCP Implementados
1. Tools (Herramientas)
execute_query: Ejecuta consultas SQL con validacióndescribe_table: Describe la estructura de tablas
2. Resources (Recursos)
mysql://databases: Lista de bases de datos disponiblesmysql://tables: Tablas de la base de datos actualmysql://schema: Esquema completo
3. Prompts (Plantillas)
analyze_table: Análisis detallado de tablafind_large_tables: Tablas con más registrosdatabase_overview: Vista general de la base de datos
🚀 Instalación y Uso
1. Instalar Dependencias
npm install
2. Configurar MySQL
Crea un archivo .env:
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=sua_senha
MYSQL_DATABASE=seu_banco
3. Compilar y Ejecutar
# Compilar
npm run build
# Executar
npm start
# Desenvolvimento
npm run dev
4. Probar Conexión
npm run test:connection
🔧 Configuración de Claude Desktop
Añade a claude_desktop_config.json:
{
"mcpServers": {
"mysql-optimized": {
"command": "node",
"args": ["/caminho/para/dist/index.js"],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "sua_senha",
"MYSQL_DATABASE": "seu_banco"
}
}
}
}
🛡️ Seguridad
Validaciones Implementadas:
- ✅ Bloqueo de
DROP DATABASE/TABLE - ✅ Protección contra
DELETE ... WHERE 1=1 - ✅ Sanitización de nombres de tablas
- ✅ Validación de consultas vacías
- ✅ Manejo seguro de parámetros
Prácticas de Seguridad:
- 🔒 Conexiones controladas
- 🔒 Registros de errores seguros
- 🔒 Aislamiento de responsabilidades
- 🔒 Validación de entrada
📊 Ejemplo de Uso
// Executar query segura
{
"name": "execute_query",
"arguments": {
"query": "SELECT * FROM usuarios LIMIT 5",
"database": "meu_banco"
}
}
// Analisar tabela
{
"name": "describe_table",
"arguments": {
"table_name": "usuarios"
}
}
🔍 Depuración y Registros
El servidor proporciona registros informativos:
- ✅ Conexión establecida
- 🔄 Consultas ejecutadas
- ❌ Errores con detalles
- 🔚 Apagado controlado
📈 Hoja de Ruta
- Caché de resultados
- Métricas de rendimiento
- Pool de conexiones
- Soporte para transacciones
- Interfaz web de monitoreo
🤝 Contribución
- Haz un fork del proyecto
- Crea una rama (
git checkout -b feature/nova-funcionalidade) - Haz commit de tus cambios (
git commit -m 'Adiciona nova funcionalidade') - Haz push a la rama (
git push origin feature/nova-funcionalidade) - Abre un Pull Request
📝 Registro de Cambios
v1.1.0 (2025-01-XX)
- ✨ Arquitectura optimizada con SOLID
- 🔒 Validación y seguridad mejoradas
- 🚀 Rendimiento mejorado
- 📚 Documentación ampliada
v1.0.0 (2025-01-XX)
- 🎉 Versión inicial
- 🔧 Implementación básica de MCP
- 🗄️ Soporte completo de MySQL
📄 Licencia
Licencia MIT: consulta el archivo LICENSE para más detalles.
Creado con ❤️ para demostrar el protocolo MCP de Anthropic