Skip to main content
Glama
mysql-mcp-server

mysql-mcp-server

by lrferr

🚀 MySQL Node MCP Server

npm version Downloads GitHub stars License: MIT

Um servidor MCP (Model Context Protocol) para monitoramento e interação com MySQL Database, desenvolvido em Node.js com suporte a múltiplas conexões simultâneas.

✨ Funcionalidades Principais

  • 🔗 Múltiplas Conexões - Conecte-se a vários bancos MySQL simultaneamente

  • 📊 Monitoramento - Saúde do banco, performance e métricas em tempo real

  • 🛡️ Segurança - Validação de scripts de migração e operações seguras

  • ⚡ Performance - Pool de conexões otimizado para cada ambiente

  • 🔧 Administração - DDL, DML e DCL operations completas

  • 📱 Integração - Compatível com Cursor IDE e Claude Desktop

Related MCP server: MySQL MCP Server Pro

🚀 Início Rápido

1. Instalação

npm install -g mysql-mcp-server-v1

2. Configuração MCP (Cursor/Claude Desktop)

Adicione a seguinte configuração ao seu arquivo mcp.json:

{
  "mcpServers": {
    "mysql-monitor": {
      "command": "npx",
      "args": ["mysql-mcp-server-v1@latest"],
      "env": {
        "MCP_SERVER_NAME": "mysql-monitor",
        "MCP_SERVER_VERSION": "1.0.0",
        "LOG_LEVEL": "info",
        "MYSQL_CONNECTIONS": "{\"connections\":{\"prod\":{\"host\":\"localhost\",\"port\":3306,\"user\":\"seu_usuario\",\"password\":\"sua_senha\",\"database\":\"seu_banco\",\"description\":\"Production Database\"}},\"defaultConnection\":\"prod\"}"
      }
    }
  }
}

Para múltiplas conexões:

{
  "mcpServers": {
    "mysql-monitor": {
      "command": "npx",
      "args": ["mysql-mcp-server-v1@latest"],
      "env": {
        "MCP_SERVER_NAME": "mysql-monitor",
        "MCP_SERVER_VERSION": "1.0.0",
        "LOG_LEVEL": "info",
        "MYSQL_CONNECTIONS": "{\"connections\":{\"hml\":{\"host\":\"servidor_hml\",\"port\":3306,\"user\":\"usuario_hml\",\"password\":\"senha_hml\",\"database\":\"hml_db\",\"description\":\"Homologação Database\"},\"prod\":{\"host\":\"servidor_prod\",\"port\":3306,\"user\":\"usuario_prod\",\"password\":\"senha_prod\",\"database\":\"prod_db\",\"description\":\"Production Database\"}},\"defaultConnection\":\"prod\"}"
      }
    }
  }
}

3. Configuração Automática (Opcional)

# Configurar Cursor IDE automaticamente
npx mysql-mcp-server-v1 setup-cursor

# Diagnosticar problemas de conectividade
npx mysql-mcp-server-v1 diagnose

# Testar conexão MySQL
npx mysql-mcp-server-v1 test-connection

🛠️ Ferramentas Disponíveis

🔗 Múltiplas Conexões

  • list_connections - Lista todas as conexões

  • test_connection - Testa conexão específica

  • test_all_connections - Testa todas as conexões

  • get_connections_status - Status das conexões ativas

📊 Monitoramento

  • check_database_health - Verifica saúde do banco

  • monitor_schema_changes - Monitora mudanças em esquemas

  • check_sensitive_tables - Verifica tabelas sensíveis

  • detect_suspicious_activity - Detecta atividades suspeitas

🔧 Administração

  • DDL: create_table, alter_table, drop_table

  • DML: select_data, insert_data, update_data, delete_data

  • DCL: create_user, grant_privileges, revoke_privileges

🔍 Análise

  • get_table_info - Informações detalhadas da tabela

  • get_constraints - Lista constraints

  • get_foreign_keys - Lista chaves estrangeiras

  • get_indexes - Lista índices

  • analyze_table - Analisa tabela e gera estatísticas

📋 Pré-requisitos

  • Node.js 18.0.0 ou superior

  • MySQL 5.7 ou superior / MariaDB 10.3 ou superior

  • Acesso ao banco com privilégios adequados

🤝 Contribuição

Contribuições são bem-vindas! Consulte o arquivo CONTRIBUTING.md para mais detalhes.

📄 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

🆘 Suporte

Para suporte e dúvidas:

  1. Consulte a documentação completa

  2. Abra uma issue no GitHub

  3. Verifique os logs para erros específicos


Desenvolvido com ❤️ por Leandro Ferreira

Available Tools

39 tools
analyze_indexesC

Analisa todos os índices do banco de dados

Inputs: tableName, schemaName, connectionName.

analyze_tableC

Analisa uma tabela e gera estatísticas

Inputs: tableName (required), connectionName (required), databaseName.

apply_retention_policyC

Aplica políticas de retenção de dados

Inputs: policies (required), dryRun, connectionName.

archive_old_dataC

Arquiva dados antigos para schema de arquivo

Inputs: condition (required), tableName (required), schemaName (required), batchSize, +3 more.

audit_user_accessC

Audita o acesso de usuários ao banco

Inputs: host, username, timeRange, connectionName, +1 more.

change_passwordC

Altera a senha de um usuário

Inputs: username (required), newPassword (required), host, connectionName.

check_database_healthC

Verifica a saúde geral do banco de dados

Inputs: connectionName, includePerformance.

check_password_policyC

Verifica a política de senhas do sistema

Inputs: connectionName.

check_sensitive_tablesC

Verifica tabelas sensíveis no banco de dados

Inputs: connectionName (required).

compress_tableC

Comprime uma tabela para economizar espaço

Inputs: tableName (required), schemaName (required), connectionName.

create_backupC

Cria um backup do banco de dados

Inputs: database (required), compress, backupPath, includeData, +2 more.

create_partitionD

Cria partições em uma tabela

Inputs: tableName (required), partitions (required), schemaName (required), partitionColumn (required), +2 more.

create_schemaC

Cria um novo schema no banco de dados

Inputs: schemaName (required), charset, collate, ifNotExists, +1 more.

create_userC

Cria um novo usuário no banco de dados

Inputs: password (required), username (required), host, ifNotExists, +1 more.

detect_suspicious_activityC

Detecta atividades suspeitas no banco de dados

Inputs: connectionName (required).

drop_partitionC

Remove uma partição de uma tabela

Inputs: tableName (required), schemaName (required), partitionName (required), connectionName.

drop_schemaC

Remove um schema do banco de dados

Inputs: schemaName (required), cascade, ifExists, connectionName.

drop_userC

Remove um usuário do banco de dados

Inputs: username (required), host, ifExists, connectionName.

get_connections_statusB

Obtém o status de todas as conexões ativas

Inputs: no named parameters.

get_constraintsC

Lista todas as constraints de uma tabela

Inputs: tableName (required), connectionName (required), databaseName.

get_foreign_keysB

Lista todas as chaves estrangeiras de uma tabela

Inputs: tableName (required), connectionName (required), databaseName.

get_indexesC

Lista todos os índices de uma tabela

Inputs: tableName (required), connectionName (required), databaseName.

get_table_infoC

Obtém informações detalhadas sobre uma tabela

Inputs: tableName (required), connectionName (required), databaseName.

get_table_structureC

Obtém a estrutura completa de uma tabela

Inputs: tableName (required), schemaName (required), connectionName, includeIndexes, +1 more.

grant_privilegesC

Concede privilégios a um usuário

Inputs: username (required), privileges (required), host, table, +3 more.

list_backupsC

Lista todos os backups disponíveis

Inputs: days, database, backupPath.

list_connectionsB

Lista todas as conexões configuradas

Inputs: no named parameters.

list_privilegesC

Lista todos os privilégios do sistema

Inputs: table, database, connectionName.

list_routinesC

Lista procedures e functions

Inputs: schemaName, routineType, connectionName.

list_schemasC

Lista todos os schemas disponíveis

Inputs: includeSystem, connectionName.

list_tablesC

Lista todas as tabelas e views

Inputs: schemaName, includeViews, connectionName.

list_usersC

Lista todos os usuários do sistema

Inputs: includeSystem, connectionName.

list_viewsC

Lista todas as views disponíveis

Inputs: schemaName, connectionName.

monitor_schema_changesC

Monitora mudanças no esquema do banco de dados

Inputs: connectionName (required), databases.

restore_backupC

Restaura um backup do banco de dados

Inputs: database (required), backupFile (required), connectionName.

revoke_privilegesC

Revoga privilégios de um usuário

Inputs: username (required), privileges (required), host, table, +2 more.

show_grantsC

Mostra os privilégios de um usuário

Inputs: username (required), host, connectionName.

test_all_connectionsB

Testa todas as conexões configuradas

Inputs: no named parameters.

test_connectionB

Testa uma conexão específica com o banco MySQL

Inputs: connectionName (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.7/5.0

    Scored across 39 tools

    Disambiguation3/5

    Most tools target distinct resources, but several pairs overlap confusingly: get_table_info vs get_table_structure, list_tables (which claims to include views) vs list_views, and get_indexes vs analyze_indexes. Descriptions partially disambiguate but an agent could still easily misselect among the table-info cluster.

    Naming Consistency5/5

    Every tool follows a clean snake_case verb_noun pattern (create_user, drop_schema, list_backups, grant_privileges). The convention is applied uniformly with no camelCase or stylistic deviations.

    Tool Count3/5

    39 tools is heavy for a single server and pushes into the over-large range. The breadth (users, connections, schemas, monitoring, backups, maintenance) partly justifies it, but several single-purpose tools could be consolidated.

    Completeness3/5

    Strong coverage of administration/introspection (user lifecycle, schema CRUD, backups, maintenance, monitoring), but there is no tool to actually query, read, insert, or modify table data, and no table create/drop — a notable gap for a MySQL server.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Provides comprehensive MySQL database operations including CRUD, performance optimization, health analysis, and anomaly detection. Supports multiple connection modes, OAuth2.0 authentication, and role-based permissions for database management through natural language.
      9
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables natural language database operations on MySQL databases with AI integration, supporting CRUD operations, schema inspection, and audit logging with built-in security features including SQL injection protection and permission controls.
      896 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables interaction with MySQL databases (including AWS RDS and cloud instances) through natural language, supporting query execution, schema inspection, index management, and comprehensive database operations with secure SSL connections.
      8
      2 npm
      MIT