MySQL MCP Server v2

by w2pwinlinux

300 downloads
Not rated
GitHub

About

MySQL MCP Server v2 is a Model Context Protocol server that provides an interface to manage and query departmental budget information stored in a MySQL database. It is designed for users who need to securely connect to a MySQL database and perform operations like querying…

Details

Author
w2pwinlinux
Downloads
300
Categories
Database

- Secure connection to a MySQL database via context manager.
- Query complete department status by department code.
- Register budget requests and update balances with transactions.
- Search departments by name using partial matching (LIKE).
- Robust error handling with connection, query, and transaction rollback.
- Automatic rollback of transactions on errors.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name MySQL MCP Server v2
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install the required Python packages (mcp and mysql-connector-python), edit the db_config dictionary in the Python file to match your MySQL server settings, then start the server by running python mysql_mcp_server_v2.py. You can invoke the available functions (get_estado_completo, registrar_solicitud, buscar_por_nombre) through the MCP protocol.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mysql mcp server v2": {
            "mcp-server-presupuesto-mysql1": {
                "command": "python",
                "args": [
                    "test_buscar_nombre.py"
                ]
            }
        }
    }
}

McpServers

{
    "mcp-server-presupuesto-mysql1": {
        "command": "python",
        "args": [
            "test_buscar_nombre.py"
        ]
    }
}

MySQL MCP Server v2

Este servidor MCP (Message Control Protocol) proporciona una interfaz para gestionar y consultar información de presupuestos departamentales a través de una base de datos MySQL.

Características

- Conexión segura a base de datos MySQL
- Gestión de presupuestos departamentales
- Consultas por código de departamento
- Búsqueda por nombre de departamento
- Registro de solicitudes de presupuesto
- Manejo robusto de errores y conexiones

Requisitos

- Python 3.6 o superior
- MySQL Server (XAMPP o similar)
- Paquetes Python requeridos:
- mcp
- mysql-connector-python

Instalación

1. Clonar el repositorio
2. Instalar las dependencias:

pip install mcp mysql-connector-python

Configuración

El servidor está configurado para conectarse a una base de datos MySQL con los siguientes parámetros por defecto:

db_config = {
    'host': 'localhost',
    'port': 3306,
    'user': 'reporte',
    'password': 'reporte',
    'database': '_REPORTE',
    'raise_on_warnings': True
}

Ajusta estos parámetros según tu configuración de base de datos.

Funcionalidades

1. Consulta de Estado Completo

get_estado_completo(codigo: int)
Retorna la información completa de un departamento por su código, incluyendo: - Código - Nombre - Presupuesto inicial - Monto solicitado - Saldo disponible - Monto pagado

2. Registro de Solicitudes

registrar_solicitud(codigo: int, monto: float)
Registra una nueva solicitud de presupuesto para un departamento: - Actualiza el monto solicitado - Recalcula el saldo disponible - Maneja transacciones de forma segura

3. Búsqueda por Nombre

buscar_por_nombre(nombre: str)
Busca departamentos por nombre: - Búsqueda parcial (usando LIKE) - Retorna múltiples resultados - Incluye información completa de cada departamento encontrado

Pruebas

El proyecto incluye scripts de prueba para verificar la funcionalidad:

- test_buscar_nombre.py: Prueba la funcionalidad de búsqueda por nombre
- Ejecuta las pruebas con:

python test_buscar_nombre.py

Manejo de Errores

El servidor implementa un manejo robusto de errores:
- Errores de conexión a la base de datos
- Errores de consulta
- Validación de datos
- Rollback automático en caso de errores en transacciones

Estructura de la Base de Datos

La tabla principal departamentos contiene los siguientes campos:
- codigo (int): Identificador único del departamento
- nombre (varchar): Nombre del departamento
- inicial (decimal): Presupuesto inicial
- solicitado (decimal): Monto solicitado
- saldo (decimal): Saldo disponible
- pagado (decimal): Monto pagado

Ejecución

Para iniciar el servidor:

python mysql_mcp_server_v2.py

Notas de Seguridad

- Las credenciales de la base de datos están hardcodeadas en el código. En un entorno de producción, se recomienda usar variables de entorno o un archivo de configuración seguro.
- Se implementa manejo de conexiones seguro usando el patrón context manager.
- Las transacciones se manejan con commit/rollback apropiados.

Contribución

1. Fork el repositorio
2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
4. Push a la rama (git push origin feature/AmazingFeature)
5. Abre un Pull Request

Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.