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

smithery badge 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

  1. 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)

  1. 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
  1. Instale as dependências:
pip install -r requirements.txt
  1. Execute o servidor:
python mcp_server.py

Instalação Docker

  1. Construa a imagem Docker:
docker build -t mysql-mcp-server .
  1. 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

  1. Configure o ambiente de desenvolvimento:
# 개발용 의존성 설치
pip install -r requirements-dev.txt  # 필요한 경우 생성

# 코드 포맷팅 및 린팅 설정
pip install black flake8
  1. Execute o código:
# 개발 모드로 실행
python mcp_server.py --dev
  1. 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

  1. Adicione uma nova ferramenta em mcp_server.py
  2. Adicione as dependências necessárias em requirements.txt
  3. Escreva o código de teste
  4. Reconstrua a imagem Docker (ao usar Docker)

Solução de Problemas

Problemas Comuns

  1. 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
  2. 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

  1. Crie uma issue
  2. Crie uma branch (git checkout -b feature/AmazingFeature)
  3. Faça commit das alterações (git commit -m 'Add some AmazingFeature')
  4. Envie a branch (git push origin feature/AmazingFeature)
  5. 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.