Skip to main content
Glama
daedalus

mcp-mysql-connector

by daedalus

mcp-mysql-connector

Servidor MCP que expone funcionalidades de bases de datos MySQL como herramientas para agentes LLM.

mcp-name: io.github.daedalus/mcp-mysql-connector

PyPI Python Coverage Ruff

Descripción general

mcp-mysql-connector es un servidor Model Context Protocol (MCP) que proporciona operaciones de bases de datos MySQL como herramientas para agentes LLM. Permite a los asistentes de IA interactuar con bases de datos MySQL mediante un protocolo estandarizado, lo que hace posible:

  • Gestión de bases de datos y tablas

  • Ejecución de consultas

  • Autenticación de usuarios y gestión de privilegios

  • Introspección de esquemas

  • Control de transacciones

Related MCP server: MCP Server MySQL

Instalación

pip install mcp-mysql-connector

Inicio rápido

Ejecutar el servidor

# Run with stdio transport (default)
mcp-mysql-connector

# Or run programmatically
python -c "from mcp_mysql import mcp; mcp.run()"

Configuración

Conéctese a MySQL mediante la herramienta connect:

{
  "host": "localhost",
  "port": 3306,
  "user": "root",
  "password": "your_password",
  "database": "your_database"
}

Herramientas MCP

Gestión de conexiones

Herramienta

Descripción

connect

Conectarse a una base de datos MySQL

disconnect

Desconectarse de MySQL

is_connected

Comprobar el estado de la conexión

commit

Confirmar la transacción actual

rollback

Revertir la transacción actual

Ejecución de consultas

Herramienta

Descripción

execute_query

Ejecutar una consulta SQL cruda y devolver los resultados

Operaciones de bases de datos

Herramienta

Descripción

list_databases

Listar todas las bases de datos del servidor

create_database

Crear una nueva base de datos

drop_database

Eliminar una base de datos

database_exists

Comprobar si existe la base de datos

Operaciones con tablas

Herramienta

Descripción

list_tables

Listar tablas de una base de datos

describe_table

Obtener el esquema de una tabla

create_table

Crear una nueva tabla

drop_table

Eliminar una tabla

table_exists

Comprobar si existe la tabla

Operaciones de columnas e índices

Herramienta

Descripción

show_columns

Mostrar detalles de las columnas

show_indexes

Mostrar detalles de los índices

create_index

Crear un índice

drop_index

Eliminar un índice

Gestión de usuarios

Herramienta

Descripción

create_user

Crear un usuario MySQL

drop_user

Eliminar un usuario MySQL

grant_privileges

Conceder privilegios a un usuario

revoke_privileges

Revocar privilegios a un usuario

show_privileges

Mostrar los privilegios de un usuario

Información del servidor

Herramienta

Descripción

server_status

Obtener el estado del servidor MySQL

Recursos MCP

El servidor Re: recursos dinámicos para metadatos de bases de datos y tablas.

  • database://{name}: metadatos de la base de datos, incluida la lista de tablas.

  • table://{db}/{table}: metadatos de la tabla, incluidos el esquema, las columnas y los índices.

Ejemplos de uso

Conectar y consultar

# First, connect to database
connect(host="localhost", user="root", password="secret", database="mydb")

# Execute a query
execute_query(sql="SELECT * FROM users WHERE active = true")

# List all tables
list_tables(database="mydb")

Crear base de datos y tabla

# Create a database
create_database(name="newapp")

# Create a table
create_table(name="users", schema="id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), email VARCHAR(255) UNIQUE")

Gestión de usuarios

# Create a new user with password
create_user(username="app_user", host="localhost", password="secure_password")

# Grant privileges
grant_privileges(privileges="SELECT,INSERT,UPDATE,DELETE", on="newapp.*", username="app_user", host="localhost")

Control de transacciones

# Start transaction
execute_query(sql="BEGIN")

# Execute operations
execute_query(sql="INSERT INTO accounts (balance) VALUES (100)")

# Commit or rollback
commit()  # or rollback()

Variables de entorno

El servidor admite ajuste de configuración mediante variables de entorno:

export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=root
export MYSQL_PASSWORD=secret
export MYSQL_DATABASE=mydb

Desarrollo

# Clone repository
git clone https://github.com/daedalus/mcp-mysql-connector.git
cd mcp-mysql-connector

# Create virtual environment
python -m venv venv
source venv/bin/activate

# Install dependencies
pip install -e ".[test]"

# Run tests
pytest

# Format code
ruff format src/ tests/

# Lint
ruff check src/ tests/

# Type check
mypy src/

Architecture

mcp-mysql-connector/
├── src/mcp_mysql/
│   ├── core/models.py       # Data models (QueryResult, TableSchema, etc.)
│   ├── adapters/mysql.py    # MySQL connection & pooling
│   ├── services/connection.py  # Connection manager
│   ├── tools/mysql_tools.py   # MCP tool implementations
│   └── mcp.py              # FastMCP server setup
└── tests/                   # Test suite

Requisitos

  • Python 3.11+

  • fastmcp >= 2.0.0

  • pymysql >= 1.1.0

  • sqlparse >= 0.4.0

Licencia

Licencia MIT: consulte LICENSE para obtener más detalles.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI models to perform MySQL database operations through a standardized interface, supporting secure connections, query execution, and comprehensive schema management.
    7
    218 npm
    33
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables LLMs to interact with MySQL databases through standardized protocol, supporting database management, table operations, data queries, and modifications with configurable permission controls.
    15
    39 npm
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to safely interact with MySQL/MariaDB databases, supporting read-only queries by default with optional write operations and access control.
    8
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with a MySQL database using natural language, automating SQL tasks like querying, inserting, updating, and deleting data.
    1
    -