Skip to main content
Glama
EgCooper

MCP MySQL

by EgCooper

MCP Database

Servidores MCP en Python para conectar asistentes de IA (Cursor, Claude, Gemini, etc.) a MySQL, Oracle, SQL Server, Informix y PostgreSQL.

Hay cinco servidores independientes en el mismo repo:

Servidor

Módulo

Entrada MCP

Driver extra en la PC

MySQL

mcp_mysql

mysql

No (pip alcanza)

Oracle

mcp_oracle

oracle

No (pip / thin mode)

PostgreSQL

mcp_postgresql

postgresql

No (pip / psycopg)

SQL Server

mcp_sqlserver

sqlserver

— ODBC Driver 17/18

Informix

mcp_informix

informix

— Client SDK / ODBC IBM

Requisitos

  • Python 3.11+

  • Acceso a la(s) base(s) que vayas a usar

  • SQL Server e Informix: además de pip install -e ., debes instalar el driver nativo en cada máquina (ver sección abajo)

Related MCP server: MCP MySQL Server

Drivers adicionales (obligatorio para SQL Server e Informix)

pip install -e . instala pyodbc, pero no instala el driver del sistema. Sin eso, la conexión falla.

SQL Server — ODBC Driver

  1. Descarga e instala Microsoft ODBC Driver 18 for SQL Server (x64):
    https://learn.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server

  2. Si el instalador lo pide, instala también el Visual C++ Redistributable.

  3. Verifica en PowerShell:

Get-OdbcDriver | Where-Object { $_.Name -like "*SQL Server*" }
  1. En .env usa el nombre exacto del driver, por ejemplo:

SQLSERVER_DRIVER=ODBC Driver 18 for SQL Server

Informix — Client SDK / ODBC

  1. Descarga el IBM Informix Client SDK (incluye el ODBC Driver). Requiere cuenta/licencia IBM o HCL:

  2. Instala el Client SDK para Windows x64.

  3. Verifica en Orígenes de datos ODBC (64 bits) que aparezca algo como IBM INFORMIX ODBC DRIVER.

  4. En .env:

INFORMIX_DRIVER=IBM INFORMIX ODBC DRIVER
INFORMIX_SERVER=ol_informix1410

INFORMIX_SERVER es el nombre del servidor Informix (INFORMIXSERVER), no solo el host.

Instalación del proyecto

git clone <url-del-repo>
cd MCP-DATABASE
python -m venv .venv

Activa el entorno virtual:

# Windows (PowerShell)
.\.venv\Scripts\Activate.ps1

# Linux / macOS
source .venv/bin/activate

Instala el paquete (incluye los cinco servidores):

pip install -e .

Crea tu archivo de credenciales (no se sube a git):

# Windows
Copy-Item .env.example .env

# Linux / macOS
cp .env.example .env

Edita .env con las bases que uses (ver .env.example).

Configurar el cliente MCP

Cada servidor se registra por separado (fusiona sin borrar otros MCPs):

python -m mcp_mysql setup
python -m mcp_oracle setup
python -m mcp_postgresql setup
python -m mcp_sqlserver setup
python -m mcp_informix setup

Opciones comunes:

python -m mcp_postgresql setup --client claude
python -m mcp_postgresql setup --dry-run
python -m mcp_postgresql setup --print

También: mcp-mysql-setup / mcp-oracle-setup / mcp-postgresql-setup / mcp-sqlserver-setup / mcp-informix-setup.

Recarga los MCP del cliente y prueba con test_connection.

Claude Code (CLI)

El comando setup de este repo solo soporta --client cursor y --client claude (Claude Desktop). Si usas Claude Code (la CLI), regístralo con el comando nativo claude mcp add, ejecutado desde la raíz del repo:

Linux / macOS:

claude mcp add mysql -- $(pwd)/.venv/bin/python -m mcp_mysql
claude mcp add oracle -- $(pwd)/.venv/bin/python -m mcp_oracle
claude mcp add postgresql -- $(pwd)/.venv/bin/python -m mcp_postgresql
claude mcp add sqlserver -- $(pwd)/.venv/bin/python -m mcp_sqlserver
claude mcp add informix -- $(pwd)/.venv/bin/python -m mcp_informix

Windows (PowerShell):

claude mcp add mysql -- "$PWD\.venv\Scripts\python.exe" -m mcp_mysql
claude mcp add oracle -- "$PWD\.venv\Scripts\python.exe" -m mcp_oracle
claude mcp add postgresql -- "$PWD\.venv\Scripts\python.exe" -m mcp_postgresql
claude mcp add sqlserver -- "$PWD\.venv\Scripts\python.exe" -m mcp_sqlserver
claude mcp add informix -- "$PWD\.venv\Scripts\python.exe" -m mcp_informix

Registra solo los motores que vayas a usar (necesitas las credenciales correspondientes ya cargadas en .env). Ejecuta los comandos desde la raíz del repo; si no, reemplaza $(pwd) / $PWD por la ruta absoluta al proyecto.

Verifica con:

claude mcp list

Y quita un servidor mal configurado con:

claude mcp remove <nombre>

Luego prueba con la tool test_connection dentro de una sesión de Claude Code.

Oracle: varias conexiones (perfiles)

Un solo MCP oracle puede apuntar a varias bases. En .env:

Multi Connection

ORACLE_CONNECTIONS=B1,B2
ORACLE_DEFAULT=B1

ORACLE_B1_USER=
ORACLE_B1_PASSWORD=
ORACLE_B1_HOST=
ORACLE_B1_PORT=
ORACLE_B1_SID=

ORACLE_B2_USER=
ORACLE_B2_PASSWORD=
ORACLE_B2_HOST=
ORACLE_B2_PORT=  
ORACLE_B2_SID=

Uso en tools: list_connections, luego list_tables(connection="qa"), execute_query(..., connection="qa"), etc.
Si omites connection, se usa ORACLE_DEFAULT.

El modo simple (una sola DB) sigue funcionando con ORACLE_USER / ORACLE_DSN sin ORACLE_CONNECTIONS.

Cliente

Archivo por defecto

Cursor Windows

\Users\username\.cursor

Cursor Linux

/home/user/.cursor/mcp.json

Gemini Windows

C:\users\user_name\.gemini\config\mcp_config.json

Gemini Linux

/home/username/.gemini/config/mcp_config.json

Claude Desktop Windows

%APPDATA%\Claude\claude_desktop_config.json

Claude Desktop macOS/Linux

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) / ~/.config/Claude/claude_desktop_config.json (Linux)

Claude Code (CLI): no uses --client claude para esto — ese modo apunta a Claude Desktop, no a Claude Code. Usa claude mcp add como se explica en la sección Claude Code (CLI) arriba.

Tools disponibles

Las mismas tools en los cinco servidores (solo lectura):

Tool

Descripción

list_connections

Lista perfiles Oracle configurados (solo Oracle por ahora)

test_connection

Verifica la conexión

list_tables

Lista tablas

list_views

Lista vistas

describe_table

Columnas de una tabla

list_indexes

Índices de una tabla

list_foreign_keys

FKs de una tabla o de toda la DB

find_column

Busca columnas por nombre (% wildcard)

sample_rows

Muestra filas de ejemplo (máx. 100)

count_rows

Cuenta filas de una tabla

execute_query

SQL libre de solo lectura

MySQL / PostgreSQL: SELECT, SHOW/EXPLAIN donde aplique, WITH (usa LIMIT).

Oracle / SQL Server / Informix: SELECT / WITH (límites con FETCH FIRST / TOP / FIRST).

execute_query rechaza múltiples sentencias (;) y keywords de escritura (INSERT, UPDATE, DELETE, DROP, etc.). En producción usa además un usuario DB read-only.

Notas

  • Los comandos python -m mcp_* arrancan el servidor stdio; lo lanza el cliente.

  • Las credenciales viven en .env, no en el JSON del cliente.

  • MySQL, Oracle y PostgreSQL no requieren instalador de driver aparte (en el flujo típico).

  • SQL Server e Informix requieren driver/SDK instalado en el sistema además de pyodbc.

Estructura

MCP-DATABASE/
├── pyproject.toml
├── .env.example
├── src/
│   ├── mcp_mysql/
│   ├── mcp_oracle/
│   ├── mcp_postgresql/
│   ├── mcp_sqlserver/
│   └── mcp_informix/
└── README.md

Prueba

Image Test

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables secure interaction with MySQL databases, allowing AI assistants to list tables, read data, and execute SQL queries through a controlled interface.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to safely query MySQL databases with read-only access by default, supporting table listing, structure inspection, and SQL queries with optional write operation control.
    10 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to safely query MySQL databases with read-only access, featuring SQL injection protection, connection pooling, and automatic query limits for secure database exploration.
    4
    27 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to securely interact with MySQL databases, including listing tables, viewing schemas, and executing read-only SQL queries through natural language.
    6
    -