Isthmus
Servidor MCP local que conecta modelos de IA a cualquier base de datos PostgreSQL. Descubre esquemas, explora relaciones, perfila tablas y ejecuta consultas SQL de solo lectura, enmascaramiento de columnas por políticas,... todo funcionando localmente.
Documentación
Isthmus
El servidor MCP para tu base de datos
Documentación · Inicio rápido · Instalación · Problemas
Isthmus es un servidor local MCP que brinda a los modelos de IA acceso seguro y de solo lectura a tu base de datos PostgreSQL. Un solo binario, se ejecuta en tu máquina, las credenciales nunca salen de ella.
Inicio rápido
# 1. Install (pick one)
curl -fsSL https://isthmus.dev/install.sh | sh # install script
docker pull guillermosasso/isthmus # or Docker Hub
# 2. Add to your MCP client config (Claude Desktop example)
{
"mcpServers": {
"isthmus": {
"command": "isthmus",
"env": {
"DATABASE_URL": "postgres://user:pass@localhost:5432/mydb"
}
}
}
}
# 3. Ask your AI: "What tables are in my database?"
Consulta la guía de inicio rápido para la configuración paso a paso con Claude Desktop, Cursor, Windsurf y más.
Docker
Las imágenes se publican en Docker Hub en cada versión (linux/amd64 y linux/arm64).
docker run --rm \
-e DATABASE_URL="postgres://user:pass@host.docker.internal:5432/mydb" \
guillermosasso/isthmus
O fija una versión específica:
docker pull guillermosasso/isthmus:0.1.1
Para usar con Claude Desktop, apunta la configuración de MCP al contenedor:
{
"mcpServers": {
"isthmus": {
"command": "docker",
"args": ["run", "--rm", "-i",
"-e", "DATABASE_URL=postgres://user:pass@host.docker.internal:5432/mydb",
"guillermosasso/isthmus"
]
}
}
}
Características
- Descubrimiento de esquemas — explora esquemas, tablas, columnas, claves foráneas e índices (documentación)
- Consultas de solo lectura — ejecuta SQL con límites de filas y tiempos de espera en el servidor (documentación)
- Enmascaramiento de columnas — protege la PII con máscaras de redacción, hash, parciales o nulas por columna — aplicadas en el servidor (documentación)
- Motor de políticas — enriquece tu esquema con contexto empresarial para que la IA escriba mejor SQL (documentación)
- Validación de SQL — lista blanca a nivel de AST mediante el analizador
pg_query— solo se permitenSELECTyEXPLAIN(documentación) - Transporte HTTP — sirve MCP sobre HTTP para clientes web, ChatGPT Desktop y acceso remoto (documentación)
- OpenTelemetry — trazado distribuido y métricas para el rendimiento de consultas y la supervisión de errores (documentación)
- Funciona con cualquier cliente MCP — Claude Desktop, Cursor, Windsurf, Gemini CLI, VS Code, ChatGPT Desktop (configuración de clientes)
Cómo funciona
flowchart TB
Claude["Claude Desktop"] & Cursor["Cursor / VS Code"] -->|stdio| STDIO
ChatGPT["ChatGPT / Web"] -->|HTTP| HTTP
subgraph Transport["Transport"]
STDIO["stdio"]
HTTP["HTTP + Auth"]
end
STDIO & HTTP --> Router
subgraph Tools["MCP Tools"]
Router{{"router"}}
Router --> Discover["discover"]
Router --> Describe["describe_table"]
Router --> Query["query"]
end
Discover & Describe --> Explorer
subgraph Schema["Schema Explorer"]
Explorer["Catalog Introspection"]
Explorer --> Policy["Policy Engine"]
end
Query --> Validate
subgraph Security["Security Pipeline"]
direction TB
Validate["AST Validation"] --> ReadOnly["Read-Only Tx"]
ReadOnly --> RowLimit["Row Limit"]
RowLimit --> Timeout["Timeout"]
end
Security --> PG[("PostgreSQL")]
Schema --> PG
PG --> Mask
subgraph Post["Post-Processing"]
direction TB
Mask["PII Masking"] --> Sanitize["Error Sanitization"]
end
Post -.-> Audit["Audit Log"]
Post -.-> OTel["OpenTelemetry"]
Post --> Response["Safe Response"]
Response --> Claude & Cursor & ChatGPT
classDef client fill:#e8f4f8,stroke:#2196F3,color:#1565C0
classDef transport fill:#fff3e0,stroke:#FF9800,color:#E65100
classDef tools fill:#e8eaf6,stroke:#3F51B5,color:#283593
classDef security fill:#fce4ec,stroke:#E53935,color:#b71c1c
classDef explorer fill:#e8f5e9,stroke:#4CAF50,color:#1B5E20
classDef postproc fill:#f3e5f5,stroke:#9C27B0,color:#4A148C
classDef db fill:#fff8e1,stroke:#FFC107,color:#F57F17
classDef obs fill:#eceff1,stroke:#607D8B,color:#37474F
classDef response fill:#e0f2f1,stroke:#009688,color:#004D40
class Claude,Cursor,ChatGPT client
class STDIO,HTTP transport
class Router,Discover,Describe,Query tools
class Validate,ReadOnly,RowLimit,Timeout security
class Explorer,Policy explorer
class Mask,Sanitize postproc
class PG db
class Audit,OTel obs
class Response response
Isthmus se sitúa entre tu cliente de IA y tu base de datos. Cada solicitud pasa por un pipeline de seguridad — el SQL se valida a nivel de AST usando el propio analizador de PostgreSQL, las consultas se ejecutan en transacciones de solo lectura con límites de filas y tiempos de espera en el servidor, y las columnas con PII se enmascaran antes de que los resultados lleguen a la IA. El motor de políticas enriquece los metadatos del esquema con contexto empresarial para que la IA escriba mejor SQL. Toda la actividad se registra en un registro de auditoría de solo anexión con trazado opcional de OpenTelemetry.
Herramientas MCP
| Herramienta | Qué hace |
|---|---|
list_schemas | Descubre los esquemas de base de datos disponibles |
list_tables | Tablas con recuentos de filas, tamaños y descripciones |
describe_table | Columnas, tipos, claves, índices y estadísticas |
profile_table | Análisis profundo: filas de muestra, uso de disco, relaciones inferidas |
query | Ejecuta SQL de solo lectura, resultados como JSON |
explain_query | Planes de ejecución de PostgreSQL con ANALYZE opcional |
Referencia completa: isthmus.dev/tools/overview
Documentación
Visita isthmus.dev para la documentación completa:
- Instalación — binarios precompilados,
go install, Docker - Configuración — variables de entorno, banderas de CLI, referencia completa
- Configuración de clientes — Claude Desktop, Cursor, Windsurf, Gemini CLI, VS Code
- Enmascaramiento de columnas — protección de PII con redacción, hash, parcial, nulo
- Motor de políticas — contexto empresarial, filtrado de esquemas
- Referencia de herramientas — qué hace cada herramienta y cómo la usa la IA
Contribuciones
Consulta CONTRIBUTING.md. Necesitarás Go 1.25+ y Docker para las pruebas de integración.
make build # Build binary
make test # All tests (needs Docker)
make test-short # Unit tests only
make lint # Lint