Skip to main content
Glama
alegonzjur

MCP SQL Server

by alegonzjur

mcp-sql-server

Servidor MCP (Model Context Protocol) genérico de solo lectura sobre bases de datos SQL (SQLite o PostgreSQL), construido con el SDK oficial de Python (mcp) y SQLAlchemy.

Es la evolución natural de sql_tools.py del proyecto Marvel Intelligence Assistant: la misma lógica de guardrails (solo SELECT, whitelist de tablas, LIMIT forzado, timeout), pero expuesta como servidor MCP estándar en vez de LangChain StructuredTools — lo que significa que puede ser usado no solo por ese proyecto, sino por Claude Desktop, Claude Code o cualquier otro cliente compatible con MCP, sin reescribir nada.

Tools expuestas

Tool

Descripción

list_tables

Lista las tablas disponibles (respetando whitelist si está configurada)

describe_table(table_name)

Devuelve columnas y tipos de una tabla

run_query(sql, limit)

Ejecuta un SELECT de solo lectura y devuelve resultado en tabla

Related MCP server: mcp-multi-db

Guardrails aplicados

  1. Solo se permiten sentencias SELECT (bloquea INSERT/UPDATE/DELETE/DROP/ALTER/etc.)

  2. No se permiten múltiples sentencias en una misma query

  3. Whitelist opcional de tablas accesibles vía ALLOWED_TABLES

  4. LIMIT forzado si el usuario no lo especifica (con tope máximo configurable)

  5. Timeout de ejecución por query

Instalación

python -m venv venv
# Windows: venv\Scripts\activate
source venv/bin/activate
pip install -r requirements.txt

Configuración (variables de entorno)

Variable

Descripción

Por defecto

DB_URL

Cadena de conexión SQLAlchemy

sqlite:///./marvel.db

ALLOWED_TABLES

Tablas permitidas, separadas por coma

todas

QUERY_TIMEOUT_S

Timeout por query (segundos)

10

DEFAULT_LIMIT

Límite de filas por defecto

50

MAX_LIMIT

Límite máximo de filas

500

Ejemplos de DB_URL:

  • SQLite: sqlite:///C:/ruta/a/marvel.db

  • PostgreSQL: postgresql+psycopg2://usuario:password@localhost:5432/mi_bd

Probar contra tu marvel.db real

export DB_URL="sqlite:///C:/ruta/a/tu/marvel.db"   # Windows: usa la sintaxis de tu shell
python server.py

Conectarlo a Claude Desktop

Añade esto a tu claude_desktop_config.json (Windows: %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "sql-readonly": {
      "command": "C:\\ruta\\a\\mcp-sql-server\\venv\\Scripts\\python.exe",
      "args": ["C:\\ruta\\a\\mcp-sql-server\\server.py"],
      "env": {
        "DB_URL": "sqlite:///C:/ruta/a/marvel.db"
      }
    }
  }
}

Reinicia Claude Desktop y podrás preguntarle directamente sobre tu base de datos ("¿qué tablas hay?", "dime las 5 películas con más ingresos") usando estas tools.

Relación con Marvel Intelligence Assistant

Este servidor reutiliza el mismo diseño de guardrails que sql_guardrails.py del proyecto Marvel, pero desacoplado del router de LangChain. La idea de portfolio es poder decir:

"Mi SQL agent en Marvel Intelligence Assistant usa LangChain StructuredTools de forma nativa. Además, construí una versión de esas mismas herramientas como servidor MCP independiente, reutilizable desde cualquier cliente compatible (Claude Desktop, Claude Code, u otros agentes), no solo desde mi router."

Reutilización en otros proyectos (n8n + MCP + RAG)

Este mismo servidor (apuntando a otra BBDD en vez de Marvel) es la pieza de "datos estructurados en vivo" de otro proyecto combinado más adelante: n8n dispara el flujo, el agente usa este MCP para consultar datos en tiempo real, y un componente RAG aporta el contexto documental (informes técnicos, normativa) para el análisis final.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alegonzjur/MCP-SQL-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server