MySQL MCP Server

by caicongyang
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Enables configuration through environment variables stored in .env files, allowing users to securely store database connection details and other configuration options.

  • Supports deployment as a Docker container, making it easy to run the MCP server in containerized environments with proper isolation and dependency management.

  • Provides database interaction capabilities through MySQL, enabling SQL query execution, table creation, and database schema exploration with tools for reading data, writing data, creating tables, listing tables, and describing table schemas.

Servidor MySQL MCP

Inglés | Chino

Descripción general

Una implementación de servidor del Protocolo de Contexto de Modelo (MCP) que proporciona capacidades de interacción con bases de datos a través de MySQL. Este servidor permite ejecutar consultas SQL, crear tablas y explorar la información del esquema de la base de datos.

Componentes

Herramientas

El servidor ofrece cinco herramientas principales:

Herramientas de consulta

  • read_query
    • Ejecutar consultas SELECT para leer datos de la base de datos
    • Aporte:
      * query (cadena): La consulta SQL SELECT a ejecutar
    • Devuelve: Resultados de la consulta como una matriz de objetos
  • write_query
    • Ejecutar consultas INSERT, UPDATE o DELETE
    • Aporte:
      * query (cadena): La consulta de modificación de SQL
    • Devoluciones: { affected_rows: number }
  • create_table
    • Crear nuevas tablas en la base de datos
    • Aporte:
      * query (cadena): instrucción SQL CREATE TABLE
    • Devuelve: Confirmación de creación de la tabla

Herramientas de esquema

  • list_tables
    • Obtener una lista de todas las tablas en la base de datos
    • No se requiere entrada
    • Devuelve: Matriz de nombres de tablas
  • describe_table
    • Ver información del esquema para una tabla específica
    • Aporte:
      * table_name (cadena): Nombre de la tabla a describir
    • Devuelve: Matriz de definiciones de columnas con nombres y tipos

Instalación

Prerrequisitos

  • Python 3.10+
  • Base de datos MySQL
  • Paquetes de Python necesarios:
    • mcp (Protocolo de contexto modelo)
    • sqlalchemy
    • pymysql (u otro controlador MySQL)
    • python-dotenv
    • uvicorn (para transporte HTTP)

Configuración con Conda

Primero, crea y activa un entorno conda:

# Create environment conda create --name mcp-demo python=3.12 # Activate environment conda activate mcp-demo

Luego, instala las dependencias necesarias:

# Method 1: Using pip pip install "mcp[cli]>=0.1.0" "pymysql>=1.1.0" "sqlalchemy>=2.0.0" "python-dotenv>=1.0.0" "uvicorn>=0.27.0" # Method 2: Using uv uv pip install "mcp[cli]>=0.1.0" "pymysql>=1.1.0" "sqlalchemy>=2.0.0" "python-dotenv>=1.0.0" "uvicorn>=0.27.0"

Configuración

Puede configurar el servidor utilizando:

Archivo de variables de entorno (.env)

  1. Copie el archivo .env.template y cámbiele el nombre a .env :
cp .env.template .env
  1. Edite el archivo .env con su configuración:
# Database configuration DB_URL=mysql+pymysql://username:password@localhost:3306/dbname

Argumentos de la línea de comandos

También puede anular la configuración con argumentos de la línea de comando:

python src/mysql/server.py --db-url mysql+pymysql://username:password@localhost:3306/dbname

Uso

Iniciando el servidor

# Using .env file configuration python src/mysql/server.py # Using command line arguments python src/mysql/server.py --db-url mysql+pymysql://username:password@localhost:3306/dbname --transport http

Pruebas con MCP Inspector

Puede probar el servidor utilizando la herramienta MCP Inspector:

npx @modelcontextprotocol/inspector uv run /Users/caicongyang/IdeaProjects/tom/mcp-demo/src/mysql/server.py

Esto iniciará el servidor y le permitirá probar de forma interactiva las herramientas disponibles.

Ejemplo de flujo de trabajo

  1. Inicie el servidor con su conexión de base de datos MySQL
  2. Conecte un modelo de IA al servidor mediante el cliente MCP
  3. Utilice la herramienta list_tables para ver las tablas disponibles
  4. Cree tablas con create_table si es necesario
  5. Insertar datos con write_query
  6. Consultar datos con read_query

Uso con Claude Desktop

ultravioleta

Agregue el servidor a su claude_desktop_config.json :

"mcpServers": { "mysql": { "command": "uv", "args": [ "--directory", "path_to_mcp_demo", "run", "python", "src/mysql/server.py", "--db-url", "mysql+pymysql://username:password@localhost/dbname" ] } }

Estibador

Agregue el servidor a su claude_desktop_config.json :

"mcpServers": { "mysql": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "mcp-mysql:/mcp", "mcp/mysql", "--db-url", "mysql+pymysql://username:password@localhost/dbname" ] } }

Instalación del paquete

También puedes instalar el paquete usando pip:

# Install in development mode pip install -e . # Run using the installed package mcp-mysql --db-url mysql+pymysql://username:password@localhost/dbname

En Cursor IDE

Cursor es un IDE con IA. Puedes integrar este servidor MCP con Cursor para consultar bases de datos MySQL directamente durante la programación.

Configuración en el cursor

  1. Iniciar el servidor MCP
    python src/mysql/server.py
  2. Configurar MCP en la configuración del cursorAgregue la URL de su servidor MCP:
    http://localhost:8000
  3. Utilice los comandos del cursor para acceder a MCPEn el editor de cursores, utilice:
    /mcp mysql-query {"query": "SELECT * FROM users LIMIT 5"}
    Para consultas parametrizadas:
    /mcp mysql-query {"query": "SELECT * FROM users WHERE age > :min_age", "params": {"min_age": 30}}

Referencia de API

Formato de entrada

{ "query": "SELECT * FROM users WHERE age > :min_age", "params": { "min_age": 30 } }

Formato de salida

{ "results": [ {"id": 1, "name": "John", "age": 35}, {"id": 2, "name": "Jane", "age": 42} ], "columns": ["id", "name", "age"], "rowcount": 2 }

Consideraciones de seguridad

  • Este servidor debe ejecutarse en un entorno confiable, ya que permite consultas SQL arbitrarias.
  • En producción, implementar un control de acceso adecuado y validación de entrada.
  • Considere limitar los tipos de comandos SQL que se pueden ejecutar
  • Importante : No envíe archivos .env que contengan información confidencial al control de versiones

Desarrollo

Estructura del proyecto

  • src/mysql/server.py : Implementación del servidor principal
  • pyproject.toml : Configuración del paquete
  • README.md : Esta documentación

Añadiendo nuevas funciones

Para ampliar el servidor con nuevas capacidades:

  1. Agregue nuevas herramientas usando el decorador @mcp.tool()
  2. Implementar la lógica de la herramienta utilizando la clase MySQLDatabase
  3. Actualizar la documentación para reflejar las nuevas capacidades

Licencia

Este servidor MCP está licenciado bajo la Licencia MIT. Esto significa que usted tiene libertad de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia MIT.

-
security - not tested
F
license - not found
-
quality - not tested

Un servidor de protocolo de contexto de modelo que permite que los modelos de IA interactúen con bases de datos MySQL a través del lenguaje natural, admitiendo consultas SQL, creación de tablas y exploración de esquemas.

ID: 8b32i02aoa