mysql-mcp-server

MIT License
521
9
  • Linux
  • Apple

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides read-only access to MySQL databases with tools for listing databases, exploring table schemas, and executing secure SQL queries with protection against data modification.

Servidor MCP de acceso a bases de datos MySQL

Este servidor MCP proporciona acceso de solo lectura a bases de datos MySQL. Permite:

  • Lista de bases de datos disponibles
  • Listar tablas en una base de datos
  • Describir esquemas de tablas
  • Ejecutar consultas SQL de solo lectura

Características de seguridad

  • Acceso de solo lectura : solo se permiten las instrucciones SELECT, SHOW, DESCRIBE y EXPLAIN
  • Validación de consultas : evita la inyección de SQL y bloquea cualquier intento de modificación de datos
  • Tiempo de espera de consulta : evita que las consultas de larga duración consuman recursos
  • Límite de filas : evita la devolución excesiva de datos

Instalación

1. Instale utilizando uno de estos métodos:

Instalar desde NPM

# Install globally npm install -g mysql-mcp-server # Or install locally in your project npm install mysql-mcp-server

Construir desde la fuente

# Clone the repository git clone https://github.com/dpflucas/mysql-mcp-server.git cd mysql-mcp-server # Install dependencies and build npm install npm run build

Instalar a través de Smithery

Para instalar MySQL Database Access MCP Server para Claude AI automáticamente a través de Smithery :

npx -y @smithery/cli install @dpflucas/mysql-mcp-server --client claude

2. Configurar variables de entorno

El servidor requiere las siguientes variables de entorno:

  • MYSQL_HOST : Nombre de host del servidor de base de datos
  • MYSQL_PORT : Puerto del servidor de base de datos (predeterminado: 3306)
  • MYSQL_USER : Nombre de usuario de la base de datos
  • MYSQL_PASSWORD : Contraseña de la base de datos (opcional, pero recomendada para conexiones seguras)
  • MYSQL_DATABASE : Nombre de la base de datos predeterminada (opcional)

3. Agregar a la configuración de MCP

Agregue la siguiente configuración a su archivo de configuración de MCP:

Si lo instaló mediante npm (Opción 1):

{ "mcpServers": { "mysql": { "command": "npx", "args": ["mysql-mcp-server"], "env": { "MYSQL_HOST": "your-mysql-host", "MYSQL_PORT": "3306", "MYSQL_USER": "your-mysql-user", "MYSQL_PASSWORD": "your-mysql-password", "MYSQL_DATABASE": "your-default-database" }, "disabled": false, "autoApprove": [] } } }

Si lo construyó desde la fuente (Opción 2):

{ "mcpServers": { "mysql": { "command": "node", "args": ["/path/to/mysql-mcp-server/build/index.js"], "env": { "MYSQL_HOST": "your-mysql-host", "MYSQL_PORT": "3306", "MYSQL_USER": "your-mysql-user", "MYSQL_PASSWORD": "your-mysql-password", "MYSQL_DATABASE": "your-default-database" }, "disabled": false, "autoApprove": [] } } }

Herramientas disponibles

lista_bases_de_datos

Enumera todas las bases de datos accesibles en el servidor MySQL.

Parámetros : Ninguno

Ejemplo :

{ "server_name": "mysql", "tool_name": "list_databases", "arguments": {} }

listas_de_tablas

Enumera todas las tablas de una base de datos especificada.

Parámetros :

  • database (opcional): nombre de la base de datos (usa el predeterminado si no se especifica)

Ejemplo :

{ "server_name": "mysql", "tool_name": "list_tables", "arguments": { "database": "my_database" } }

describe_tabla

Muestra el esquema de una tabla específica.

Parámetros :

  • database (opcional): nombre de la base de datos (usa el predeterminado si no se especifica)
  • table (obligatorio): Nombre de la tabla

Ejemplo :

{ "server_name": "mysql", "tool_name": "describe_table", "arguments": { "database": "my_database", "table": "my_table" } }

ejecutar_consulta

Ejecuta una consulta SQL de solo lectura.

Parámetros :

  • query (obligatoria): consulta SQL (solo se permiten las sentencias SELECT, SHOW, DESCRIBE y EXPLAIN)
  • database (opcional): nombre de la base de datos (usa el predeterminado si no se especifica)

Ejemplo :

{ "server_name": "mysql", "tool_name": "execute_query", "arguments": { "database": "my_database", "query": "SELECT * FROM my_table LIMIT 10" } }

Pruebas

El servidor incluye scripts de prueba para verificar la funcionalidad con su configuración de MySQL:

1. Configurar la base de datos de prueba

Este script crea una base de datos de prueba, una tabla y datos de muestra:

# Set your MySQL credentials as environment variables export MYSQL_HOST=localhost export MYSQL_PORT=3306 export MYSQL_USER=your_username export MYSQL_PASSWORD=your_password # Run the setup script npm run test:setup

2. Probar las herramientas MCP

Este script prueba cada una de las herramientas MCP contra la base de datos de prueba:

# Set your MySQL credentials as environment variables export MYSQL_HOST=localhost export MYSQL_PORT=3306 export MYSQL_USER=your_username export MYSQL_PASSWORD=your_password export MYSQL_DATABASE=mcp_test_db # Run the tools test script npm run test:tools

3. Ejecutar todas las pruebas

Para ejecutar pruebas de configuración y de herramientas:

# Set your MySQL credentials as environment variables export MYSQL_HOST=localhost export MYSQL_PORT=3306 export MYSQL_USER=your_username export MYSQL_PASSWORD=your_password # Run all tests npm test

Solución de problemas

Si encuentra problemas:

  1. Verifique los registros del servidor para ver si hay mensajes de error
  2. Verifique sus credenciales de MySQL y los detalles de conexión
  3. Asegúrese de que su usuario MySQL tenga los permisos adecuados
  4. Compruebe que su consulta sea de solo lectura y tenga el formato correcto

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

ID: ddav9xbsbv