Loading…
Safe, audited PostgreSQL operations for AI agents: queries, migrations, EXPLAIN, containers
pgops is an MCP server entry in ChatHome Skills, sourced from Official MCP Registry and scored 73/100. As a Model Context Protocol server, it exposes tools that MCP-compatible LLM clients such as Claude, Cursor, and Copilot can call directly, extending an agent's reach beyond its built-in capabilities. ChatHome Skills discovered this entry through its daily ingest of official registries and GitHub discovery queries, and re-verifies repository facts, freshness signals, and install metadata on every run. The quality score weighs official-registry presence, a working install command, license clarity, GitHub star trajectory, and repository freshness — the full formula is on the Sources page. The install command above is ready to copy. Review the last-pushed date and repository status before adding pgops to a production agent workflow; the snapshot facts below are point-in-time values from the most recent ingest.
uvx pgops-mcp==0.1.9Review the upstream source before running this command.
{
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"isLatest": true,
"updatedAt": "2026-09-01T16:36:02.044156Z",
"publishedAt": "2026-09-01T16:36:02.044156Z",
"statusChangedAt": "2026-09-01T16:36:02.044156Z"
}
},
"server": {
"name": "io.github.arzharch/pgops-mcp",
"title": "pgops",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "0.1.9",
"packages": [
{
"version": "0.1.9",
"transport": {
"type": "stdio"
},
"identifier": "pgops-mcp",
"runtimeHint": "uvx",
"registryType": "pypi",
"registryBaseUrl": "https://pypi.org",
"environmentVariables": [
{
"name": "PGOPS_DSN",
"isSecret": true,
"isRequired": true,
"description": "PostgreSQL connection string for the database to operate on."
},
{
"name": "PGOPS_READONLY_DSN",
"isSecret": true,
"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."
},
{
"name": "PGOPS_READ_ONLY",
"default": "0",
"description": "Set to 1 to withhold every mutating tool. Write tools are not registered at all, so an agent cannot call them."
},
{
"name": "PGOPS_APPROVAL_MODE",
"default": "0",
"description": "Set to 1 to register container.restart and container.exec. Off by default: Docker socket access is root-equivalent on the host."
},
{
"name": "PGOPS_AUDIT_LOG",
"default": "~/.pgops/audit.jsonl",
"description": "Path to the append-only JSONL audit log."
},
{
"name": "PGOPS_DEFAULT_TIMEOUT_MS",
"default": "5000",
"description": "Statement timeout applied to every query unless a tool call overrides it."
},
{
"name": "PGOPS_MAX_TIMEOUT_MS",
"default": "30000",
"description": "Ceiling a caller-supplied timeout is clamped to."
},
{
"name": "PGOPS_DEFAULT_ROW_LIMIT",
"default": "100",
"description": "Rows returned by query.read when the caller does not specify a limit."
}
]
},
{
"transport": {
"type": "stdio"
},
"identifier": "ghcr.io/arzharch/pgops-mcp:0.1.9",
"registryType": "oci",
"environmentVariables": [
{
"name": "PGOPS_DSN",
"isSecret": true,
"isRequired": true,
"description": "PostgreSQL connection string. From inside a container, localhost is the container itself — use host.docker.internal or the compose service name."
},
{
"name": "PGOPS_READ_ONLY",
"default": "0",
"description": "Set to 1 to withhold every mutating tool."
},
{
"name": "PGOPS_AUDIT_LOG",
"default": "/var/lib/pgops/audit.jsonl",
"description": "Path to the audit log inside the container. Mount a volume at this path or the log dies with the container."
}
]
}
],
"repository": {
"url": "https://github.com/arzharch/pgops-mcp",
"source": "github"
},
"description": "Safe, audited PostgreSQL operations for AI agents: queries, migrations, EXPLAIN, containers"
}
}