{"_id":"@dockndevai/mcp-percona-pg","_rev":"8-2f6a45430e8d4e7581fb7e68a3ea019d","name":"@dockndevai/mcp-percona-pg","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@dockndevai/mcp-percona-pg","version":"0.1.0","keywords":["mcp","model-context-protocol","percona","postgresql","postgres","pgbouncer","kubernetes","database","devops","llm","ai"],"license":"MIT","_id":"@dockndevai/mcp-percona-pg@0.1.0","maintainers":[{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"}],"homepage":"https://github.com/dockndevai/mcp-percona-pg#readme","bugs":{"url":"https://github.com/dockndevai/mcp-percona-pg/issues"},"bin":{"mcp-percona-pg":"dist/index.js"},"dist":{"shasum":"ac562812b379336fbbb049cacb8d1547a3204ff6","tarball":"https://registry.npmjs.org/@dockndevai/mcp-percona-pg/-/mcp-percona-pg-0.1.0.tgz","fileCount":33,"integrity":"sha512-Vdb9NrKD3+HHZIRXHqkvRcL8wHk9/Y1zSgEsYP4fOKLvVPefygkfMveTLZilM8k9dFqRi+R0A8uI9HFu0R738w==","signatures":[{"sig":"MEUCIQCCqxrftyEv+uU4QT5HKkpHJ2j7ha/fDy9NA4czdPg/GQIgCI4t77onXJ5E4LzfzH1BNjBNF0MJ+yrIrcCAAu1t9BA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dockndevai%2fmcp-percona-pg@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109580},"type":"module","engines":{"node":">=20"},"gitHead":"a421b6e7ee4415a399b44b5437f59a0171c27ed3","mcpName":"io.github.dockndevai/mcp-percona-pg","scripts":{"dev":"tsx watch src/index.ts","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","build":"tsc -p tsconfig.json","start":"node dist/index.js","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"},"repository":{"url":"git+https://github.com/dockndevai/mcp-percona-pg.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for the Percona Operator for PostgreSQL — manage PostgreSQL + PgBouncer clusters, pooling, backups/PITR, and DR with security modes and access-control flags.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.8","@kubernetes/client-node":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.2.7","typescript":"^5.6.3","@types/node":"^22.9.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-percona-pg_0.1.0_1788067658820_0.12867225872988985","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dockndevai/mcp-percona-pg","version":"0.1.1","keywords":["mcp","model-context-protocol","percona","postgresql","postgres","pgbouncer","kubernetes","database","devops","llm","ai"],"license":"MIT","_id":"@dockndevai/mcp-percona-pg@0.1.1","maintainers":[{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"}],"homepage":"https://github.com/dockndevai/mcp-percona-pg#readme","bugs":{"url":"https://github.com/dockndevai/mcp-percona-pg/issues"},"bin":{"mcp-percona-pg":"dist/index.js"},"dist":{"shasum":"9e9c4ca4b6e3d01fd57288392fba0b7019cb4525","tarball":"https://registry.npmjs.org/@dockndevai/mcp-percona-pg/-/mcp-percona-pg-0.1.1.tgz","fileCount":33,"integrity":"sha512-SOWFHxnVOU6FxIJ02E2khLTEq/J3LCWmW2y6g85zWwx/zqxvUoLqMjODwVY6VhlxLUlzwj+yy/IXH9fPZvOc7Q==","signatures":[{"sig":"MEQCIEHg39Sy8C5nHV5uY3jC9l84/7ooo1mCZ1KB0yYuGpzNAiAwQJDe+iZvg+q0cWaj7tazN39Fvb1Jka1pGYy4lLJIog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dockndevai%2fmcp-percona-pg@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109580},"type":"module","engines":{"node":">=20"},"gitHead":"0596784b1a56248b9b133bc5f1619a1cd4285f0f","mcpName":"io.github.dockndevai/mcp-percona-pg","scripts":{"dev":"tsx watch src/index.ts","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","build":"tsc -p tsconfig.json","start":"node dist/index.js","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"},"repository":{"url":"git+https://github.com/dockndevai/mcp-percona-pg.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for the Percona Operator for PostgreSQL — manage PostgreSQL + PgBouncer clusters, pooling, backups/PITR, and DR with security modes and access-control flags.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.8","@kubernetes/client-node":"^1.0.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.2.7","typescript":"^5.6.3","@types/node":"^22.9.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-percona-pg_0.1.1_1788070763109_0.06845714745910936","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dockndevai/mcp-percona-pg","version":"0.1.2","keywords":["mcp","model-context-protocol","percona","postgresql","postgres","pgbouncer","kubernetes","database","devops","llm","ai"],"license":"MIT","_id":"@dockndevai/mcp-percona-pg@0.1.2","maintainers":[{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"}],"homepage":"https://github.com/dockndevai/mcp-percona-pg#readme","bugs":{"url":"https://github.com/dockndevai/mcp-percona-pg/issues"},"bin":{"mcp-percona-pg":"dist/index.js"},"dist":{"shasum":"671bdf44cd65dd64256967ea21fc6e79d5876127","tarball":"https://registry.npmjs.org/@dockndevai/mcp-percona-pg/-/mcp-percona-pg-0.1.2.tgz","fileCount":33,"integrity":"sha512-MQt1RnQF1wjZ+b3Iwdt5uDlBn4BPPjZSm3QW/SEebg21DF+CBgV6wOy3RumHV4yWFSZfZJZwO6Qa5hje1uT4BQ==","signatures":[{"sig":"MEUCIGZ8fU4TGQfQNxImnRaFHEg0/UUGzb+SJqfWbQz4z571AiEAy2pabmqoCnUNt/yklpglzQkNgWaGZL+hm+rjpGWscIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dockndevai%2fmcp-percona-pg@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109580},"type":"module","engines":{"node":">=22"},"gitHead":"bc9ac6abbb3429a94373ad71384834f2a98347b3","mcpName":"io.github.dockndevai/mcp-percona-pg","scripts":{"dev":"tsx watch src/index.ts","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","build":"tsc -p tsconfig.json","start":"node dist/index.js","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"},"repository":{"url":"git+https://github.com/dockndevai/mcp-percona-pg.git","type":"git"},"_npmVersion":"10.9.8","description":"Model Context Protocol server for the Percona Operator for PostgreSQL — manage PostgreSQL + PgBouncer clusters, pooling, backups/PITR, and DR with security modes and access-control flags.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.8","@kubernetes/client-node":"^1.0.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^5.0.0","typescript":"^5.6.3","@types/node":"^22.9.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-percona-pg_0.1.2_1788969330134_0.13592165964649383","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@dockndevai/mcp-percona-pg","version":"0.2.0","keywords":["mcp","model-context-protocol","percona","postgresql","postgres","pgbouncer","kubernetes","database","devops","llm","ai"],"license":"MIT","_id":"@dockndevai/mcp-percona-pg@0.2.0","maintainers":[{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"}],"homepage":"https://github.com/dockndevai/mcp-percona-pg#readme","bugs":{"url":"https://github.com/dockndevai/mcp-percona-pg/issues"},"bin":{"mcp-percona-pg":"dist/index.js"},"dist":{"shasum":"af5f0f38fd7eaf424ba65a4d87fd246e410423da","tarball":"https://registry.npmjs.org/@dockndevai/mcp-percona-pg/-/mcp-percona-pg-0.2.0.tgz","fileCount":36,"integrity":"sha512-C0satFJ1PFHCZWIVEvTCwitzgqq9y9go7F/iGcwtRzKhEarlwiuF0got7M1llA3nPn4/Kl6UMB6fylYWO0hBvg==","signatures":[{"sig":"MEUCIQCH1LS59e1XJpRYZLaCH0+PP43zJ8UMCIY1hg1jvd/SUAIgCOOI7r33OdzjOjhGqB4WI1xOlNzV2cNG6wSF+StYt2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dockndevai%2fmcp-percona-pg@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117879},"type":"module","engines":{"node":">=22"},"gitHead":"9c32b6be8acd989997ea53b81168410d878efa72","mcpName":"io.github.dockndevai/mcp-percona-pg","scripts":{"dev":"tsx watch src/index.ts","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","build":"tsc -p tsconfig.json","start":"node dist/index.js","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"},"repository":{"url":"git+https://github.com/dockndevai/mcp-percona-pg.git","type":"git"},"_npmVersion":"10.9.8","description":"Model Context Protocol server for the Percona Operator for PostgreSQL — manage PostgreSQL + PgBouncer clusters, pooling, backups/PITR, and DR with security modes and access-control flags.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.8","@kubernetes/client-node":"^1.0.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^5.0.0","typescript":"^5.6.3","@types/node":"^22.9.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-percona-pg_0.2.0_1788981929795_0.04923515295582681","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@dockndevai/mcp-percona-pg","version":"0.2.1","keywords":["mcp","model-context-protocol","percona","postgresql","postgres","pgbouncer","kubernetes","database","devops","llm","ai"],"license":"MIT","_id":"@dockndevai/mcp-percona-pg@0.2.1","maintainers":[{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"}],"homepage":"https://github.com/dockndevai/mcp-percona-pg#readme","bugs":{"url":"https://github.com/dockndevai/mcp-percona-pg/issues"},"bin":{"mcp-percona-pg":"dist/index.js"},"dist":{"shasum":"46e897fc095a10a741d9f566088c1526d96c37dc","tarball":"https://registry.npmjs.org/@dockndevai/mcp-percona-pg/-/mcp-percona-pg-0.2.1.tgz","fileCount":36,"integrity":"sha512-/LeBMdmEEGe2u4XZbmCjVRxzKQ6YIFvgJUAMOf2VDjQEGr2V84U+PiHBN2MpuNoDgOy+FKfo2CrY/lF9I1LQiw==","signatures":[{"sig":"MEUCIQCaG91CUgPyb47yfo6ZgSQvkiljo6ei+ipIfTnKmNPvIQIgdcSZ3YmN1QlNcPbuhPOb4IPt33Ci24GcXOUcx0kCZ1Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dockndevai%2fmcp-percona-pg@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118090},"type":"module","engines":{"node":">=22"},"gitHead":"52088e54f4345fbed621aa95364ae7341c5efc56","mcpName":"io.github.dockndevai/mcp-percona-pg","scripts":{"dev":"tsx watch src/index.ts","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","build":"tsc -p tsconfig.json","start":"node dist/index.js","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"},"repository":{"url":"git+https://github.com/dockndevai/mcp-percona-pg.git","type":"git"},"_npmVersion":"10.9.8","description":"Model Context Protocol server for the Percona Operator for PostgreSQL — manage PostgreSQL + PgBouncer clusters, pooling, backups/PITR, and DR with security modes and access-control flags.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.8","@kubernetes/client-node":"^1.0.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^5.0.0","typescript":"^5.6.3","@types/node":"^22.9.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-percona-pg_0.2.1_1788983061239_0.5021965716137271","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@dockndevai/mcp-percona-pg","version":"0.2.2","keywords":["mcp","model-context-protocol","percona","postgresql","postgres","pgbouncer","kubernetes","database","devops","llm","ai"],"license":"MIT","_id":"@dockndevai/mcp-percona-pg@0.2.2","maintainers":[{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"}],"homepage":"https://github.com/dockndevai/mcp-percona-pg#readme","bugs":{"url":"https://github.com/dockndevai/mcp-percona-pg/issues"},"bin":{"mcp-percona-pg":"dist/index.js"},"dist":{"shasum":"fac36779ca5fd27d8a5826cbb57c20fe5df5dc1c","tarball":"https://registry.npmjs.org/@dockndevai/mcp-percona-pg/-/mcp-percona-pg-0.2.2.tgz","fileCount":36,"integrity":"sha512-xhA2iGfuKu1ZuKIOfI2OwuHcEn+m5ZtFDL2nZvmN/kTI8rqgixR3sNNEoqqfkjPS9/XxuufUXKP58jpKXlK72Q==","signatures":[{"sig":"MEYCIQCW3jCxANslDQvyHzpq4t59XsDlH8dX5IepX/vfW7Gc+AIhANnxDBjOPDQq2E24Nze1nmkejp4xB1dMr06OsW8IahF6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dockndevai%2fmcp-percona-pg@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118081},"type":"module","engines":{"node":">=22"},"gitHead":"06193954296a728775633d1f924ec62cbb1ca68b","mcpName":"io.github.dockndevai/mcp-percona-pg","scripts":{"dev":"tsx watch src/index.ts","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","build":"tsc -p tsconfig.json","start":"node dist/index.js","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"},"repository":{"url":"git+https://github.com/dockndevai/mcp-percona-pg.git","type":"git"},"_npmVersion":"10.9.8","description":"Model Context Protocol server for the Percona Operator for PostgreSQL — manage PostgreSQL + PgBouncer clusters, pooling, backups/PITR, and DR with security modes and access-control flags.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.5.4","@kubernetes/client-node":"^1.0.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-percona-pg_0.2.2_1789235836434_0.4008437975272958","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@dockndevai/mcp-percona-pg","version":"0.2.3","keywords":["mcp","model-context-protocol","percona","postgresql","postgres","pgbouncer","kubernetes","database","devops","llm","ai"],"license":"MIT","_id":"@dockndevai/mcp-percona-pg@0.2.3","maintainers":[{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"}],"homepage":"https://github.com/dockndevai/mcp-percona-pg#readme","bugs":{"url":"https://github.com/dockndevai/mcp-percona-pg/issues"},"bin":{"mcp-percona-pg":"dist/index.js"},"dist":{"shasum":"865c55e86d58c1ba19a5acb8958064d8be70434c","tarball":"https://registry.npmjs.org/@dockndevai/mcp-percona-pg/-/mcp-percona-pg-0.2.3.tgz","fileCount":36,"integrity":"sha512-8EMEsNjZe+SVgqcN+fg6nBx9pOU+/kuNh72WCptn3PCwUFSKIZfvEgYb6MFT/E48/kzjILbP7OjNgmKRNp0yog==","signatures":[{"sig":"MEQCIGyZpurhRU/PGjJ1ratoWJr6YQUtHQpJBbDhcnpfwKH5AiB2mEbVs3C16iYcTZEUMKan/74Kpzq/ulpFeQzrQpsoig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dockndevai%2fmcp-percona-pg@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118081},"type":"module","engines":{"node":">=22"},"gitHead":"98d0aa5ac61cf58d223043198781b157848769b9","mcpName":"io.github.dockndevai/mcp-percona-pg","scripts":{"dev":"tsx watch src/index.ts","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","build":"tsc -p tsconfig.json","start":"node dist/index.js","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"},"repository":{"url":"git+https://github.com/dockndevai/mcp-percona-pg.git","type":"git"},"_npmVersion":"10.9.8","description":"Model Context Protocol server for the Percona Operator for PostgreSQL — manage PostgreSQL + PgBouncer clusters, pooling, backups/PITR, and DR with security modes and access-control flags.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.5.4","@kubernetes/client-node":"^2.0.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-percona-pg_0.2.3_1789236542301_0.645768162220747","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"_id":"@dockndevai/mcp-percona-pg@0.3.0","bin":{"mcp-percona-pg":"dist/index.js"},"bugs":{"url":"https://github.com/dockndevai/mcp-percona-pg/issues"},"dist":{"shasum":"75e651da7dce01901669eea1a992fc0b711aa2e8","tarball":"https://registry.npmjs.org/@dockndevai/mcp-percona-pg/-/mcp-percona-pg-0.3.0.tgz","fileCount":39,"integrity":"sha512-FDoeLay3sMpUFgxbeOvJ2VCSLp4KjvbBuEYVvQAGxd9JExQfA/eD2eM05XqcBXQD4F+trUBh1lc9JOmaVBDL4Q==","signatures":[{"sig":"MEQCIGYybizcr4ni3jXEJXBnFEKPFGyyw76ALz0ElWCgxlYsAiBQKA7zjWa42qtuGh7wifia3BrfR1fNIhIqDfa/PBuKag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCEmTkyjOZrFccWVIjMafmToivH0ZJ4d0CmZ5IRAOSdAgIhAJ8arovagWEXFQObfJ+z+kq9IsQdo4JnDSfdBY8qnyUV"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dockndevai%2fmcp-percona-pg@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":128098},"name":"@dockndevai/mcp-percona-pg","type":"module","engines":{"node":">=22"},"gitHead":"f30e3826fd31ba09b4689bb3ffc528f499eef2a9","license":"MIT","mcpName":"io.github.dockndevai/mcp-percona-pg","scripts":{"dev":"tsx watch src/index.ts","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","build":"tsc -p tsconfig.json","start":"node dist/index.js","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"version":"0.3.0","_npmUser":{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"},"homepage":"https://github.com/dockndevai/mcp-percona-pg#readme","keywords":["mcp","model-context-protocol","percona","postgresql","postgres","pgbouncer","kubernetes","database","devops","llm","ai"],"repository":{"url":"git+https://github.com/dockndevai/mcp-percona-pg.git","type":"git"},"_npmVersion":"10.9.8","description":"Model Context Protocol server for the Percona Operator for PostgreSQL — manage PostgreSQL + PgBouncer clusters, pooling, backups/PITR, and DR with security modes and access-control flags.","directories":{},"maintainers":[{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.5.4","@kubernetes/client-node":"^2.0.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-percona-pg_0.3.0_1790685042980_0.5790714477193759"}}},"time":{"created":"2026-08-30T05:27:38.689Z","modified":"2026-09-29T12:30:43.466Z","0.1.0":"2026-08-30T05:27:38.961Z","0.1.1":"2026-08-30T06:19:23.240Z","0.1.2":"2026-09-09T15:55:30.266Z","0.2.0":"2026-09-09T19:25:29.927Z","0.2.1":"2026-09-09T19:44:21.389Z","0.2.2":"2026-09-12T17:57:16.573Z","0.2.3":"2026-09-12T18:09:02.434Z","0.3.0":"2026-09-29T12:30:43.063Z"},"bugs":{"url":"https://github.com/dockndevai/mcp-percona-pg/issues"},"license":"MIT","homepage":"https://github.com/dockndevai/mcp-percona-pg#readme","keywords":["mcp","model-context-protocol","percona","postgresql","postgres","pgbouncer","kubernetes","database","devops","llm","ai"],"repository":{"url":"git+https://github.com/dockndevai/mcp-percona-pg.git","type":"git"},"description":"Model Context Protocol server for the Percona Operator for PostgreSQL — manage PostgreSQL + PgBouncer clusters, pooling, backups/PITR, and DR with security modes and access-control flags.","maintainers":[{"name":"dock-n-dev-ai","email":"ankitcs17071993@gmail.com"}],"readme":"# mcp-percona-pg\n\n[![CI](https://github.com/dockndevai/mcp-percona-pg/actions/workflows/ci.yml/badge.svg)](https://github.com/dockndevai/mcp-percona-pg/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)\n[![npm](https://img.shields.io/npm/v/@dockndevai/mcp-percona-pg)](https://www.npmjs.com/package/@dockndevai/mcp-percona-pg)\n\nA [Model Context Protocol](https://modelcontextprotocol.io) server for the **[Percona Operator for PostgreSQL](https://docs.percona.com/percona-operator-for-postgresql/2.0/)**. It lets an MCP-capable client (Claude Desktop, Claude Code, Cursor, …) **operate PostgreSQL + PgBouncer clusters on Kubernetes** — topology, connection pooling, tuning, backups/PITR, DR, extensions, and lifecycle — with behaviour controlled entirely by flags.\n\nIt drives the operator's custom resources (`PerconaPGCluster`, `PerconaPGBackup`, `PerconaPGRestore`, `PerconaPGUpgrade`) through your kube-config, so the model works the way you already do: *\"scale dev-pg to 3 replicas\"*, *\"switch pooling to transaction mode\"*, *\"restore prod-pg to 12:00 UTC\"*.\n\nSafe by default: it starts **read-only**, can be scoped to an allowlist of namespaces and clusters, protects critical clusters from mutation, gates restore / upgrade / delete behind separate opt-ins, and requires typed confirmation for high-impact actions. It never reads or returns database credentials.\n\n## Features\n\n- **Discovery & status** — list clusters, per-cluster summary and raw `.status` (Patroni members, PostgreSQL/PgBouncer readiness), connection endpoints, backups and restores.\n- **Connection pooling** — read and update PgBouncer `pool_mode` and the global pool tunables (`default_pool_size`, `max_client_conn`, …).\n- **PostgreSQL tuning** — read/merge parameters via `spec.patroni.dynamicConfiguration` (the only Patroni-safe path).\n- **Lifecycle** — scale PostgreSQL/PgBouncer, pause/resume, toggle built-in extensions, on-demand backups.\n- **DR & recovery** — restore / point-in-time recovery, promote a standby, major-version upgrades — each individually gated.\n\n## Security model\n\n| Layer | Flag | Effect |\n|---|---|---|\n| Access mode | `PERCONA_MODE` | `read-only` → `read-write` → `admin`; over-privileged tools are never registered |\n| Namespace/cluster allowlists | `PERCONA_NAMESPACE_ALLOWLIST`, `PERCONA_CLUSTER_ALLOWLIST` | scope what the agent can touch |\n| Protected clusters | `PERCONA_PROTECTED_CLUSTERS` | readable, never mutated/restored/deleted |\n| Restore / upgrade / delete | `PERCONA_ALLOW_RESTORE`, `PERCONA_ALLOW_UPGRADE`, `PERCONA_ALLOW_DELETE` | separate opt-ins on top of admin mode |\n| Confirmation | `PERCONA_REQUIRE_CONFIRMATION` | high-impact ops require echoing the cluster name |\n| Dry-run / audit | `PERCONA_DRY_RUN`, `PERCONA_AUDIT_LOG` | validate-only; JSON audit line per guarded op |\n| Interactive confirmation | *(automatic)* | destructive & high-impact ops prompt the human to approve via MCP elicitation before running; fall back to the `PERCONA_ALLOW_*` gates when the client can't elicit |\n\n## Tools\n\n**Read** (`read-only`+): `list_contexts`, `list_clusters`, `get_cluster`, `get_cluster_status`, `get_connection_info`, `get_pgbouncer_config`, `get_pg_parameters`, `list_backups`, `list_restores`\n\n**Write** (`read-write`+): `scale_cluster`, `set_pgbouncer_config`, `set_pg_parameters`, `pause_cluster`, `toggle_builtin_extension`, `create_backup`\n\n**Admin** (`admin`): `restore_cluster` (needs `PERCONA_ALLOW_RESTORE`), `upgrade_cluster` (needs `PERCONA_ALLOW_UPGRADE`), `promote_standby`, `delete_backup` / `delete_cluster` (need `PERCONA_ALLOW_DELETE`)\n\n## Quickstart — add to your agent\n\nPublished on npm as [`@dockndevai/mcp-percona-pg`](https://www.npmjs.com/package/@dockndevai/mcp-percona-pg). No clone or build needed — your MCP client runs it on demand with `npx`. **Start in `read-only` mode**; see [`.env.example`](.env.example) for every variable and [docs/CLIENTS.md](docs/CLIENTS.md) for the full per-client guide.\n\n**Claude Code** (CLI)\n\n```bash\nclaude mcp add percona-pg -e PERCONA_MODE=\"read-only\" -e PERCONA_NAMESPACE=\"postgres-operator\" -- npx -y @dockndevai/mcp-percona-pg\n```\n\n**Claude Desktop · Cursor · Windsurf** — same block in `claude_desktop_config.json`, `.cursor/mcp.json`, or `~/.codeium/windsurf/mcp_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"percona-pg\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dockndevai/mcp-percona-pg\"],\n      \"env\": {\n        \"PERCONA_MODE\": \"read-only\",\n        \"PERCONA_NAMESPACE\": \"postgres-operator\"\n      }\n    }\n  }\n}\n```\n\n**OpenAI Codex CLI** — in `~/.codex/config.toml`:\n\n```toml\n[mcp_servers.percona-pg]\ncommand = \"npx\"\nargs = [\"-y\", \"@dockndevai/mcp-percona-pg\"]\nenv = { PERCONA_MODE = \"read-only\", PERCONA_NAMESPACE = \"postgres-operator\" }\n```\n\n## Example prompts\n\n- *\"List the PostgreSQL clusters and show me the status of `dev-pg`.\"*\n- *\"What pool_mode is `dev-pg` using, and how big is the default pool?\"* → `get_pgbouncer_config`\n- *\"Set `dev-pg` PgBouncer to transaction pooling with default_pool_size 25.\"* (needs `read-write`)\n- *\"Bump `shared_buffers` to 512MB on `dev-pg`.\"* (needs `read-write`)\n- *\"Take a full backup of `dev-pg` to repo1.\"* (needs `read-write`)\n- *\"Restore `dev-pg` to 2026-08-30 12:00:00+00.\"* (needs `admin` + `PERCONA_ALLOW_RESTORE` + confirmation)\n\n## Prerequisites\n\n- A Kubernetes cluster running the **Percona Operator for PostgreSQL v2** (`pgv2.percona.com/v2`).\n- A kube-config the server can read. For safety, use a ServiceAccount/RBAC scoped to the operator's namespaces and to the `pgv2.percona.com` resources you want the agent to see.\n\n## Run from source (development)\n\nPrefer the published package above. To run from a clone:\n\n```bash\nnpm install\nnpm run build\nnode dist/index.js   # with the environment variables set\n```\n\n## Develop\n\n```bash\nnpm run dev\nnpm test          # security policy + annotations\nnpm run typecheck\n```\n\n## Publishing\n\nThis server ships a [`server.json`](server.json) for the official MCP registry and an [`mcpName`](package.json) for npm ownership validation. See **[PUBLISHING.md](PUBLISHING.md)**.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}