MySQL MCP Server
Um servidor MySQL que se conecta a um banco de dados usando variáveis de ambiente para configuração.
Documentação
Servidor MCP MySQL
Este projeto é um servidor que interage com bancos de dados MySQL usando o Model Context Protocol (MCP) da Smithery.
Instalação
Instalando via Smithery
Para instalar o MySQL Server para Claude Desktop automaticamente via Smithery:
npx -y @smithery/cli install @aqaranewbiz/mysql-aqaranewbiz --client claude
Instalação Manual
npx @aqaranewbiz/mysql-aqaranewbiz
Configuração
O servidor requer as seguintes variáveis de ambiente para serem definidas no seu arquivo de configuração de configurações MCP:
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["-y", "@aqaranewbiz/mysql-aqaranewbiz"],
"env": {
"MYSQL_HOST": "your_host",
"MYSQL_USER": "your_user",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
}
}
}
Ferramentas Disponíveis
1. connect_db
Estabelece conexão com o banco de dados MySQL usando as credenciais fornecidas.
use_mcp_tool({
server_name: "mysql",
tool_name: "connect_db",
arguments: {
host: "localhost",
user: "your_user",
password: "your_password",
database: "your_database"
}
});
2. query
Executa consultas SELECT com parâmetros opcionais de declaração preparada.
use_mcp_tool({
server_name: "mysql",
tool_name: "query",
arguments: {
sql: "SELECT * FROM users WHERE id = ?",
params: [1]
}
});
3. execute
Executa consultas INSERT, UPDATE ou DELETE com parâmetros opcionais de declaração preparada.
use_mcp_tool({
server_name: "mysql",
tool_name: "execute",
arguments: {
sql: "INSERT INTO users (name, email) VALUES (?, ?)",
params: ["John Doe", "john@example.com"]
}
});
4. list_tables
Lista todas as tabelas no banco de dados conectado.
use_mcp_tool({
server_name: "mysql",
tool_name: "list_tables",
arguments: {}
});
5. describe_table
Obtém a estrutura de uma tabela específica.
use_mcp_tool({
server_name: "mysql",
tool_name: "describe_table",
arguments: {
table: "users"
}
});
Principais Recursos
- Conexão com banco de dados MySQL e execução de consultas
- API padronizada fornecida através do protocolo MCP
- Endpoints de API RESTful baseados em FastAPI
- Gerenciamento de configuração através de variáveis de ambiente
Começando
Requisitos Essenciais
- Python 3.11 ou superior
- Servidor MySQL
- Docker (opcional)
Configuração de Ambiente
- Crie o arquivo
.env:
MYSQL_HOST=your_mysql_host
MYSQL_USER=your_mysql_user
MYSQL_PASSWORD=your_mysql_password
MYSQL_DATABASE=your_database_name
Métodos de Instalação
Instalação Local (Recomendado)
- Crie e ative o ambiente virtual Python:
# Windows
python -m venv venv
venv\Scripts\activate
# macOS/Linux
python3 -m venv venv
source venv/bin/activate
- Instale as dependências:
pip install -r requirements.txt
- Execute o servidor:
python mcp_server.py
Instalação Docker
- Construa a imagem Docker:
docker build -t mysql-mcp-server .
- Execute o contêiner:
docker run -e MYSQL_HOST=host -e MYSQL_USER=user -e MYSQL_PASSWORD=pass -e MYSQL_DATABASE=db mysql-mcp-server
Configuração de Desenvolvimento Local
- Configure o ambiente de desenvolvimento:
# 개발용 의존성 설치
pip install -r requirements-dev.txt # 필요한 경우 생성
# 코드 포맷팅 및 린팅 설정
pip install black flake8
- Execute o código:
# 개발 모드로 실행
python mcp_server.py --dev
- Execute os testes:
# 테스트 실행
python -m pytest tests/
Endpoints da API
Consulta de Informações do Servidor
GET /status
Retorna o status do servidor e a lista de ferramentas disponíveis.
Execução de Consultas
POST /execute
Executa consultas MySQL e retorna os resultados.
Guia de Desenvolvimento
Estrutura do Projeto
@MCP-Server-for-Smithery/
├── mcp_server.py # 메인 서버 코드
├── requirements.txt # Python 의존성
├── Dockerfile # Docker 설정
├── .env # 환경 변수 (템플릿)
└── tests/ # 테스트 코드
Adicionando Novos Recursos
- Adicione uma nova ferramenta em
mcp_server.py - Adicione as dependências necessárias em
requirements.txt - Escreva o código de teste
- Reconstrua a imagem Docker (ao usar Docker)
Solução de Problemas
Problemas Comuns
-
Erros de conexão:
- Verifique se o servidor MySQL está em execução
- Verifique se as variáveis de ambiente estão configuradas corretamente
- Verifique se a biblioteca do cliente MySQL está instalada na instalação local
-
Erros de execução de consultas:
- Verifique a sintaxe SQL
- Verifique as permissões do banco de dados
- Verifique a versão do conector MySQL na instalação local
Registro de Logs
O servidor registra logs na saída padrão por padrão. Para ajustar o nível de log na instalação local:
python mcp_server.py --log-level DEBUG
Ao usar Docker, para verificar os logs:
docker logs [container-id]
Contribuindo
- Crie uma issue
- Crie uma branch (
git checkout -b feature/AmazingFeature) - Faça commit das alterações (
git commit -m 'Add some AmazingFeature') - Envie a branch (
git push origin feature/AmazingFeature) - Crie um Pull Request
Licença
Este projeto é distribuído sob a licença MIT. Para mais detalhes, consulte o arquivo LICENSE.
Contato
Se tiver dúvidas, crie uma issue.