{"servers":[{"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.2","packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"pgops-mcp","version":"0.1.2","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.2","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-08-26T21:51:40.235572Z","publishedAt":"2026-08-26T21:51:40.235572Z","updatedAt":"2026-08-26T21:51:40.235572Z","isLatest":false}}},{"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.3","packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"pgops-mcp","version":"0.1.3","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.3","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-08-28T15:48:04.003891Z","publishedAt":"2026-08-28T15:48:04.003891Z","updatedAt":"2026-08-28T15:48:04.003891Z","isLatest":false}}},{"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.4","packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"pgops-mcp","version":"0.1.4","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.4","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-08-28T16:37:38.781514Z","publishedAt":"2026-08-28T16:37:38.781514Z","updatedAt":"2026-08-28T16:37:38.781514Z","isLatest":false}}},{"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.5","packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"pgops-mcp","version":"0.1.5","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.5","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-08-28T17:33:07.662687Z","publishedAt":"2026-08-28T17:33:07.662687Z","updatedAt":"2026-08-28T17:33:07.662687Z","isLatest":false}}},{"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.6","packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"pgops-mcp","version":"0.1.6","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.6","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-08-28T18:42:34.452954Z","publishedAt":"2026-08-28T18:42:34.452954Z","updatedAt":"2026-08-28T18:42:34.452954Z","isLatest":false}}},{"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.7","packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"pgops-mcp","version":"0.1.7","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.7","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-08-28T21:55:35.122967Z","publishedAt":"2026-08-28T21:55:35.122967Z","updatedAt":"2026-08-28T21:55:35.122967Z","isLatest":false}}},{"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.8","packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"pgops-mcp","version":"0.1.8","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.8","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-01T13:59:40.062214Z","publishedAt":"2026-09-01T13:59:40.062214Z","updatedAt":"2026-09-01T13:59:40.062214Z","isLatest":false}}},{"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}}}],"metadata":{"count":8}}
