Skip to main content

postgres-mcp

PostgreSQL MCP Pro — expone PostgreSQL como servidor MCP para que agentes de IA realicen health checks, tuning de índices, exploración de esquema y ejecución segura de SQL.

Aller à l'installation

Informations de source

Dépôt
Ntizar/NtizarBrainMasterMind
Dernière activité de la source
26 juin 2026 à 12:05
Langue détectée de SKILL.md
espagnol
Étoiles
2
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
postgres-mcp
description
PostgreSQL MCP Pro — expone PostgreSQL como servidor MCP para que agentes de IA realicen health checks, tuning de índices, exploración de esquema y ejecución segura de SQL.
version
1.0.0
author
Hermes Agent
license
MIT
platforms
["linux","macos","windows"]
metadata
{"hermes":{"tags":["postgres","mcp","database","sql","monitoring","performance"],"category":"devops"}}
# postgres-mcp — PostgreSQL como Servidor MCP ## Cuándo usar - Un agente IA necesita interactuar con PostgreSQL de forma segura y programática - Necesitas health checks, index tuning y query analysis sin acceso directo a la BD - Quieres exponer PostgreSQL como herramientas MCP para agentes LLM - Necesitas modo restricted (solo lectura) para entornos de producción ## Cuándo NO usar - No usas PostgreSQL → este skill es específico de PostgreSQL - El agente ya tiene acceso directo a la BD → MCP añade capa innecesaria - Necesitas escritura arbitraria sin validación → el modo restricted lo impide ## Instalación ```bash # Docker (recomendado) docker pull crystaldba/postgres-mcp # pipx pipx install postgres-mcp # uv uv pip install postgres-mcp ``` ## Configuración ```bash # Variable obligatoria DATABASE_URI=postgresql://user:pass@host:5432/dbname # Opcional (para LLM optimization experimental) OPENAI_API_KEY=tu_key ``` ## Transportes MCP - **stdio** (default) — clientes locales - **SSE** — múltiples clientes compartidos - **Streamable HTTP** — transporte moderno ## 9 Herramientas MCP | Herramienta | Descripción | Modo | |-------------|-------------|------| | `list_schemas` | Lista schemas de la BD | Solo lectura | | `list_objects` | Lista tablas, vistas, secuencias, extensiones | Solo lectura | | `get_object_details` | Columnas, constraints, índices de un objeto | Solo lectura | | `execute_sql` | Ejecuta SQL arbitrario | Depende del modo | | `explain_query` | EXPLAIN con soporte hypopg y ANALYZE | Solo lectura | | `get_top_queries` | Queries más lentos desde pg_stat_statements | Solo lectura | | `analyze_workload_indexes` | Recomienda índices óptimos (DTA o LLM) | Solo lectura | | `analyze_query_indexes` | Analiza hasta 10 queries y recomienda índices | Solo lectura | | `analyze_db_health` | Health checks completos | Solo lectura | ## Modos de Acceso ```bash # Desarrollo — lectura/escritura completa postgres-mcp --access-mode=unrestricted # Producción — solo lectura con protecciones postgres-mcp --access-mode=restricted ``` ## Seguridad en modo Restricted - **SafeSqlDriver** con pglast para validación AST - Whitelist de ~500+ funciones SQL permitidas - Whitelist de ~70 extensiones PostgreSQL - Timeout por defecto 30s - `force_readonly=True` en conexiones - Rechaza COMMIT, ROLLBACK, locking clauses ## Extensiones Requeridas (para tuning) - **pg_stat_statements** — estadísticas de queries - **hypopg** — simulación de índices hipotéticos ## Algoritmos de Indexación ### 1. DTA (Database Tuning Advisor) Algoritmo greedy basado en el "Anytime Algorithm" de Microsoft SQL Server: - Identifica queries candidatos para tuning - Genera candidatos de índices (combinaciones de columnas) - Búsqueda greedy con análisis Pareto (costo vs beneficio) - Usa `hypopg` para simular impacto antes de crear índices - Parámetros: `max_index_size_mb`, `max_runtime_seconds=30`, `max_index_width=3`, `pareto_alpha=2.0` ### 2. LLM Optimizer (experimental) - Usa GPT-4o vía `instructor` para generar sugerencias de índices - Iterativo: LLM sugiere → hypopg evalúa → feedback al LLM - Requiere `OPENAI_API_KEY` - Máximo 5 intentos sin progreso antes de parar ## Health Checks (adaptados de PgHero) | Check | Qué verifica | |-------|-------------| | **index** | Índices inválidos, duplicados, bloated, no usados | | **buffer** | Hit rate del buffer cache (tablas e índices) | | **connection** | Número y utilización de conexiones | | **vacuum** | Salud de VACUUM, riesgo de transaction ID wraparound | | **sequence** | Secuencias cerca de exceder su valor máximo | | **replication** | Lag entre primary/replicas, status, slots | | **constraint** | Constraints inválidos | ## Casos de Uso para Mastermind 1. Exploración de esquema por agentes 2. Diagnóstico de rendimiento automático 3. Optimización de índices basada en carga real 4. Debugging de queries con EXPLAIN + índices hipotéticos 5. Monitoreo proactivo con health checks ## Recursos - GitHub: https://github.com/crystaldba/postgres-mcp - Licencia: MIT - Docker: `crystaldba/postgres-mcp`
Voir sur GitHub