MySQL MCP Server (Optimized)
Servidor MCP MySQL Otimizado
Servidor MCP (Model Context Protocol) para MySQL com arquitetura limpa e princípios SOLID.
🆕 Melhorias na v1.1.0
✨ Arquitetura Otimizada
Separação de Responsabilidades: Classes especializadas para cada função
SOLID Principles: Código mais maintível e extensível
Clean Architecture: Estrutura modular e testável
🔒 Segurança Aprimorada
Validação de Queries: Proteção contra operações perigosas
Sanitização: Nomes de tabelas validados
SQL Injection Protection: Parâmetros seguros
🚀 Performance e Confiabilidade
Conexão Reutilizada: Gerenciamento eficiente de recursos
Tratamento de Erros: Mensagens consistentes e informativas
Shutdown Gracioso: Encerramento controlado de conexões
🏗️ Arquitetura
MySQLMCPServer
├── DatabaseConfig (Configurações)
├── DatabaseConnection (Conexão MySQL)
├── QueryValidator (Validação e Segurança)
├── ResponseFormatter (Formatação)
├── ToolsHandler (Ferramentas)
├── ResourcesHandler (Recursos)
└── PromptsHandler (Templates)🎯 Conceitos MCP Implementados
1. Tools (Ferramentas)
execute_query: Executa queries SQL com validaçãodescribe_table: Descreve estrutura de tabelas
2. Resources (Recursos)
mysql://databases: Lista de bancos disponíveismysql://tables: Tabelas do banco atualmysql://schema: Schema completo
3. Prompts (Templates)
analyze_table: Análise detalhada de tabelafind_large_tables: Tabelas com mais registrosdatabase_overview: Visão geral do banco
🚀 Instalação e Uso
1. Instalar Dependências
npm install2. Configurar MySQL
Crie um arquivo .env:
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=sua_senha
MYSQL_DATABASE=seu_banco3. Compilar e Executar
# Compilar
npm run build
# Executar
npm start
# Desenvolvimento
npm run dev4. Testar Conexão
npm run test:connection🔧 Configuração Claude Desktop
Adicione ao 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"
}
}
}
}🛡️ Segurança
Validações Implementadas:
✅ Bloqueio de
DROP DATABASE/TABLE✅ Proteção contra
DELETE ... WHERE 1=1✅ Sanitização de nomes de tabelas
✅ Validação de queries vazias
✅ Tratamento seguro de parâmetros
Práticas de Segurança:
🔒 Conexões controladas
🔒 Logs de erro seguros
🔒 Isolamento de responsabilidades
🔒 Validação de entrada
📊 Exemplo 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"
}
}🔍 Debug e Logs
O servidor fornece logs informativos:
✅ Conexão estabelecida
🔄 Queries executadas
❌ Erros com detalhes
🔚 Shutdown gracioso
📈 Roadmap
Cache de resultados
Métricas de performance
Pool de conexões
Suporte a transações
Interface web de monitoramento
🤝 Contribuição
Fork o projeto
Crie uma branch (
git checkout -b feature/nova-funcionalidade)Commit suas mudanças (
git commit -m 'Adiciona nova funcionalidade')Push para a branch (
git push origin feature/nova-funcionalidade)Abra um Pull Request
📝 Changelog
v1.1.0 (2025-01-XX)
✨ Arquitetura otimizada com SOLID
🔒 Validação e segurança aprimoradas
🚀 Performance melhorada
📚 Documentação expandida
v1.0.0 (2025-01-XX)
🎉 Versão inicial
🔧 Implementação básica MCP
🗄️ Suporte MySQL completo
📄 Licença
MIT License - veja o arquivo LICENSE para detalhes.
Criado com ❤️ para demonstrar o protocolo MCP da Anthropic
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/fabiovige/mcp-mysql-simple'
If you have feedback or need assistance with the MCP directory API, please join our Discord server