MySQL Server

Um servidor para realizar operações no banco de dados MySQL.

Documentação

mcp-mysql-server

Um servidor de operação de banco de dados MySQL baseado no Model Context Protocol. Este servidor permite que modelos de IA interajam com bancos de dados MySQL por meio de uma interface padronizada.

Instalação

npx @malove86/mcp-mysql-server

Configuração

O servidor suporta dois modos de implantação:

1. Modo de execução local

Execute usando a linha de comando no arquivo de configuração de definições do MCP:

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["-y", "@malove86/mcp-mysql-server"],
      "env": {
        "MYSQL_HOST": "your_host",
        "MYSQL_USER": "your_user",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "your_database",
        "MYSQL_PORT": "3306"
      }
    }
  }
}

2. Modo de URL remota (v0.2.2+)

Aponte para um servidor MCP executado remotamente:

{
  "mcpServers": {
    "mcp-mysql-server": {
      "url": "http://your-server-address:port/mcp-mysql-server"
    }
  }
}

No servidor remoto, você precisa definir as variáveis de ambiente antes de iniciar o servidor MCP:

# 设置环境变量
export MYSQL_HOST=your_host
export MYSQL_USER=your_user
export MYSQL_PASSWORD=your_password
export MYSQL_DATABASE=your_database
export MYSQL_PORT=3306  # 可选,默认为3306

# 启动服务器
npx @malove86/mcp-mysql-server

Nota: MYSQL_PORT é opcional, com valor padrão de 3306.

Recursos por versão

Novos recursos do v0.2.4+

  • Suporte a concorrência multiusuário: O servidor agora pode processar solicitações de vários usuários simultaneamente
  • Gerenciamento eficiente de pool de conexões: Usa um pool de conexões aprimorado, com suporte a até 50 conexões simultâneas
  • Isolamento em nível de solicitação: Cada solicitação possui um identificador exclusivo, facilitando o rastreamento e a depuração
  • Registro detalhado de logs: Registra o processo de execução e o uso de recursos de cada solicitação
  • Tratamento de erros aprimorado: Captura e relata erros de banco de dados com mais precisão
  • Otimização de desempenho: A reutilização do pool de conexões e o gerenciamento otimizado de conexões aumentam a velocidade de processamento

Recursos do v0.2.2+

  • Conexão automática com o banco de dados: Ao iniciar o servidor, se as variáveis de ambiente estiverem definidas, ele tentará conectar-se automaticamente ao banco de dados
  • Sem necessidade de parâmetros do cliente: Ao usar o modo de URL, o cliente não precisa fornecer informações de conexão com o banco de dados
  • Operações de banco de dados transparentes: Você pode usar diretamente ferramentas como list_tables, query, sem precisar chamar connect_db primeiro
  • Mais seguro: Credenciais sensíveis do banco de dados existem apenas no lado do servidor, não sendo expostas nas conversas do cliente
  • Tolerância a falhas elegante: Mesmo se a conexão inicial falhar, as operações subsequentes tentarão reconectar automaticamente

Ferramentas disponíveis

1. connect_db

Estabelece uma conexão com o banco de dados MySQL usando as credenciais fornecidas. Esta ferramenta é opcional se a conexão já tiver sido configurada por meio de variáveis de ambiente.

{
  "host": "localhost",
  "user": "root",
  "password": "your_password",
  "database": "your_database",
  "port": 3306  // 可选,默认为3306
}

2. query

Executa consultas SELECT, com suporte a parâmetros opcionais de instruções preparadas.

{
  "sql": "SELECT * FROM users WHERE id = ?",
  "params": [1]  // 可选参数
}

3. list_tables

Lista todas as tabelas no banco de dados conectado.

{}  // 从v0.2.4开始不再需要任何参数

4. describe_table

Obtém a estrutura de uma tabela específica.

{
  "table": "users"
}

Características

  • Tratamento seguro de conexões, com limpeza automática
  • Suporte a parâmetros de instruções preparadas
  • Tratamento e validação abrangentes de erros
  • Suporte a TypeScript
  • Gerenciamento automático de conexões
  • Configuração por variáveis de ambiente do servidor
  • Suporte ao modo de conexão remota por URL
  • Suporte a concorrência multiusuário
  • Pool de conexões de alto desempenho

Desempenho

  • Suporta até 50 conexões simultâneas (configurável)
  • Gerenciamento automático do pool de conexões, melhorando a utilização de recursos
  • Rastreamento detalhado de solicitações e monitoramento de desempenho

Segurança

  • Usa instruções preparadas para prevenir injeção de SQL
  • Suporte ao tratamento seguro de senhas por meio de variáveis de ambiente
  • Valida consultas antes da execução
  • Fecha conexões automaticamente após a conclusão
  • No modo de URL, credenciais sensíveis não são expostas ao cliente
  • Isolamento de conexões, prevenindo vazamento de dados entre usuários

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request para https://github.com/Malove86/mcp-mysql-server.git

Licença

MIT