{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.arzharch/pgops-mcp","description":"Safe, audited PostgreSQL operations for AI agents: queries, migrations, EXPLAIN, containers","title":"pgops","repository":{"url":"https://github.com/arzharch/pgops-mcp","source":"github"},"version":"0.1.9","packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"pgops-mcp","version":"0.1.9","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"PostgreSQL connection string for the database to operate on.","isRequired":true,"isSecret":true,"name":"PGOPS_DSN"},{"description":"Optional separate DSN for the read-only pool. Use a role with no write grants to enforce read-only at the database rather than only in the server.","isSecret":true,"name":"PGOPS_READONLY_DSN"},{"description":"Set to 1 to withhold every mutating tool. Write tools are not registered at all, so an agent cannot call them.","default":"0","name":"PGOPS_READ_ONLY"},{"description":"Set to 1 to register container.restart and container.exec. Off by default: Docker socket access is root-equivalent on the host.","default":"0","name":"PGOPS_APPROVAL_MODE"},{"description":"Path to the append-only JSONL audit log.","default":"~/.pgops/audit.jsonl","name":"PGOPS_AUDIT_LOG"},{"description":"Statement timeout applied to every query unless a tool call overrides it.","default":"5000","name":"PGOPS_DEFAULT_TIMEOUT_MS"},{"description":"Ceiling a caller-supplied timeout is clamped to.","default":"30000","name":"PGOPS_MAX_TIMEOUT_MS"},{"description":"Rows returned by query.read when the caller does not specify a limit.","default":"100","name":"PGOPS_DEFAULT_ROW_LIMIT"}]},{"registryType":"oci","identifier":"ghcr.io/arzharch/pgops-mcp:0.1.9","transport":{"type":"stdio"},"environmentVariables":[{"description":"PostgreSQL connection string. From inside a container, localhost is the container itself — use host.docker.internal or the compose service name.","isRequired":true,"isSecret":true,"name":"PGOPS_DSN"},{"description":"Set to 1 to withhold every mutating tool.","default":"0","name":"PGOPS_READ_ONLY"},{"description":"Path to the audit log inside the container. Mount a volume at this path or the log dies with the container.","default":"/var/lib/pgops/audit.jsonl","name":"PGOPS_AUDIT_LOG"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-01T16:36:02.044156Z","publishedAt":"2026-09-01T16:36:02.044156Z","updatedAt":"2026-09-01T16:36:02.044156Z","isLatest":true}}}
