Skip to main content
Glama
dpflucas

MySQL Database Access

versión npm insignia de herrería

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

Related MCP server: MCP Server for MySQL

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_de_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"
  }
}

Configuración avanzada del grupo de conexiones

Para obtener más control sobre el comportamiento del grupo de conexiones MySQL, puede configurar parámetros adicionales:

{
  "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",
        
        "MYSQL_CONNECTION_LIMIT": "10",
        "MYSQL_QUEUE_LIMIT": "0",
        "MYSQL_CONNECT_TIMEOUT": "10000",
        "MYSQL_IDLE_TIMEOUT": "60000",
        "MYSQL_MAX_IDLE": "10"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Estas opciones avanzadas le permiten:

  • MYSQL_CONNECTION_LIMIT : controla el número máximo de conexiones en el grupo (valor predeterminado: 10)

  • MYSQL_QUEUE_LIMIT : Establece el número máximo de solicitudes de conexión para poner en cola (valor predeterminado: 0, ilimitado)

  • MYSQL_CONNECT_TIMEOUT : ajusta el tiempo de espera de la conexión en milisegundos (valor predeterminado: 10000)

  • MYSQL_IDLE_TIMEOUT : configura cuánto tiempo puede estar inactiva una conexión antes de liberarse (en milisegundos)

  • MYSQL_MAX_IDLE : Establece el número máximo de conexiones inactivas que se mantendrán en el grupo

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.

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dpflucas/mysql-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server