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
- Clone ou baixe este repositório
- Instale as dependências:
cd mysql-mcp-server
npm install
- 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
- Crie um banco de dados MySQL:
CREATE DATABASE mcpdb;
- 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;
- 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