Skip to main content
Glama
arzharch

pgops-mcp

by arzharch

pgops-mcp

Un servidor MCP de grado de producción que brinda a los agentes de IA un control seguro, auditado y de nivel experto sobre una base de datos PostgreSQL real y el stack de Docker que la rodea: sin comandos de shell, sin scripts de Python, solo herramientas.

Por qué

Los servidores MCP de Postgres existentes son envoltorios de consultas simples: introspect + SELECT. Ninguno maneja migraciones con análisis de impacto de bloqueos, ninguno diagnostica el rendimiento desde EXPLAIN + pg_stat_statements, ninguno entiende el entorno contenedorizado en el que vive la base de datos. Los agentes que operan bases de datos hoy en día están volando a ciegas y de forma insegura.

pgops-mcp es el cerebro de operaciones: inteligencia de esquema → consultas protegidas → motor de migraciones → diagnóstico de rendimiento → conciencia del entorno, con una arquitectura de seguridad que hace que cada acción sea clasificable, confirmable y auditable.

Related MCP server: PostgreSQL MCP Server

Superficie de herramientas (v0.1)

Grupo

Herramientas

Esquema

schema.inspect

Consultas

query.read, query.write (protegida), query.explain (plan analizado + veredicto)

Rendimiento

index.advise, db.health

Migraciones

migration.plan (dry-run + análisis de bloqueos), migration.apply, migration.history

Entorno

env.topology, env.correlate, container.logs, container.stats

Restringido

container.restart, container.exec

* No se registran en absoluto a menos que el servidor se ejecute con --approval-mode, e incluso entonces cada llamada necesita un token de confirmación. container.exec además impone una lista blanca de comandos de diagnóstico de solo lectura: no ofrece un shell. El socket de Docker es equivalente a root en el host, por lo que el acceso predeterminado es de solo lectura.

Modelo de seguridad (el diferenciador principal)

  • Roles de conexión separados de solo lectura / lectura-escritura; las herramientas se vinculan al rol correcto

  • Clasificación de declaraciones antes de la ejecución: se bloquean DELETE/UPDATE sin límite

  • Las acciones destructivas requieren tokens de confirmación explícitos

  • Cada declaración ejecutada se registra en un registro de auditoría de solo anexión con tiempo y veredicto

  • Cancelación de consultas descontroladas con niveles de tiempo de espera

Superficie MCP

Primitiva

Qué hay aquí

Herramientas

13 — schema, query, explain, advise, migrate, environment

Recursos

pgops://schema, schema/summary, schema/{table}, health, migrations, audit/recent, config

Prompts

diagnose-slow-query, plan-safe-migration, incident-triage, review-index-health, explain-safety-model

Elicitación

Las acciones peligrosas preguntan directamente al usuario, no a través del agente; los tokens de confirmación son el respaldo

Progreso / registro

Notificaciones de mejor esfuerzo durante operaciones largas

Acceso remoto y tokens de agente

stdio no necesita autenticación: el servidor es un subproceso que tu cliente inicia, sin puerto abierto. HTTP sí la necesita, por lo que se niega a iniciar sin una clave:

pgops-mcp keygen                                    # RS256 keypair
pgops-mcp issue-token --subject my-agent            # read-only by default
pgops-mcp issue-token --subject deploy-bot --scope pgops:read --scope pgops:write
pgops-mcp scopes                                    # which scope each tool needs

pgops-mcp --transport http --public-key ~/.pgops/keys/pgops_public.pem

El servidor solo tiene la clave pública, por lo que puede verificar tokens pero nunca acuñarlos. Los ámbitos (pgops:read / pgops:write / pgops:admin) se asignan a los mismos niveles de peligro que las protecciones, y una herramienta sin entrada de ámbito requiere admin — denegar por defecto. Se vincula a loopback a menos que se indique lo contrario.

Inicio rápido

uv sync
# point at your local Postgres in Docker:
export PGOPS_DSN="postgresql://user:pass@localhost:5432/mydb"
uv run pgops-mcp            # stdio transport for Claude Desktop / Cursor / VS Code

Añade a Claude Desktop:

{
  "mcpServers": {
    "pgops": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/pgops-mcp", "pgops-mcp"]
    }
  }
}

Documentación

Estado

Fases 0–6b completas (319 pruebas, cada protección, veredicto y regla de impacto de bloqueo probados contra Postgres real mediante testcontainers — sin mocks — además de suites de extremo a extremo que ejecutan el servidor como un subproceso MCP real sobre stdio y como un servidor HTTP autenticado).

Fase

Estado

Herramientas

0 · Bootstrap

stack de desarrollo sembrado (pedidos de 1.2M filas), CI, puertas de lint/tipos

1 · Núcleo de conexión + ruta de lectura

schema.inspect, query.read, db.health

2 · Ruta de escritura + seguridad

query.write, protecciones, tokens de confirmación, registro de auditoría

3 · Cerebro de rendimiento

query.explain (veredictos de plan), index.advise

4 · Motor de migraciones

migration.plan (análisis de bloqueos + dry-run), apply, history

5 · Capa de Docker

env.topology, env.correlate, container.logs/stats/restart/exec

6a · Completitud MCP

recursos, prompts, elicitación, progreso

6b · Remoto + autenticación

transporte HTTP, JWT, tokens de agente con ámbitos, CLI de keygen

6c · Empaquetado

next

PyPI, Smithery, registro MCP

migration.rollback está deliberadamente aún abierto — consulta docs/TOOLS.md.

Ejemplo de lo que devuelve migration.plan para un cambio de tipo en los orders de 1.2M filas:

ALTER TABLE "orders" ALTER COLUMN "total_cents" TYPE bigint
  op=table_rewrite  risk=high  estimate=4800ms  confidence=medium
  why:   rewrites every row and rebuilds every index, holding AccessExclusiveLock
  SAFER: add a new column of the target type, backfill in batches, sync with a
         trigger, swap the names, then drop the old column

Inicia rápidamente la base de datos de desarrollo (puerto del host 5433, para evitar colisionar con un Postgres local en 5432):

docker compose up -d
export PGOPS_DSN="postgresql://pgops:pgops_dev@localhost:5433/pgops_demo"
uv run pgops-mcp --selfcheck
A
license - permissive license
Not graded
quality - not tested
B
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.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with PostgreSQL databases through schema intelligence, query execution, and DBA tooling including index analysis and health monitoring. Features configurable access levels and audit logging for secure database operations.
    539
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to safely interact with PostgreSQL databases, perform queries, inspect schemas, and analyze query performance.
    2

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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/arzharch/pgops-mcp'

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