MySQL MCP Server
Proporciona acceso a una base de datos MySQL, permitiendo a los agentes ejecutar consultas SQL.
Documentación
MySQL MCP Server
Este es un servidor de Model Context Protocol (MCP) que proporciona acceso a una base de datos MySQL. Permite al agente ejecutar consultas SQL contra una base de datos MySQL.
Características
- Ejecutar consultas SQL contra una base de datos MySQL:
- Leer datos (sentencias SELECT)
- Crear tablas (sentencias CREATE TABLE)
- Insertar datos (sentencias INSERT INTO)
- Actualizar datos (sentencias UPDATE)
- Eliminar datos (sentencias DELETE FROM)
- Devuelve los resultados de las consultas en formato JSON
- Configuración de conexión a la base de datos configurable
- Registro de transacciones con IDs únicos
Requisitos previos
- Node.js (v14 o superior)
- Servidor MySQL
- MCP SDK
Instalación
- Clona o descarga este repositorio
- Instala las dependencias:
cd mysql-mcp-server
npm install
- Compila el servidor:
npm run build
Configuración
El servidor MySQL MCP utiliza las siguientes variables de entorno para su configuración:
MYSQL_HOST: Nombre de host del servidor MySQL (predeterminado: 'localhost')MYSQL_PORT: Puerto del servidor MySQL (predeterminado: 3306)MYSQL_USER: Nombre de usuario de MySQL (predeterminado: 'mcp101')MYSQL_PASSWORD: Contraseña de MySQL (predeterminada: '123qwe')MYSQL_DATABASE: Nombre de la base de datos MySQL (predeterminado: 'mcpdb')
Configuración de la base de datos
- Crea una base de datos MySQL:
CREATE DATABASE mcpdb;
- Crea un usuario de MySQL con acceso a la base de datos:
CREATE USER 'mcp101'@'localhost' IDENTIFIED BY '123qwe';
GRANT ALL PRIVILEGES ON mcpdb.* TO 'mcp101'@'localhost';
FLUSH PRIVILEGES;
- Crea una tabla de prueba con datos de ejemplo:
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');
Configuración de MCP
Añade el servidor MySQL MCP a tu archivo de configuración de MCP:
VSCode (Claude Extension)
Archivo: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Cambia los argumentos según tu configuración de 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"
}
}
}
Claude Desktop App
Archivo: ~/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
Una vez configurado, puedes usar el servidor MySQL MCP en tus conversaciones con Claude. Por ejemplo:
"¿Puedes mostrarme todos los usuarios de la tabla test_users?"
Claude utilizará la herramienta run_sql_query para ejecutar:
SELECT * FROM test_users
Herramientas disponibles
run_sql_query
Ejecuta una consulta SQL de solo lectura (únicamente sentencias SELECT) contra la base de datos MySQL.
Parámetros:
query: La consulta SQL SELECT a ejecutar.
Ejemplo:
{
"query": "SELECT * FROM test_users"
}
create_table
Crea una nueva tabla en la base de datos MySQL.
Parámetros:
query: La consulta SQL CREATE TABLE a ejecutar.
Ejemplo:
{
"query": "CREATE TABLE products (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), price DECIMAL(10,2))"
}
insert_data
Inserta datos en una tabla de la base de datos MySQL.
Parámetros:
query: La consulta SQL INSERT INTO a ejecutar.
Ejemplo:
{
"query": "INSERT INTO products (name, price) VALUES ('Laptop', 999.99), ('Smartphone', 499.99)"
}
update_data
Actualiza datos en una tabla de la base de datos MySQL.
Parámetros:
query: La consulta SQL UPDATE a ejecutar.
Ejemplo:
{
"query": "UPDATE products SET price = 899.99 WHERE name = 'Laptop'"
}
delete_data
Elimina datos de una tabla en la base de datos MySQL.
Parámetros:
query: La consulta SQL DELETE FROM a ejecutar.
Ejemplo:
{
"query": "DELETE FROM products WHERE name = 'Smartphone'"
}
Consideraciones de seguridad
- Utiliza un usuario de MySQL dedicado con privilegios adecuados para el servidor MCP
- Considera utilizar privilegios de solo lectura si solo necesitas consultar datos
- Almacena información sensible, como las credenciales de la base de datos, de forma segura
- Todas las operaciones se registran con IDs de transacción únicos para auditoría