MCP SQL Server (Desarrollo)
Servidor MCP profesional para conectar cualquier LLM compatible con MCP a una base de datos SQL y ejecutar:
- Consultas (
SELECT,WITH,SHOW, etc.) - DML (
INSERT,UPDATE,DELETE) - DDL (
CREATE,ALTER, y opcionalmenteDROP/TRUNCATE)
Este servidor está diseñado para uso personal en desarrollo asistido.
Características
- Protocolo MCP vía stdio (compatible con clientes MCP).
- Conexión multi-motor mediante
SQLAlchemy(sqlite,postgresql,mysql,mssql, etc.). - Herramientas MCP enfocadas en operación diaria:
sql_capabilitiessql_list_tablessql_describe_tablesql_runsql_run_script
- Bloqueo de DDL destructivo por defecto (
DROP/TRUNCATEbloqueados). - Límite configurable de filas y de sentencias por script.
Instalación
python -m venv .venv
source .venv/bin/activate
pip install -e .
Configuración (variables de entorno)
Prefijo: MCP_SQL_
MCP_SQL_DATABASE_URL: URL SQLAlchemy. Default:sqlite:///./dev.dbMCP_SQL_MAX_ROWS: máximo de filas devueltas por consulta. Default:200MCP_SQL_MAX_SCRIPT_STATEMENTS: máximo de sentencias por script. Default:100MCP_SQL_ALLOW_DESTRUCTIVE_DDL:true/falsepara permitirDROPyTRUNCATE. Default:false
Ejemplo
export MCP_SQL_DATABASE_URL='postgresql+psycopg://dev_user:dev_pass@localhost:5432/devdb'
export MCP_SQL_MAX_ROWS=500
export MCP_SQL_ALLOW_DESTRUCTIVE_DDL=false
Ejecutar el servidor
mcp-sql-server
También puedes ejecutarlo como módulo:
python -m mcp_sql_server.server
Inicio con doble click en Windows
Se incluye el archivo start_mcp_sql_server.bat para facilitar el arranque:
- Crea
.venvautomáticamente (si no existe). - Instala/actualiza dependencias.
- Levanta el servidor MCP.
Solo haz doble click en ese .bat.
Configuración en un cliente MCP (ejemplo genérico)
{
"mcpServers": {
"sql-dev": {
"command": "mcp-sql-server",
"env": {
"MCP_SQL_DATABASE_URL": "sqlite:///./dev.db",
"MCP_SQL_MAX_ROWS": "200",
"MCP_SQL_ALLOW_DESTRUCTIVE_DDL": "false"
}
}
}
}
Flujo recomendado
sql_capabilitiespara verificar configuración activa.sql_list_tablespara explorar el esquema.sql_describe_tablepara inspeccionar metadatos.sql_runpara consultas o DML puntual.sql_run_scriptpara lotes de cambios controlados.
Buenas prácticas para desarrollo asistido
- Usa usuarios de base de datos con privilegios mínimos.
- Trabaja sobre una DB local de desarrollo o snapshot desechable.
- Mantén
MCP_SQL_ALLOW_DESTRUCTIVE_DDL=falsepor defecto. - Versiona cambios estructurales con migraciones.
Nota de seguridad
Este proyecto no está endurecido para producción. Está orientado a productividad local en entornos de desarrollo.
Guía Claude en VS Code
Revisa README_CLAUDE_VSCODE.md para un ejemplo completo de configuración y uso.