MySQL MCP Server

Fornece acesso a um banco de dados MySQL, permitindo que agentes executem consultas SQL.

Documentação

Servidor MCP MySQL

Este é um servidor Model Context Protocol (MCP) que fornece acesso a um banco de dados MySQL. Ele permite que agentes executem consultas SQL em um banco de dados MySQL.

Recursos

  • Executa consultas SQL em um banco de dados MySQL:
    • Ler dados (instruções SELECT)
    • Criar tabelas (instruções CREATE TABLE)
    • Inserir dados (instruções INSERT INTO)
    • Atualizar dados (instruções UPDATE)
    • Excluir dados (instruções DELETE FROM)
  • Retorna resultados de consultas em formato JSON
  • Configurações de conexão com o banco de dados ajustáveis
  • Registro de transações com IDs únicos

Pré-requisitos

  • Node.js (v14 ou superior)
  • Servidor MySQL
  • SDK MCP

Instalação

  1. Clone ou baixe este repositório
  2. Instale as dependências:
cd mysql-mcp-server
npm install
  1. Compile o servidor:
npm run build

Configuração

O servidor MCP MySQL usa as seguintes variáveis de ambiente para configuração:

  • MYSQL_HOST: Hostname do servidor MySQL (padrão: 'localhost')
  • MYSQL_PORT: Porta do servidor MySQL (padrão: 3306)
  • MYSQL_USER: Nome de usuário do MySQL (padrão: 'mcp101')
  • MYSQL_PASSWORD: Senha do MySQL (padrão: '123qwe')
  • MYSQL_DATABASE: Nome do banco de dados MySQL (padrão: 'mcpdb')

Configuração do Banco de Dados

  1. Crie um banco de dados MySQL:
CREATE DATABASE mcpdb;
  1. Crie um usuário MySQL com acesso ao banco de dados:
CREATE USER 'mcp101'@'localhost' IDENTIFIED BY '123qwe';
GRANT ALL PRIVILEGES ON mcpdb.* TO 'mcp101'@'localhost';
FLUSH PRIVILEGES;
  1. Crie uma tabela de teste com dados de exemplo:
USE mcpdb;
CREATE TABLE test_users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100),
  email VARCHAR(100),
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO test_users (name, email) VALUES
  ('John Doe', 'john@example.com'),
  ('Jane Smith', 'jane@example.com'),
  ('Bob Johnson', 'bob@example.com');

Configuração do MCP

Adicione o servidor MCP MySQL ao seu arquivo de configurações do MCP:

VSCode (Extensão Claude)

Arquivo: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

Altere os argumentos de acordo com sua configuração do MySQL

{
  "mcpServers": {
    "mysql-mcp-server": {
      "autoApprove": [],
      "disabled": false,
      "timeout": 60,
      "command": "node",
      "args": [
        "/path/to/mysql-mcp-server/build/index.js"
      ],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "mcp101",
        "MYSQL_PASSWORD": "123qwe",
        "MYSQL_DATABASE": "mcpdb"
      },
      "transportType": "stdio"
    }
  }
}

Aplicativo Claude Desktop

Arquivo: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "mysql-mcp-server": {
      "autoApprove": [],
      "disabled": false,
      "timeout": 60,
      "command": "node",
      "args": [
        "/path/to/mysql-mcp-server/build/index.js"
      ],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "mcp101",
        "MYSQL_PASSWORD": "123qwe",
        "MYSQL_DATABASE": "mcpdb"
      },
      "transportType": "stdio"
    }
  }
}

Uso

Após a configuração, você pode usar o servidor MCP MySQL em suas conversas com o Claude. Por exemplo:

"Você pode me mostrar todos os usuários na tabela test_users?"

O Claude usará a ferramenta run_sql_query para executar:

SELECT * FROM test_users

Ferramentas Disponíveis

run_sql_query

Executa uma consulta SQL somente leitura (apenas instruções SELECT) no banco de dados MySQL.

Parâmetros:

  • query: A consulta SQL SELECT a ser executada.

Exemplo:

{
  "query": "SELECT * FROM test_users"
}

create_table

Cria uma nova tabela no banco de dados MySQL.

Parâmetros:

  • query: A consulta SQL CREATE TABLE a ser executada.

Exemplo:

{
  "query": "CREATE TABLE products (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), price DECIMAL(10,2))"
}

insert_data

Insere dados em uma tabela no banco de dados MySQL.

Parâmetros:

  • query: A consulta SQL INSERT INTO a ser executada.

Exemplo:

{
  "query": "INSERT INTO products (name, price) VALUES ('Laptop', 999.99), ('Smartphone', 499.99)"
}

update_data

Atualiza dados em uma tabela no banco de dados MySQL.

Parâmetros:

  • query: A consulta SQL UPDATE a ser executada.

Exemplo:

{
  "query": "UPDATE products SET price = 899.99 WHERE name = 'Laptop'"
}

delete_data

Exclui dados de uma tabela no banco de dados MySQL.

Parâmetros:

  • query: A consulta SQL DELETE FROM a ser executada.

Exemplo:

{
  "query": "DELETE FROM products WHERE name = 'Smartphone'"
}

Considerações de Segurança

  • Use um usuário MySQL dedicado com privilégios apropriados para o servidor MCP
  • Considere usar privilégios somente leitura se você precisar apenas consultar dados
  • Armazene informações sensíveis, como credenciais do banco de dados, de forma segura
  • Todas as operações são registradas com IDs de transação únicos para auditoria