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 chamarconnect_dbprimeiro - 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