š MCP MySQL Server
Um servidor MCP (Model Context Protocol) robusto e profissional para interação com bancos MySQL através de agentes de IA. Este projeto demonstra implementação avançada de protocolos MCP com gerenciamento inteligente de conexões e ferramentas especializadas para anÔlise de bancos de dados.
⨠CaracterĆsticas Principais
- š Gerenciamento Inteligente de ConexƵes - Configuração dinĆ¢mica via tools MCP
- š”ļø SeguranƧa Robusta - Apenas operaƧƵes SELECT permitidas, validação de entrada com Zod
- š MĆŗltiplos Transportes - Suporte a stdio e SSE para diferentes cenĆ”rios de uso
- š Ferramentas Especializadas - AnĆ”lise de schema, foreign keys e estrutura de tabelas
- š Configuração AutomĆ”tica - Descoberta inteligente de configuraƧƵes MySQL
- š” Fallback Interativo - Solicita configuração quando necessĆ”rio
š ļø Ferramentas DisponĆveis
š§ Configuração de ConexĆ£o
mysql_configure_connection- Configuração dinâmica de conexão MySQLmysql_auto_configure_connection- Descoberta automÔtica de configuraçãomysql_get_connection_status- Status atual da conexãomysql_check_connection- Teste de conectividade
š OperaƧƵes no Banco
mysql_list_tables- Listagem de todas as tabelasmysql_get_table_info- Estrutura detalhada de tabelasmysql_execute_query- Execução de queries SELECTmysql_analyze_schema- AnÔlise completa do schemamysql_list_foreign_keys- Mapeamento de relacionamentos
š Instalação e Configuração
1. Clone e Instale
git clone https://github.com/efeabio/mcp-mysql-server.git
cd mcp-mysql-server
npm install
npm run build
2. Configure o Cursor
Adicione a seguinte configuração no seu arquivo ~/.cursor/mcp.json:
{
"mcpServers": {
"mysql": {
"command": "/caminho/para/seu/projeto/start-mcp.sh"
}
}
}
ā ļø Importante: Substitua /caminho/para/seu/projeto/ pelo caminho real onde vocĆŖ clonou o repositório.
3. Configure o start-mcp.sh
Edite o arquivo start-mcp.sh e altere o caminho para corresponder à sua instalação:
#!/bin/bash
node /caminho/para/seu/projeto/dist/index.js
4. Configuração da Conexão MySQL
O projeto oferece 3 formas de configurar a conexão MySQL:
š§ Configuração Manual via Tool (Recomendado)
Use a tool mysql_configure_connection para configurar dinamicamente:
await mysql_configure_connection({
host: "localhost",
port: 3306,
user: "root",
password: "sua_senha",
database: "seu_banco"
});
š Configuração via Arquivo
Crie um arquivo config.json na raiz do projeto:
{
"mysql": {
"host": "localhost",
"port": 3306,
"user": "root",
"password": "sua_senha",
"database": "seu_banco"
}
}
š Descoberta AutomĆ”tica
Use a tool mysql_auto_configure_connection para tentar descobrir configuração automaticamente.
šÆ Casos de Uso
š AnĆ”lise de Banco de Dados
- Auditoria de Schema - Mapeamento completo de estruturas
- AnÔlise de Relacionamentos - Identificação de foreign keys
- Documentação AutomÔtica - Geração de documentação de banco
š¤ Integração com Agentes de IA
- Consultas Inteligentes - Execução de queries via linguagem natural
- Exploração Interativa - Descoberta de dados sem conhecimento prévio
- AnƔlise AutomƔtica - Insights sobre estrutura e relacionamentos
š Desenvolvimento e DevOps
- Migração de Dados - AnÔlise de estrutura antes de migrações
- Debugging - Investigação de problemas de banco
- Monitoramento - Verificação de integridade de dados
š SeguranƧa e Boas PrĆ”ticas
- ā OperaƧƵes Somente Leitura - Apenas SELECT Ć© permitido
- ā Validação de Entrada - Schema validation com Zod
- ā Teste de ConexĆ£o - Verificação antes de aceitar configuraƧƵes
- ā Configuração via Tools - Interface segura para configuração
- ā Isolamento de ConexƵes - Gerenciamento seguro de mĆŗltiplas conexƵes
š Execução
# Modo stdio (padrão para MCP)
./start-mcp.sh
# Modo SSE para desenvolvimento
node dist/index.js sse
š Exemplos de Uso
Configuração Inicial
// Configure conexão dinamicamente
await mysql_configure_connection({
host: "localhost",
port: 3306,
user: "root",
password: "sua_senha",
database: "test"
});
// Verifique se funcionou
await mysql_check_connection();
// Explore o banco
await mysql_list_tables();
AnƔlise de Schema
// AnƔlise completa
await mysql_analyze_schema();
// Relacionamentos
await mysql_list_foreign_keys();
// Estrutura especĆfica
await mysql_get_table_info("users");
Consultas Personalizadas
// Execute queries SELECT
await mysql_execute_query("SELECT COUNT(*) as total FROM users");
// AnƔlise de dados
await mysql_execute_query("SELECT table_name, table_rows FROM information_schema.tables");
šļø Arquitetura
O projeto utiliza uma arquitetura modular com:
- MCP SDK - Implementação do protocolo Model Context Protocol
- MySQL2 - Driver nativo e performƔtico para MySQL
- TypeScript - Tipagem estƔtica e desenvolvimento robusto
- Zod - Validação de schemas e entrada de dados
- Express - Suporte opcional para transporte SSE
š§ Desenvolvimento
# Build do projeto
npm run build
# Execução em modo desenvolvimento
npm start
# Execução com SSE
npm start sse
š LicenƧa
MIT License - veja o arquivo LICENSE para detalhes.
š¤ Contribuição
Contribuições são bem-vindas! Este projeto demonstra implementação profissional de protocolos MCP e serve como referência para desenvolvimento de servidores MCP robustos.
---
Desenvolvido com ā¤ļø para demonstrar expertise em protocolos MCP, integração com MySQL e desenvolvimento de ferramentas para agentes de IA.






