{"_id":"@yawlabs/postgres-mcp","_rev":"40-c45b928b1121af948ac022728e5d78ec","name":"@yawlabs/postgres-mcp","dist-tags":{"latest":"0.12.0"},"versions":{"0.1.0":{"name":"@yawlabs/postgres-mcp","version":"0.1.0","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.1.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"1381b5d42f1932c41e4fb1d0530f053eb126cc9d","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.1.0.tgz","fileCount":4,"integrity":"sha512-cG1ZuRTNmTKxDA6NGOyshqNZBeMK/Y4jFUo3rlsblN0D3QIcqOgPl86JjuT/3HJTVJFa9NIbvLNonFJYbEZsxQ==","signatures":[{"sig":"MEUCIGPMmcZwuUlIYfV59pi/lV3zOV/543XNnIynLHFSjSCuAiEAswG8Okw0yFTijiiqrgE/TG1dREVyhSjb7URgUPLfN1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1295007},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"3930db75c50d167277071d64177f2fb89696d10e","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node --test dist/**/*.test.js","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server — query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.11.10","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.1.0_1776789618824_0.41596389341080076","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@yawlabs/postgres-mcp","version":"0.1.1","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.1.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"0ff59782f8719234950764e42961953dbb5e3264","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.1.1.tgz","fileCount":4,"integrity":"sha512-pHuwq1Oz0qSZ8HmsBwdJM4fzbfM7kbOWD5n88UJyZ6CKTpWPXtecZaH7MCnw91Ls54FzNlR1lkwJqp0c9C0GaA==","signatures":[{"sig":"MEYCIQDzWiUBe1ZCEEIFy2ZVM3XJKc7wc/0osmoNuV+d6OlTMgIhAN5w1+WK9Qab7PIH8qLRIEmyIDTP2Uyq+EkgLhrSUkPi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1295007},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"3626a4091095364ee8c3c1bf280e02573ed0f9d5","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node --test dist/**/*.test.js","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server — query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.11.10","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.1.1_1776792373784_0.9351603799535058","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@yawlabs/postgres-mcp","version":"0.3.0","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.3.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"bcc5dd77c16aaa008f2710c651f1dddbd5d51f57","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.3.0.tgz","fileCount":4,"integrity":"sha512-W8aWkinwna/CjjQzEyY3EjZob5bAMotxI98vj+p69p1f8z9f6iUlLYBh8poA/IgeIdkMDCUiinsXJV3heTkOCA==","signatures":[{"sig":"MEUCIHddzu2+IfhuKJbutsF23c2ScoKXtBjLWlt57iT3AyK/AiEA3utcVXD3Bn8QJgjdnG3kMJDivo9Ti56cpZeQ95bGp7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1326798},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"673be0f220ebe067f74fe0bec31e4723144426d6","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node --test dist/**/*.test.js","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node --test dist/**/*.integration.test.js"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server — query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.11.10","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.3.0_1776862308572_0.9350508488059608","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@yawlabs/postgres-mcp","version":"0.3.1","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.3.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"51fef03ba7159472143e41f789af7faeef39c276","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.3.1.tgz","fileCount":4,"integrity":"sha512-Vdwn1bTx1TkCCcjQTCm7XsX2Pw3IYpMTHD4bxRRZ0sNqAmHX6tYFO4ceRefPLfjQvo+ZZD8B3XSMCK6Lfs46og==","signatures":[{"sig":"MEUCIHxUq1NKeCsONhXfTxqB9FHTNW1ckSAeMAO2YRoFWt2hAiEAnq0f2uJJMyXggST+5jV2LNd5PvDIHkQLxsuVlcIvvl0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1326966},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"d8955d04ae41b1d6b330cc68c795501a6cbbec50","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server — query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.11.10","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.3.1_1776865339951_0.4099048436909538","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@yawlabs/postgres-mcp","version":"0.3.2","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.3.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"00c59c271a63b228f40df6e51d8a180c5694a3ea","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.3.2.tgz","fileCount":4,"integrity":"sha512-CbMiC2eUbzsyONlAhSaY4b71A/Py+sgwJDzQc8doVDWRPliXbKsRjG8kBw76O/eRLjvekBANPDEOOEOR/c2XEQ==","signatures":[{"sig":"MEUCIFOIZLnvx90kgQOVuBHuCV7x0ot2sVz48uiCgi2KBelcAiEAsnoMIXMhgI0MQBy9tEH/J67MdQaSYrR0Ffm1mwrWnjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1327595},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"ff447426ccd803aa5b78c66d1559329e225dadfd","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"PostgreSQL MCP server — query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.11.10","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.3.2_1777051813330_0.07762459979230862","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@yawlabs/postgres-mcp","version":"0.3.3","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.3.3","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"a95399ce39a7e7f276e5d775b389fe5b31ef480b","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.3.3.tgz","fileCount":4,"integrity":"sha512-cnio1LOaBTjKsbrMg0FYDCGP6NFECaapUUZW/doBJe3KppeYEpuZJkqQqN32Rn0YhI9wA/k4liV2/vAoLhk3Tw==","signatures":[{"sig":"MEQCIEyOJa7wE/yDUL6Fx6Vsl+92bu9JZSbQTzupLIwGrP8qAiAHvjSjoYh5SgJ1iLk9OPmZ1PPaBY/vYlGX3Vz2qI1t7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1329826},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"98aa35f28bfe779c3bebadf5008a8e7cfa52efa8","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"PostgreSQL MCP server — query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.3.3_1777066966155_0.18714753084495883","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@yawlabs/postgres-mcp","version":"0.4.0","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.4.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"e31983ed64039ee78d75fe0dd7488b64d254af07","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.4.0.tgz","fileCount":5,"integrity":"sha512-+G4t4FovfYfOVCNsq06KKEjiiw4O/RSnSQOyXOpuMREU21VQsqE1ucPA3OD7vav5A89SocM7Mcg6HAfu2k93ug==","signatures":[{"sig":"MEQCIBsTrNMo+lt6DJCJcE942IXX+h8R+gDEQm9p8DVnodkUAiBrr9FhOovJJoy9nN0szJ/SQ0KKQDkUx9C3xut2vDGpsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1367020},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"03fdb2547aefa4511471b79eafdacf4677da387a","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"PostgreSQL MCP server — query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.4.0_1777151561400_0.826094441782351","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@yawlabs/postgres-mcp","version":"0.4.1","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.4.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"5c51138ad26eae0efddb08ff50e9af00087cb8fb","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.4.1.tgz","fileCount":5,"integrity":"sha512-6vk1exFTQhN1bT2jlQNQgPwfkF56u4xTueFrB9wTbiQ9sSsfgUoL8FOLzhJgh1cTBMoJnW6jJAEDcYZitYN/Rw==","signatures":[{"sig":"MEQCIEpmqK8eS+o90rvilcFTi5aZkDhMpEcBz7Pcg5O0SVz+AiAzibFTEXK8XmMSmfT9FqGTRwKfEGYEhmtlRBfmif3lUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1372092},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"d564963948ae5da7bdbfd9911fd6a8c832862f99","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server — query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.4.1_1777956378001_0.890347687728481","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@yawlabs/postgres-mcp","version":"0.5.0","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.5.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"760a03d48379d55ec6aaf5ec52b811c2f0c4b5fd","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.5.0.tgz","fileCount":5,"integrity":"sha512-m02CtQL72CIei13J0sAct687Gz3c8Wvq+qc3puzKAVuimrgM8n0BErnGePmVfqJ3h8wWRkpECK3k8PkXGZ9FIA==","signatures":[{"sig":"MEYCIQCLvYbYc4chVdbAsHvcbOzp8BVDmo7hWFgpEQKWFrW7MAIhAKbCdL6PDtALu9++KjOB+fxMA8O8rFtzunI0AJnTJmQL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1372484},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"b0818de320573ec6b17e09a0a5189d3d7833feec","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server — query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.5.0_1777958664407_0.9923227750219612","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@yawlabs/postgres-mcp","version":"0.5.1","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.5.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"b9991fb25c0e065cc6f18cde46707ac9a4150a90","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.5.1.tgz","fileCount":5,"integrity":"sha512-1izFDaSKUr+xqjMgoUdTC8pgukOZUs1cj7nAGjTk8Eoqlw2tJUXYNycI2UP8KfppTr7seD6AtGQEELuT8vHjOg==","signatures":[{"sig":"MEYCIQDHk9KN3MmR7GU8JTnYPywaKVbLfNkO2i239+IE+NYvIQIhANnYtbS5k0RAVo9TzPlTvzrcYPcT3/9LqLlqj7vS5qaD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1372688},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"0706fdb815b9c0c73406d033a8debca6be424adb","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server — query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.5.1_1778001456044_0.16726895502107642","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@yawlabs/postgres-mcp","version":"0.5.2","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.5.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"22b11b3354cd97ad0f953e9a56d34083a91f723e","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.5.2.tgz","fileCount":5,"integrity":"sha512-dG0GtxXVQONjxR4FRissrhtYqHRWX+xq2YPXu2xB8liD2Ys6/+R3XJJsTkKd05gM1cF84248hatcf9GhfgQFcg==","signatures":[{"sig":"MEQCIGb4iWYUQaDEtamd3JpKe5sy/SSElPGwbmxLq2By6tXNAiB/vs0T9Gpys8NsjK+dWLuQD1zk/i0ayqwdEi34Ra6LxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1373059},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"a0a64671e2121eaa365165f858c78180e0ee50b3","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server — query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.5.2_1778726245278_0.9622312867949607","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@yawlabs/postgres-mcp","version":"0.5.3","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.5.3","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"5d4da7921883f3e98352924cdd7349f2684a963d","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.5.3.tgz","fileCount":5,"integrity":"sha512-tt8zyPvmCVzK9woaQHZnGYul4T9Z6bW/zvi2mEhZITw81VUQmdiIu0aKz3YdQwj2RTqU45PSg1HWe8yNfSgDYQ==","signatures":[{"sig":"MEYCIQCt82FIL1AH7bhJt2hTfcbPAU3jA6YFiV6p5OPC99+bgwIhANwQrwJ0cYfH2MLvunskAVLESskjyRSiUT2PVn2TprYc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1406449},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"cff22c9a20e7b877b565bee07e76c42140f3ce90","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server — query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.5.3_1778727299409_0.3193242733275081","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@yawlabs/postgres-mcp","version":"0.5.4","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.5.4","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"f5087fc5ac5f5dccaca430225e4eb445aea3a8f8","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.5.4.tgz","fileCount":5,"integrity":"sha512-tD3eCnWUJR4LawE8YrPB5l865s4dVuG3lrBYTFrdVbuSCGFtjE2e+KVWuRCr/DCqUimO8SKsOuHq5HnDByh4jw==","signatures":[{"sig":"MEYCIQC8W8mBx0WKBwz2aBG+h/3RAknsR1f2FVjq2cXrCatWrQIhAJEBaZYjOwtYnT+CV08i2+CYYsgF4/6ZoCl9urwyJ6Zm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1406297},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"ef5fbffdb69697f9858f5c9c3b3a310f2da09e28","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.5.4_1778732218635_0.3447978987515292","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@yawlabs/postgres-mcp","version":"0.6.0","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"16b177b18b318cfd67f1f55d5254ba08882f393e","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.0.tgz","fileCount":5,"integrity":"sha512-TNUA8UYophv3qfDnzhu2G/280FMPXi0xSr+J3XP+JSVf/0brIkyj9W6bQeCX2Rxb9zq9oLms2CUeThCKMLwNyA==","signatures":[{"sig":"MEYCIQCFcwydbb6EWXuxK1N2vj5xhD6zXUETVfx7F5XJTzghbQIhAK1h0iW15mWuGGGQ/bdJ0LMQO2VFGd1M8QJcv4Ooln8q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1413275},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"9d2ad5ec728817171ced16081dc853190099358c","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.0_1778817768047_0.4738458859630097","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@yawlabs/postgres-mcp","version":"0.6.1","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"058c0f826815df2a71f729adc63fac6339a27521","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.1.tgz","fileCount":5,"integrity":"sha512-J1EQrJ0/+5QtglnUHTLPqGX/CQWnq7DUp+Ygk7lXr75OU3pNj/z7I2hEc9AmUnkoM+kSz6o2T6GD1TVjhjXYWQ==","signatures":[{"sig":"MEYCIQDYDqMaSGynDAlYelgD1eIF9CCTcPXlBlaFsDWzfEopzwIhAKJcRbSyUgc8wQ3KDsNfFko1tOlpoErNipsPXRuTi2Wv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1416835},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"fbdd36ebafda9fc96e292a589b9c06c4463403a9","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.1_1778863384249_0.7670838704674363","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@yawlabs/postgres-mcp","version":"0.6.2","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"fea32b1da278984abdcc5450a99505666dc8562c","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.2.tgz","fileCount":5,"integrity":"sha512-1v5bPXKZxpvwIZN8JK5YElYwyE/YsTXVoGEqKDmeFLgwl7aNGq62mfogBz+ozIchi+zUwveATvv955Kah8eFFQ==","signatures":[{"sig":"MEQCIG1cljqTTlgCtz/uEZ9gqnEGlwGpw0ysFXjSAn2ChuG8AiAPGq1DMKyTlPoAgsUE4+SRunjNqt53hkjxAJ5Hbeqf0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1416835},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"4cddc0324d5849beaa386cc7bae9bbd809bf66cc","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.2_1778864582203_0.6216310076653915","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@yawlabs/postgres-mcp","version":"0.6.3","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.3","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"3fe69060db64c83d20cf3443c1cf9bc94999b519","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.3.tgz","fileCount":5,"integrity":"sha512-n+0HDpfAGutnSiyEpwJ3YCfJSRkgk/xH712/+KbwEBkQKN5ltR9t8PZpEgvZef4SyJc/HK76sgLdfe08xJv3Cw==","signatures":[{"sig":"MEQCIHdDInacXCugqmNgv0D5e8QmcCjoGIfCrGAMFpE1LKqlAiA6Jl9dFvFLc+yU73ykJsfsabhvixYvKa97bENiBxUxbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1418001},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"3d5b15e809912cb83ad0211c9395494660ee84da","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.3_1778865700094_0.18397551331433082","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@yawlabs/postgres-mcp","version":"0.6.4","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.4","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"3eaad5b4c5d928f4d3f151d269e197a6d5d67763","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.4.tgz","fileCount":5,"integrity":"sha512-gJtCwZl+gWdXybev/7xSJmd5CIvZXrFTbqYSVfRT++KvuKQ53s1juO6n2J7WtoXEqKSG7lUfICqWwhRLuwziCg==","signatures":[{"sig":"MEQCICOPhGvKlQWrVkj76cnVpYMKEMdqKf1tWb0k+WUR4qkQAiBU7UEczQIiMnqWuFC4H6iZ5Gd/8Xwo1wZhchj6Kh5j1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1419141},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e62543b086fb0e4cb3a9a7c7dca5b17608470dfb","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.4_1778869049696_0.18958090875122924","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@yawlabs/postgres-mcp","version":"0.6.5","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.5","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"a82ed4653177e220f56ca61d26bfea1bffa0ba77","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.5.tgz","fileCount":5,"integrity":"sha512-GM0VmoIMEFAVtTzsz1rC0NPKQsPy/u6jv6mxH9UoBaJWCiYvQL00UUEcplYLsEtSeBVO8roMGb0/QBw3e2vabQ==","signatures":[{"sig":"MEYCIQDXIqT0B3zs4gfMG8aXqsWgZtiDPTJlBQr5WiBcNikaYgIhAKfUGlyFJjCRa4o3qCc1ymTYSxSQSUjzqfNs9DhufwGG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1419990},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"0ad274c94b79466c6236c0c5743be3c2a6f00834","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.5_1778913100651_0.041720991938921204","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"@yawlabs/postgres-mcp","version":"0.6.6","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.6","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"a533b1e0e9e5ffb76aacb8ed63923af5c9d0004c","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.6.tgz","fileCount":5,"integrity":"sha512-vrgphjyA/CbpdOraUiqZN0DAO34Oa56uqw5QtnRHs/aXDFM5vSh7aQXAct2d978uvt4ODGJCT2hECriChL46ig==","signatures":[{"sig":"MEUCIDg2V20bnd+ya72LcfFhhTBRXHYD90+Zy1lw/VTHbuVCAiEA+wCPKEdKUhigPUw20ifIIwLN2cxmB3LdXTG/1CbJvy8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1421070},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"d819cfa1d0d8bfe82dcf8f996e54b12c2bcebd01","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.6_1778944142491_0.9938936978524224","host":"s3://npm-registry-packages-npm-production"}},"0.6.10":{"name":"@yawlabs/postgres-mcp","version":"0.6.10","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.10","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"ec8ee00c6c73922b3b5678e9ad07184878102c65","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.10.tgz","fileCount":5,"integrity":"sha512-9p0GZNJ0rubBtCku34IWrZjMISM05xsywYbMCqRpSLD/b8mU7CW3CQaFs5LNFDhRRW6poD9ANsV0qZtjNcr2iQ==","signatures":[{"sig":"MEUCIQCCvIoY+kITpZx4Z/haLzGas8WbHjkwYEEkm8zAPQMdgwIgIhzQAIFv1KrpwDhzrMVQRXxR10h+1FpCVejh4asIWsA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1423934},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"152acd9d8d64651f604da01b0af69a7008bba006","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.10_1778945966848_0.97126062589756","host":"s3://npm-registry-packages-npm-production"}},"0.6.11":{"name":"@yawlabs/postgres-mcp","version":"0.6.11","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.11","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"d57940553583cadfc0dcf98ee4dc48bd7ea6829c","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.11.tgz","fileCount":5,"integrity":"sha512-XMPPy60HPPjDZolxan8MRkMmVHwk+lx9ePatjr0gy09/4TDbrMXSCKVnd+OCNdlFVVaS3+kpXd9WyydIdYXeeA==","signatures":[{"sig":"MEUCIFA2IoR5ORqk2O3p+8csefxX+3CTRs9IB+wZHziL9WSzAiEA6qBlvS6leoHVXNeMOx3GrH+FagKFR0xMBDb8xR6/9oY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1422512},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"bac0d3b8e7d8348291ed09a1d5b8df25e0c73754","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.11_1778946321128_0.7513655455233101","host":"s3://npm-registry-packages-npm-production"}},"0.6.12":{"name":"@yawlabs/postgres-mcp","version":"0.6.12","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.12","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"342436dffd84b8d1d469aa18eb44065ac460e0a2","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.12.tgz","fileCount":5,"integrity":"sha512-csNxbLcgYC2eyqNsMr0uqk/RzHgjWJDAgQpkr0LWxGPOQWs1j9Wp7QerDiy4hKktfbHku9VIMkP0APtAKuV1Lg==","signatures":[{"sig":"MEUCIQDQv4b6QnTwznULtYwUbtYJBbkUlOSkSrsVSBwn+AVyjwIgZvVrgKmynvmTtJklSpMTlD2SaUkXw6m/VEpFp+L75lw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1424838},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"4ff5a88ea07284423c85dd70ea35100c5311cbb6","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.12_1778947878825_0.9367462218103231","host":"s3://npm-registry-packages-npm-production"}},"0.6.13":{"name":"@yawlabs/postgres-mcp","version":"0.6.13","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.13","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"3b4bb73f37f721f0923cc1e8768e5ef13359820c","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.13.tgz","fileCount":5,"integrity":"sha512-zg/QfZn059/rP0YfFvKyCtzlQvpd8ye/WVBhfWMflOP8ZQl2TsoNwELnspLCRdcaitMun2/ZywaymJOPStYrFQ==","signatures":[{"sig":"MEUCIQCnlyYD7meZyPefYrI64WDDJ0V8CMewPWbAOyF4YitshwIganjlnwKYM8Bh8m+MzcOShlmDmj97mkLlYBhFIbDIl34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1426474},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"75afb6ca939f79b8c988be1a79ad3738ff41cd41","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.13_1778950249712_0.055408738346519826","host":"s3://npm-registry-packages-npm-production"}},"0.6.14":{"name":"@yawlabs/postgres-mcp","version":"0.6.14","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.14","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"6888b273732afd4a560b379092ed7e6b1a25626a","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.14.tgz","fileCount":5,"integrity":"sha512-TnkQwx93QEAPkCd7p+FJrvzU+aDG1wt7TOSgwvAlERdSMbaErOA/J5Zkji8puzntxpMmPQKWLoJPV1MOAC4Vyw==","signatures":[{"sig":"MEYCIQDW2HTUkQkDHHeaU2VbOJZIcK0yvyDnof6zVhSYl4O8pAIhANaL8vMsC/P8leCABm+VCvApENyiOuPs0FHxS2I/AtVO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1427598},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"67eef8f8b2ed1dc83d9a6cc7c26ddabc6e3ec57e","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.14_1778950995278_0.787201311418483","host":"s3://npm-registry-packages-npm-production"}},"0.6.15":{"name":"@yawlabs/postgres-mcp","version":"0.6.15","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.15","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"5de3c2812edd62b36203cc23d873527cb42c4a85","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.15.tgz","fileCount":5,"integrity":"sha512-4rt9j2aqF+4ZF3iYnTDzIDh6pcUVbKSCW8mMK7SlCSeEqUbLtRE0d0nHym3WayqXvJa8NHgZqAUB+9fZwtXkyQ==","signatures":[{"sig":"MEQCIDLJFOhActIU0p1hwDH7uS+Q+cqWbd4SE2X7XcdxDMxUAiBv6lWFWJtoFk6G3D981N/CvQwrqPKnSQN8TckcHtNkhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1427992},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"bd5a89536a5a488bb66dc35919c3a60dc7a80e2f","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.15_1778951434988_0.12450017241619826","host":"s3://npm-registry-packages-npm-production"}},"0.6.16":{"name":"@yawlabs/postgres-mcp","version":"0.6.16","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.16","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"19b7727cb5c64e36fc51d514fd94a707cacc1c01","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.16.tgz","fileCount":5,"integrity":"sha512-GWInt8D9Ac4twcEBuULqgM1JsMYx1/64mtLj4ulpAttZCYKKq8HR6UlTeYqAWn3IHfVYookhKFnSTeDHOaDVRw==","signatures":[{"sig":"MEUCIH4HJ66a50kEZwOo88UEI51sRvwUZNJ8DubouqJG0cSzAiEAzz18FBx2Rb//6Pt9tQGIcXdt9rIg2mSGvpFHEqWFM5o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1427992},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"6e9017d75696a5d44742c594cd88af8b9dbb4c13","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.16_1779114702986_0.5624871911285965","host":"s3://npm-registry-packages-npm-production"}},"0.6.17":{"name":"@yawlabs/postgres-mcp","version":"0.6.17","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.17","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"de4c7bc0555bba15be1dc9f79342feff1ba98bd6","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.17.tgz","fileCount":5,"integrity":"sha512-0wlpRVFOTcrCdqrbhRS1gxFlIg7XQrTSe8ssRXbquBgm167QFSGXyDHwnJaEhJNVhzTN7BA4CK4dM9/bssaT/Q==","signatures":[{"sig":"MEYCIQDisenbF25yruZ85salJvlvxIOrVxAsoqJf9a7MdCZTZgIhAKRP+wDPndl6Z70u4g7HbibP94gWSpWm/soHYy18M1i6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fpostgres-mcp@0.6.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1428781},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"4413ceb21dd4675a3af67b2c3681fc279f55725f","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.17_1779194913907_0.5486763662936736","host":"s3://npm-registry-packages-npm-production"}},"0.6.18":{"name":"@yawlabs/postgres-mcp","version":"0.6.18","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.18","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"82ba307c93702b1a3a0c93252792a17fb5b545e2","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.18.tgz","fileCount":5,"integrity":"sha512-8rjSRFGTV8D/I7yvVR0MAp5ZrgRPtAEDkxJxkA+5CKvS8wHWiaLpI4u7RLlvZZyYaQpdXdU5oPeVb6UE1hQvHw==","signatures":[{"sig":"MEQCIFTeKiS5xgJxM2a9ux4ViIE0mITwUazcZsndWLd13kdiAiB/uG0roPy9T46PHzuZLJ8Vv6GMeQfkT256A5ESBQ8wew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1428758},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"d999a344279d9291ea772d24e8b36265a26f9f94","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.18_1780003994469_0.9216498901969747","host":"s3://npm-registry-packages-npm-production"}},"0.6.19":{"name":"@yawlabs/postgres-mcp","version":"0.6.19","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.19","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"67e051081e99137e4776741aaa005e9f6bb42b7e","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.19.tgz","fileCount":5,"integrity":"sha512-SjgkSmMzk57dbeLGDs2Nj7Z7SYshBQD3DE4pFQn6hJVoI/ODRPD/LaEgQB+QuCRfUHXM+qifEx/xmzCr7PAHXg==","signatures":[{"sig":"MEUCIE63ntdwxQzG07pqmWNTmk4WoYgT0gbySksL9JRx3PP0AiEAld7Dw4pOvpGA5dHsEk9JdzmUCKgE7OrDXDdu+eX/lPg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1428815},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"af44415954af43a3890267d9bd782446137e4889","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.19_1780454317056_0.7331484330072264","host":"s3://npm-registry-packages-npm-production"}},"0.6.20":{"name":"@yawlabs/postgres-mcp","version":"0.6.20","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.6.20","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"0af105e89e1653ef13c0f96c7a8513e2182691c6","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.6.20.tgz","fileCount":5,"integrity":"sha512-FOCVDXvSokBJ1ax+DWCqKbJtyEDpaoeAomg9fkyUGF5vXlc8z7DTzxbAO93KYc29X9CZJe6Daxgmw7P+fsLvAA==","signatures":[{"sig":"MEUCIEscYyKqVE22rr8crGofKVDkjt8XkbvZkruuFIGQcRDyAiEAnrWA+jVJUtvRpYtAcDMBO5mHU043IBdAoUNLZmDvh5M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1436302},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"a73620039a8617450a9d2bb4c364dd35cc356f0f","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.6.20_1780579073724_0.9581807059400858","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@yawlabs/postgres-mcp","version":"0.7.0","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.7.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"cb99de63e9b1d93d7e6e6469fed1d05bf6f55f55","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.7.0.tgz","fileCount":5,"integrity":"sha512-Aqoj05hGrODviEKUQyTPZ377X8wxMGenYd9hxpTPi+k+GG2AFggnSagkEo2sXK0HuCJWRedgSo5bP0iR//5sJA==","signatures":[{"sig":"MEUCIQCsKqCkFzuw0dF+YVZvDCdwnI25ubgRlrJrVlxwNGoPzwIgOd4qHvg2gSBbo+IhRLNlllbwp3NQqXoS8SvQB6Kw0l0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1443048},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"b2d8fbc30ac5cc0c2f184cd25faf3eacbe5c6988","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","postject":"^1.0.0-alpha.6","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.7.0_1784677881511_0.8964687142582193","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@yawlabs/postgres-mcp","version":"0.8.0","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.8.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"dist/index.js"},"dist":{"shasum":"8e691d659523bce1efc2d3c5ddad8be334d4591e","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.8.0.tgz","fileCount":5,"integrity":"sha512-i5zuLvsms4od50tbzYY5vGHXm7uXTl475jiJV7YCfWswfOfk+TDNTdifVywuL2MfFzUqt/SSJj++ufrKG7nnuw==","signatures":[{"sig":"MEYCIQDeVqJBA79QvDL1X3Dgb/aQT1mg0zMCh7Oi1NzAWFYRAgIhAI1XdciFgIVIb9Il69wB+TVSdQHWbUoytjvXOjNTRKuD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1453878},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"139341608b4b95167901b6cce0b511a4d5a24b95","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","postject":"^1.0.0-alpha.6","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.8.0_1786112887011_0.678696756360835","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@yawlabs/postgres-mcp","version":"0.9.0","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.9.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"bin/postgres-mcp.mjs"},"dist":{"shasum":"f4d445f3a276c7d8d17b1ab1b32175db3c28c6dc","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.9.0.tgz","fileCount":6,"integrity":"sha512-TmNvN9TplqkLil9PxcjcDaeJ7KvJA1HLaTDStuNuUHLP+zKKQibc/hHz5IWFOzGdqZ35aH2ZsaB+RsxY2AKjHA==","signatures":[{"sig":"MEUCIQCqjM9NWMpHq5Y10utDpZ+jlynajP3JAHH8P83iSEIbQQIgWQ6tvZB/7JdlD9t4Qi4pGMjVLzq3Huo0gv8C9/VNQDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1463585},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"b8c5b56282b7d28d09961ceee30e1bd26b3aaac0","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","postject":"^1.0.0-alpha.6","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.9.0_1786114324038_0.028469025671416404","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@yawlabs/postgres-mcp","version":"0.9.1","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.9.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"bin/postgres-mcp.mjs"},"dist":{"shasum":"af93cc038cef19132c4f0c3d966c3b91c0ca9ac5","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.9.1.tgz","fileCount":6,"integrity":"sha512-JFy2b6d4MgP6fiZ7u4x/D68L3m976R7fAXeMZSIkyPVfm1bJYE1JeY6Bv5fZfRBh7Zecggt1jiB0ko47ZMNKNw==","signatures":[{"sig":"MEUCIQDA7sJDtsGFgcRHTcnE9mU03icUiamDyWm1MU/BUbSA0AIgea6EG4tAlxxfnYRPFlFsl+c4KEdWfkTMq0xniEwIDZc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1467665},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"c99b7ca50df76557f7d1847ba816b5e0446d1807","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","postject":"^1.0.0-alpha.6","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.9.1_1786120245791_0.3901816939681728","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@yawlabs/postgres-mcp","version":"0.10.0","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.10.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"bin/postgres-mcp.mjs"},"dist":{"shasum":"1097e0fcfef893da4b15026edfde941681c26086","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.10.0.tgz","fileCount":6,"integrity":"sha512-GsrNBK1dj4J1C286Mq8cq+861DoTDaSLn1c8ChXgIYRyNm8ljuH0ze+QdkmvyUZuYl7zsrrTmkS62tJICvsWIw==","signatures":[{"sig":"MEUCIQCMI7Q2qCJ7wZqJNUN3L2MHJWYGiHwyxwE9NcUPof+zsgIgeZaqhb5T0OIp7xc3aQM5DIAHl40GgU7Q1xTW2Y6wMew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1474873},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"9806d6ee874fed2ed565ffd34a7c71868ab93515","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.14.0","zod":"^4.3.6","esbuild":"^0.28.0","postject":"^1.0.0-alpha.6","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.10.0_1786233422448_0.9581591383536936","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@yawlabs/postgres-mcp","version":"0.11.0","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.11.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"bin/postgres-mcp.mjs"},"dist":{"shasum":"135ee514afcea0cbe640997f98b347b0b1b9e4ea","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.11.0.tgz","fileCount":6,"integrity":"sha512-XkY8eMfwbFgMv67b7HnOH/HEPT1x5YwyLgrhc+LNDKq2xj/RC97jv7WAsquiQNj9lhdrawd7aJl3r1MJJfHaiw==","signatures":[{"sig":"MEUCIQDKqqQD9HjzoF/Dv5Td27UveCD3u7Kp+aPxD604eoHfRgIgW/DD+z4CHIfyacyAKaeJlRus8DTL7lk2TKeJU5SKjHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1567615},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"cd577bdb6b318dd3b9fd5307d7017bafce73ae6e","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.23.0","zod":"^4.3.6","esbuild":"^0.28.0","postject":"^1.0.0-alpha.6","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.30.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.11.0_1787494770532_0.6674117091290643","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@yawlabs/postgres-mcp","version":"0.11.1","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.11.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"bin/postgres-mcp.mjs"},"dist":{"shasum":"2d6420ebcb8d7206543a0c0342ea8cb533a9163d","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.11.1.tgz","fileCount":6,"integrity":"sha512-tVvHXtwi2XsAFHfg9nfJ3ObLFGhgLq3Z+llTk1aXepV8cZK8rIe70IM8/FkXshtyVAfXPWci2jxwKHxGORugZQ==","signatures":[{"sig":"MEYCIQDm685KPwc4avLMW1YbgVvVWpjiUEMjQ+fEME8SxiAXhAIhAIFVcXxZuxvjFVOY6KqNw+DkLTiSr2nWuwUB5mi0LqBv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1573435},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"27129a25242dc94784ed34b2e23cea6b37e857f2","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.23.0","zod":"^4.3.6","esbuild":"^0.28.0","postject":"^1.0.0-alpha.6","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.30.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.11.1_1787495804847_0.68431451246062","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"@yawlabs/postgres-mcp","version":"0.11.2","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/postgres-mcp@0.11.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/postgres-mcp#readme","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"bin":{"postgres-mcp":"bin/postgres-mcp.mjs"},"dist":{"shasum":"0a4531a13322fe48ee72e89aea2508def7aa7731","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.11.2.tgz","fileCount":6,"integrity":"sha512-gOcwxFhXM7Oquwq95d3pNloCbrsNuais6buaLWTv9rcxzjxwX/O/C00eofMwrd+I81qEi8XK5qaYpIkybteHig==","signatures":[{"sig":"MEYCIQDfNxbv7N7+XcFMvqcpYFAOKzp6ot8gyvNugLpCyxPZsAIhAKcsAvVUrvHOho8ZWlxHKebpanjRF86IrdCsZrkSBVId","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1580804},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"b9d8f2fb53dde672d68cd5ab978190892470a656","mcpName":"io.github.YawLabs/postgres-mcp","scripts":{"dev":"tsc --watch","lint":"biome check src/","test":"npm run build && node scripts/run-tests.mjs dist","build":"tsc && node build.mjs","start":"node dist/index.js","test:ci":"npm run test","lint:fix":"biome check --write src/","prepublishOnly":"npm run build","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"repository":{"url":"git+https://github.com/YawLabs/postgres-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.23.0","zod":"^4.3.6","esbuild":"^0.28.0","postject":"^1.0.0-alpha.6","@types/pg":"^8.20.0","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@modelcontextprotocol/sdk":"^1.30.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-mcp_0.11.2_1787503915139_0.5373753828906902","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@yawlabs/postgres-mcp","version":"0.12.0","mcpName":"io.github.YawLabs/postgres-mcp","description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","license":"MIT","author":{"name":"YawLabs","email":"contact@yaw.sh"},"repository":{"type":"git","url":"git+https://github.com/YawLabs/postgres-mcp.git"},"keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"type":"module","main":"dist/index.js","bin":{"postgres-mcp":"bin/postgres-mcp.mjs"},"scripts":{"build":"tsc && node build.mjs","dev":"tsc --watch","start":"node dist/index.js","test":"npm run build && node scripts/run-tests.mjs dist","test:ci":"npm run test","test:integration":"npm run build && node scripts/run-tests.mjs dist --integration","lint":"biome check src/","lint:fix":"biome check --write src/","prepublishOnly":"npm run build"},"devDependencies":{"@biomejs/biome":"^2.4.12","@modelcontextprotocol/server":"^2.0.0","@types/node":"^25.6.0","@types/pg":"^8.20.0","esbuild":"^0.28.0","pg":"^8.23.0","postject":"^1.0.0-alpha.6","typescript":"^6.0.3","zod":"^4.3.6"},"engines":{"node":">=22"},"gitHead":"fe336ba6e64073c5c564211cf41c53bec213b304","types":"./dist/index.d.ts","_id":"@yawlabs/postgres-mcp@0.12.0","bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"homepage":"https://github.com/YawLabs/postgres-mcp#readme","_nodeVersion":"22.22.2","_npmVersion":"11.13.0","dist":{"integrity":"sha512-lph6Q3G6dAUL1Vr/V8GjBZjmK/YH47O9UYxZ0OOMHt242WdIepueMHYQndCbpE5EARrTR5QfuSpycBHNWoyFjQ==","shasum":"ca6b844504856b6812bc7892b4e290596bd042e0","tarball":"https://registry.npmjs.org/@yawlabs/postgres-mcp/-/postgres-mcp-0.12.0.tgz","fileCount":6,"unpackedSize":1670391,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDjnf4C9f+wq0myW1b43WzhCQ8rPsqJbaYfj14+pZTYigIhAMtHS+FG45fcqPY1udE6ea4raIUvozxw0H881RbLardT"}]},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"directories":{},"maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/postgres-mcp_0.12.0_1787517244686_0.1023453373249017"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-21T16:40:18.757Z","modified":"2026-08-23T20:34:05.015Z","0.1.0":"2026-04-21T16:40:18.987Z","0.1.1":"2026-04-21T17:26:13.966Z","0.3.0":"2026-04-22T12:51:48.741Z","0.3.1":"2026-04-22T13:42:20.113Z","0.3.2":"2026-04-24T17:30:13.467Z","0.3.3":"2026-04-24T21:42:46.345Z","0.4.0":"2026-04-25T21:12:41.585Z","0.4.1":"2026-05-05T04:46:18.199Z","0.5.0":"2026-05-05T05:24:24.605Z","0.5.1":"2026-05-05T17:17:36.180Z","0.5.2":"2026-05-14T02:37:25.472Z","0.5.3":"2026-05-14T02:54:59.592Z","0.5.4":"2026-05-14T04:16:58.882Z","0.6.0":"2026-05-15T04:02:48.287Z","0.6.1":"2026-05-15T16:43:04.391Z","0.6.2":"2026-05-15T17:03:02.401Z","0.6.3":"2026-05-15T17:21:40.368Z","0.6.4":"2026-05-15T18:17:29.843Z","0.6.5":"2026-05-16T06:31:40.841Z","0.6.6":"2026-05-16T15:09:02.721Z","0.6.10":"2026-05-16T15:39:27.105Z","0.6.11":"2026-05-16T15:45:21.315Z","0.6.12":"2026-05-16T16:11:19.078Z","0.6.13":"2026-05-16T16:50:49.930Z","0.6.14":"2026-05-16T17:03:15.450Z","0.6.15":"2026-05-16T17:10:35.178Z","0.6.16":"2026-05-18T14:31:43.232Z","0.6.17":"2026-05-19T12:48:34.078Z","0.6.18":"2026-05-28T21:33:14.672Z","0.6.19":"2026-06-03T02:38:37.221Z","0.6.20":"2026-06-04T13:17:53.873Z","0.7.0":"2026-07-21T23:51:21.679Z","0.8.0":"2026-08-07T14:28:07.186Z","0.9.0":"2026-08-07T14:52:04.194Z","0.9.1":"2026-08-07T16:30:45.982Z","0.10.0":"2026-08-08T23:57:02.588Z","0.11.0":"2026-08-23T14:19:30.693Z","0.11.1":"2026-08-23T14:36:45.006Z","0.11.2":"2026-08-23T16:51:55.331Z","0.12.0":"2026-08-23T20:34:04.852Z"},"bugs":{"url":"https://github.com/YawLabs/postgres-mcp/issues"},"author":{"name":"YawLabs","email":"contact@yaw.sh"},"license":"MIT","homepage":"https://github.com/YawLabs/postgres-mcp#readme","keywords":["postgres","postgresql","database","mcp","model-context-protocol","ai","agent","claude","claude-code","cursor","llm","sql","schema","explain"],"repository":{"type":"git","url":"git+https://github.com/YawLabs/postgres-mcp.git"},"description":"PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"readme":"# @yawlabs/postgres-mcp\n\n[![npm version](https://img.shields.io/npm/v/@yawlabs/postgres-mcp)](https://www.npmjs.com/package/@yawlabs/postgres-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\n**Query a PostgreSQL database from Claude Code, Cursor, and any MCP client.** Read-only by default - writes opt in via a single env var - so an agent can't silently drop your tables.\n\nBuilt and maintained by [Yaw Labs](https://yaw.sh).\n\n[![Add to Yaw MCP](https://yaw.sh/yaw-mcp-button.svg)](https://yaw.sh/mcp/install?name=Postgres&command=npx&args=-y%2C%40yawlabs%2Fpostgres-mcp&description=Query%20PostgreSQL%20-%20schema%20introspection%2C%20EXPLAIN%20plans%2C%20health%20diagnostics%2C%20read-only%20by%20default&source=https%3A%2F%2Fgithub.com%2FYawLabs%2Fpostgres-mcp)\n\nOne click adds this to your local Yaw MCP config so it's available in every Yaw Terminal session. Or install manually below.\n\n## What's new in 0.11.0\n\nPostgreSQL 18 support, a new I/O observability tool, and version-gated catalog queries. Full detail in the [CHANGELOG](CHANGELOG.md).\n\n**Three breaking changes if you are upgrading from 0.10.x:**\n\n1. **`pg_seq_scan_tables`, `pg_unused_indexes` and `pg_top_queries` return an envelope, not a bare row array.** Read `data.rows` where you used to read `data`. The envelope carries `stats_reset`, because a cumulative scan count means nothing without knowing when the counters were last reset -- if that happened an hour ago, every index looks unused, which is how a load-bearing index gets dropped.\n2. **`pg_explain` with `analyze: true` now emits `BUFFERS`**, matching what PostgreSQL 18 does server-side. Plans get longer; pass `buffers: false` for the old output.\n3. **Node 22 is the floor.** Node 20 reached end of life.\n\n**Worth knowing even if you are not upgrading yet:**\n\n- `pg_describe_table` now flags generated and identity columns. Previously a generated column's expression surfaced as `default_value` with nothing marking it, so an agent read the column as optional-with-a-default and wrote an `INSERT` that PostgreSQL rejects.\n- New `pg_io_stats` exposes `pg_stat_io` (PG16+) plus in-flight async I/O from `pg_aios` and the active `io_method` (PG18+).\n- `pg_advisor` checks multixact wraparound alongside transaction-ID wraparound. A lock-heavy workload can exhaust multixacts while `relfrozenxid` still looks healthy.\n- Every version-dependent column is gated on `server_version_num`, so older servers get a thinner answer rather than an error.\n\n## Backstory\n\nAnthropic's reference Postgres MCP server, `@modelcontextprotocol/server-postgres`, was [archived in May 2025](https://github.com/modelcontextprotocol/servers-archived/tree/main/src/postgres) and [marked deprecated on npm](https://www.npmjs.com/package/@modelcontextprotocol/server-postgres) in July 2025. Anthropic has not shipped a replacement. Despite the deprecation, the last published version (v0.6.2) is still pulled ~20,000 times per week - a lot of agents are pointed at an unmaintained package.\n\nThat unmaintained package also has a known, [publicly documented stacked-query SQL injection](https://securitylabs.datadoghq.com/articles/mcp-vulnerability-case-study-SQL-injection-in-the-postgresql-mcp-server/) (Datadog Security Labs) that bypasses its `BEGIN READ ONLY` wrapper with input like `COMMIT; DROP SCHEMA public CASCADE;`. It has never been patched at npm.\n\nA handful of community forks have appeared, but each fills a narrow slice:\n\n- [`@zeddotdev/postgres-context-server`](https://www.npmjs.com/package/@zeddotdev/postgres-context-server) - Zed's fork, primarily a security patch on the original shape.\n- **Postgres MCP Pro** (Crystal DBA) - focused on index tuning and hypothetical-index / buffer-cache diagnostics.\n- **AWS Labs Postgres MCP** - tied to Aurora / RDS Data API + Secrets Manager.\n\nNone of them position themselves as a general-purpose daily driver you'd hand to Claude Code or Cursor against an arbitrary Postgres: modern introspection, perf helpers, role/privilege awareness, and a write-safety posture out of the box. That's the gap `@yawlabs/postgres-mcp` fills.\n\n## Why this one?\n\n- **Read-only by default, with an unconditional read-only tool too** - `pg_query` runs user SQL in a `BEGIN READ ONLY` transaction, so postgres itself (not string parsing) blocks writes; opt in to writes with `ALLOW_WRITES=1`. `pg_readonly` is a separate tool that stays read-only regardless of `ALLOW_WRITES`, so hosts that gate tools individually (Claude Code permissions, mcp.hosting) can auto-allow it -- paired with a least-privileged role, since `READ ONLY` bounds writes to the database rather than every side effect ([details](#per-tool-gating-in-the-host)).\n- **Role-based access as the primary control** - the recommended posture is to use a least-privileged postgres role in `DATABASE_URL` (e.g. one with `GRANT pg_read_all_data`); postgres itself then enforces the boundary, no env var needed. See [Configuring access](#configuring-access).\n- **Extended query protocol for all user SQL** - `pg_query` sends user input with `queryMode: 'extended'`, which restricts each request to a single statement. This closes the [stacked-query injection class](https://securitylabs.datadoghq.com/articles/mcp-vulnerability-case-study-SQL-injection-in-the-postgresql-mcp-server/) (`COMMIT; DROP SCHEMA x CASCADE;`) that defeated the reference server's `BEGIN READ ONLY` wrapper. Integration test asserts the rejection.\n- **Parameterized queries** - `pg_query` takes a `params` array for `$1`, `$2`, etc. No string-interpolated SQL in our code path.\n- **Written from scratch, actively maintained** - not a fork of the deprecated code. Unit + integration tests (`npm test`, `npm run test:integration`) run against a real Postgres; releases cut via `release.sh`.\n- **Schema introspection built in** - `pg_list_schemas`, `pg_list_tables`, `pg_describe_table` return columns, primary keys, foreign keys, and indexes without the agent having to remember `pg_catalog` joins.\n- **`EXPLAIN` as a first-class tool** - text or JSON format, with optional `ANALYZE`. ANALYZE for non-SELECT statements requires `ALLOW_WRITES=1` and always rolls back, so the plan is real but the write doesn't persist.\n- **Perf diagnostics the deprecated server never had** - `pg_top_queries` (from `pg_stat_statements`), `pg_seq_scan_tables`, `pg_unused_indexes`, `pg_table_bloat`, `pg_inspect_locks`, `pg_replication_status`. Answer \"why is this slow?\" in one tool call.\n- **Health snapshot** - `pg_health` returns version, db size, connection counts, and the 10 longest-running active queries in one call.\n- **Role and privilege awareness** - `pg_list_roles` and `pg_table_privileges` for the common \"who can touch what?\" questions.\n- **Instant startup** - ships as a single bundled file with zero runtime dependencies. No multi-minute `node_modules` install on every `npx` cold start.\n- **Result truncation** - large result sets are capped at `POSTGRES_MAX_ROWS` (default 1000) with a `truncated: true` flag, so a stray `SELECT * FROM events` doesn't blow out the model context.\n\n## Quick start\n\n**1. Create `.mcp.json` in your project root**\n\nmacOS / Linux / WSL:\n\n```json\n{\n  \"mcpServers\": {\n    \"postgres\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@yawlabs/postgres-mcp@latest\"],\n      \"env\": {\n        \"DATABASE_URL\": \"postgres://user:password@host:5432/dbname\"\n      }\n    }\n  }\n}\n```\n\nWindows:\n\n```json\n{\n  \"mcpServers\": {\n    \"postgres\": {\n      \"command\": \"cmd\",\n      \"args\": [\"/c\", \"npx\", \"-y\", \"@yawlabs/postgres-mcp@latest\"],\n      \"env\": {\n        \"DATABASE_URL\": \"postgres://user:password@host:5432/dbname\"\n      }\n    }\n  }\n}\n```\n\n> **Why the extra step on Windows?** Since Node 20, `child_process.spawn` cannot directly execute `.cmd` files (that's what `npx` is on Windows). Wrapping with `cmd /c` is the standard workaround.\n\n**2. Restart and approve**\n\nRestart Claude Code (or your MCP client) and approve the postgres MCP server when prompted.\n\n**3. (Optional) Enable writes**\n\nRead-only is the default. If you want the agent to be able to `INSERT`, `UPDATE`, `DELETE`, or run DDL, add `ALLOW_WRITES=1` to the `env` block:\n\n```json\n\"env\": {\n  \"DATABASE_URL\": \"postgres://...\",\n  \"ALLOW_WRITES\": \"1\"\n}\n```\n\nPrefer scoping this to dev/test databases - for production, leave writes off and use migration tools out-of-band.\n\n## Configuring access\n\nThe role in `DATABASE_URL` is the primary access control. Postgres has had a battle-tested permission system for 30 years; lean on it instead of relying on `ALLOW_WRITES` alone. A least-privileged role makes writes server-rejected no matter what tools or env vars are configured.\n\n**Read-only agent (recommended default):**\n\n```sql\nCREATE ROLE mcp_reader LOGIN PASSWORD 'change-me';\nGRANT CONNECT ON DATABASE your_db TO mcp_reader;\nGRANT USAGE ON SCHEMA public TO mcp_reader;\nGRANT pg_read_all_data TO mcp_reader;\n```\n\nPoint `DATABASE_URL` at `mcp_reader`. Postgres rejects every write, every DDL, every privilege change - regardless of `ALLOW_WRITES`. No app-level guard to bypass; the database is the boundary.\n\n**Scoped write agent (dev/test or narrow production use):**\n\n```sql\nCREATE ROLE mcp_writer LOGIN PASSWORD 'change-me';\nGRANT CONNECT ON DATABASE your_db TO mcp_writer;\nGRANT USAGE ON SCHEMA public TO mcp_writer;\nGRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO mcp_writer;\nGRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO mcp_writer;\n-- DDL not granted -- the agent can change data but not schema.\n```\n\nSet `ALLOW_WRITES=1` so `pg_query` will issue writes, and rely on the role to keep the agent away from DDL and other schemas.\n\n**Per-tool gating in the host:**\n\nTools split cleanly across two authority classes:\n\n- **Auto-allow:** `pg_readonly` (server-side `BEGIN READ ONLY`, unconditional), plus the introspection tools (`pg_list_*`, `pg_describe_table`, `pg_search_columns`, `pg_explain` without ANALYZE-of-write, `pg_health`, `pg_inspect_locks`, `pg_table_bloat`, `pg_unused_indexes`, `pg_top_queries`, `pg_replication_status`, `pg_advisor`, `pg_table_privileges`, `pg_list_roles`).\n- **Always prompt:** `pg_query` (can write when the role allows it), `pg_kill` (changes session state).\n\nClaude Code's `permissions` block and mcp.hosting's per-tool toggle both honor this split.\n\n> **What `READ ONLY` does and does not cover.** A `BEGIN READ ONLY` transaction blocks writes to the *database* -- INSERT/UPDATE/DELETE, DDL, `nextval`/`setval`. It does not block functions whose effect lands outside the table data. `SELECT pg_terminate_backend(...)`, `pg_cancel_backend`, `pg_read_file`, `lo_export`, and `COPY ... TO PROGRAM` all run to completion inside `pg_readonly`, which means auto-allowing `pg_readonly` reaches the same capability that `pg_kill` puts behind `ALLOW_WRITES=1`. Every one of them still requires a privilege the `DATABASE_URL` role must actually hold (`pg_signal_backend`, `pg_read_server_files`, superuser), so **the role is the control that bounds this tool, not the transaction mode.** If you auto-allow `pg_readonly`, use a least-privileged role -- see [Configuring access](#configuring-access).\n\n**`ALLOW_WRITES` as defense-in-depth:**\n\n`ALLOW_WRITES` is a secondary belt-and-braces gate. Useful when:\n- You're on a managed database where creating a second role is awkward (some Supabase/Neon plans).\n- You want a single role that can write, but want the MCP server to refuse writes anyway during normal operation.\n\nOtherwise, configure the role and stop relying on `ALLOW_WRITES`.\n\n## What can an agent do with this?\n\nOnce connected, the agent picks tools automatically based on what you ask. A few single-tool examples:\n\n- **\"Describe the users table\"** -> `pg_describe_table` -> returns kind, columns, PK, FKs, indexes.\n- **\"Which tables have a `user_id` column?\"** -> `pg_search_columns` with pattern `user_id` -> one call instead of iterating every table.\n- **\"This query is slow, why?\"** -> `pg_explain` with `analyze: true` -> returns the plan with actual row counts and timing.\n- **\"What's the slowest query we run?\"** -> `pg_top_queries` -> returns the top N from `pg_stat_statements` with mean/total/min/max times.\n- **\"Do we have any unused indexes?\"** -> `pg_unused_indexes` -> returns non-unique, non-primary indexes with zero or low scan counts + their size.\n- **\"Is `pgvector` installed?\"** -> `pg_list_extensions` -> yes/no with version.\n\nThe bigger leverage is multi-tool reasoning. A few real workflows:\n\n- **Unstick a hung app.** `pg_inspect_locks` returns blocked PID + blocking PID + the offending query, then `pg_kill` (`ALLOW_WRITES=1` required) cancels the blocker. The agent can run both in one turn - it's the fastest path from \"the app is frozen\" to \"back up.\"\n- **Chase a slow page.** `pg_top_queries` ranks the worst queries, `pg_explain` with `analyze: true` shows the plan for the top hit, `pg_seq_scan_tables` and `pg_unused_indexes` say whether the answer is \"add an index here\" or \"drop a dead one there.\"\n- **Oncall triage.** `pg_health` checks connectivity + active-query count + database size; `pg_inspect_locks` and `pg_replication_status` confirm whether contention or replication lag is in play before paging the on-call DBA.\n\n## Tools\n\n| Tool | Description |\n|------|-------------|\n| `pg_readonly` | Run a SQL statement with no persistent data changes - always inside `BEGIN READ ONLY`, regardless of `ALLOW_WRITES`. The recommended tool for read access, and the one to auto-allow; pair it with a least-privileged role ([why](#per-tool-gating-in-the-host)). |\n| `pg_query` | Run a SQL query. Writes gated by the role in `DATABASE_URL` first, `ALLOW_WRITES` second. Supports parameterized queries via `params`. Result fields include `dataTypeName` (e.g. `int4`, `jsonb`) alongside `dataTypeID`. |\n| `pg_list_schemas` | List non-system schemas. |\n| `pg_list_tables` | List tables (and optionally views) in a schema with estimated row counts. Paginated via `limit`/`offset`. |\n| `pg_describe_table` | Kind, columns, PK, outgoing FKs, incoming FKs (`referenced_by`), CHECK / UNIQUE / EXCLUDE constraints, indexes, and partition parent/children for a relation. Generated and identity columns are flagged (`generated`, `identity`, `generation_expression`) so an agent doesn't try to write to them. Constraints carry `validated`, plus `enforced` / `has_period` on PG18+. |\n| `pg_list_views` | List views and materialized views in a schema, including their SQL definitions. |\n| `pg_list_functions` | List functions, procedures, and aggregates in a schema with signatures and return types. |\n| `pg_list_extensions` | List installed extensions (pgvector, postgis, pg_stat_statements, etc.) with versions. |\n| `pg_search_columns` | Find columns by name pattern across all user schemas. Case-insensitive, supports SQL LIKE wildcards. |\n| `pg_explain` | `EXPLAIN` or `EXPLAIN ANALYZE` for a SQL statement. Text or JSON output. Planner options: `buffers` (on by default with `analyze`), `settings`, `verbose`, `wal`, `costs`, `timing`, plus `generic_plan` (PG16+, plan a parameterized query with no values) and `memory` / `serialize` (PG17+). Optional `hypothetical_indexes` (requires the [HypoPG](https://github.com/HypoPG/hypopg) extension) lets you ask \"what would the plan be with these indexes?\" without creating them on disk. |\n| `pg_index_advisor` | Recommend indexes for a workload and prove each one pays for itself first. Takes `statements` you pass or the top N from `pg_stat_statements`, harvests candidate columns from what the **planner** reports as filters / join keys / sort keys (no SQL parser - every token is intersected with the real `pg_attribute` column list), then costs each candidate with [HypoPG](https://github.com/HypoPG/hypopg) hypothetical indexes and keeps only what measurably lowers estimated cost. Greedy and bounded via `max_candidates` / `max_explains`, so a big workload cannot run away; `budget_exhausted` flags a truncated search. Returns the `CREATE INDEX` (plus a `CONCURRENTLY` form), cost before/after, which statements each index helps, and the estimated size. **PG18-aware:** PG18 added B-tree skip scan, so a multi-column index whose leading column is never filtered is no longer useless - that classic prune is gated on the server version rather than applied blindly. Requires HypoPG; indexes are session-scoped and reset on every exit path. |\n| `pg_health` | Server version, database size, connections against `max_connections`, active queries with wait events and transaction age, `pg_stat_database` rollup (deadlocks, temp files, cache hit ratio), table count. |\n| `pg_top_queries` | Top N queries by total/mean execution time. Requires the `pg_stat_statements` extension. Returns `stats_reset` (from `pg_stat_statements_info`, a different clock from the other stats tools) and `dealloc` on extension 1.9+ - a non-zero `dealloc` means entries were evicted past `pg_stat_statements.max`, so the ranking is drawn from an incomplete population. |\n| `pg_seq_scan_tables` | Tables with heavy sequential scans - missing-index candidates. Returns the `stats_reset` window alongside the rows, since the counters mean nothing without it. `last_seq_scan` / `last_idx_scan` on PG16+. |\n| `pg_unused_indexes` | Non-unique, non-primary indexes with low scan counts - drop candidates. Also returns `stats_reset`: a recently reset counter makes every index look unused, which is how a load-bearing index gets dropped. `last_idx_scan` on PG16+. |\n| `pg_io_stats` | I/O observability: `pg_stat_io` read/write/extend/fsync counts, bytes and times per backend type and context (PG16+), plus in-flight async I/O handles from `pg_aios` and the active `io_method` (PG18+). |\n| `pg_inspect_locks` | Who is blocking whom right now (blocked PID, blocker PID, lock type, queries). |\n| `pg_list_roles` | Database roles with login/superuser/createdb flags and group memberships. |\n| `pg_table_privileges` | Who has SELECT/INSERT/UPDATE/DELETE/etc. on a table or whole schema. |\n| `pg_table_bloat` | Tables with high dead-tuple ratios - VACUUM candidates. |\n| `pg_replication_status` | Replication slots, connected replicas, and current WAL position. |\n| `pg_advisor` | Rolled-up DBA lints in one call: sequence-exhaustion candidates, wraparound risk for both counters (per-database and per-table `age(relfrozenxid)` against `autovacuum_freeze_max_age`, and `mxid_age(relminmxid)` against `autovacuum_multixact_freeze_max_age` -- a lock-heavy workload can exhaust multixacts while xids look healthy; `triggered_by` says which), tables without a primary key, and (configurable) public tables with RLS disabled. The \"what should I be looking at?\" starting point. |\n| `pg_kill` | Cancel a running query or terminate a backend connection. Requires `ALLOW_WRITES=1`. |\n\n## Configuration\n\nAll env vars are read from the MCP server's environment:\n\n| Variable | Default | Purpose |\n|----------|---------|---------|\n| `DATABASE_URL` | (required) | PostgreSQL connection string. |\n| `ALLOW_WRITES` | unset | Secondary write gate for `pg_query` and `pg_explain` ANALYZE-of-writes. Set to `1` or `true` to lift the `BEGIN READ ONLY` wrapper. The role in `DATABASE_URL` is the primary control - see [Configuring access](#configuring-access). Does not affect `pg_readonly`, which is unconditional. |\n| `POSTGRES_STATEMENT_TIMEOUT_MS` | `30000` | Per-statement timeout. |\n| `POSTGRES_CONNECTION_TIMEOUT_MS` | `10000` | TCP connect timeout. Without this, a dead host hangs until the OS gives up (~2 minutes). |\n| `POSTGRES_MAX_ROWS` | `1000` | Cap on rows returned by `pg_query`. |\n| `POSTGRES_POOL_MAX` | `5` | Max pool connections. Set to `1` for single-threaded backends (pglite-socket, PgBouncer transaction mode). |\n| `POSTGRES_SSL_REJECT_UNAUTHORIZED` | unset | Set to `false` to skip TLS cert verification (for managed DBs using private-CA certs). Connection is still encrypted. |\n| `POSTGRES_APPLICATION_NAME` | `postgres-mcp` | Value reported in `pg_stat_activity.application_name`, so agent traffic is identifiable to whoever is watching the database. An `application_name` in `DATABASE_URL` takes precedence over this. |\n| `POSTGRES_MCP_RUNTIME` | `auto` | Which JS runtime executes the server: `auto` (prefer [oam](https://oamjs.org), fall back to Node), `oam` (require oam, fail if absent), `node` (never use oam). See [Runtime](#runtime). |\n| `OAM_BIN` | unset | Explicit path to an `oam` binary, checked before PATH and the default install locations. |\n\n### Supported Postgres versions\n\nTested on **PostgreSQL 15, 17 and 18** in the integration matrix.\n\nWorks on PG13+, but note where upstream support actually sits: **PG13 reached end of life on 2025-11-13 and PG14 does so on 2026-11-12.** PG13/14 are not exercised here and are not a compatibility target going forward. PG12 and below are further out of support and some tools rely on columns that landed in PG13 (`pg_replication_status` reading `wal_status`, `pg_top_queries` reading `*_exec_time`).\n\nNewer server versions unlock extra fields rather than being required. Every version-dependent column is gated on `server_version_num` and simply omitted on servers that predate it, so nothing errors -- you get a slightly thinner answer. The cut points that matter:\n\n| Server | What it adds |\n|--------|--------------|\n| PG16+ | `last_idx_scan` / `last_seq_scan` in the stats tools (index/table staleness rather than a bare counter), `pg_explain` `generic_plan` |\n| PG17+ | `pg_explain` `memory` and `serialize` |\n| PG18+ | Generated-column form (`stored` vs `virtual`), NOT NULL constraint validity, `conenforced` / `conperiod` constraint metadata in `pg_describe_table`, `relallfrozen` freeze coverage in `pg_advisor`. `BUFFERS` is on by default with `EXPLAIN ANALYZE` server-side |\n\nIf the version probe fails, the server assumes the oldest supported shape rather than emitting SQL a server might reject.\n\n### Runtime\n\nThe published `postgres-mcp` command is a small launcher that prefers the [oam](https://oamjs.org) runtime and falls back to Node.\n\n**If you do not have oam, nothing changes.** The fallback is not a re-exec: npm already started Node to run the launcher, so falling back is a plain `import()` of the server into that same process. It costs a few `existsSync` calls and no subprocess, and behaves identically to running `dist/index.js` under Node directly.\n\n**If you do have oam,** the server runs under it. Verified equivalent on both runtimes: all 22 tools register, queries return identical rows and `dataTypeName` values, and the error paths match. oam supplies every `node:` builtin the driver needs, including `net`, `tls`, `crypto`, and `dns` (SCRAM auth and the extended query protocol both work).\n\n**Startup cost, measured.** windows-arm64, 1.4 MB bundle, `postgres-mcp version` (full module init), every binary warmed first, mean of 12 runs:\n\n| path | startup |\n|---|---|\n| standalone binary (`oam compile`) | 298ms |\n| `oam run dist/index.js` | 306ms |\n| `node dist/index.js` | 358ms |\n| launcher -> Node (in-process) | 370ms |\n| launcher -> oam (spawn) | 409ms |\n\noam starts **faster** than Node here. What the launcher costs is the *spawn*: reaching oam means Node has already booted, and that hop (~100ms) is larger than oam's ~52ms advantage. So through the npm `bin`, the two land within ~40ms of each other, and `POSTGRES_MCP_RUNTIME=node` is a marginal win rather than a meaningful one.\n\nEither way it is a **one-time cost per MCP session**, not per tool call -- hosts spawn the server once and hold it open. If startup genuinely matters, the standalone binary avoids the launcher entirely and is the fastest option.\n\n> Earlier releases of this README reported ~650-900ms for Node and ~980-1290ms for oam, and advised opting out of oam on that basis. Those figures were measured against cold, freshly-built binaries and reflected the Windows on-access virus scanner rather than either runtime. They were wrong in both magnitude and direction. Corrected in 0.9.1.\n\n```jsonc\n{\n  \"mcpServers\": {\n    \"postgres\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@yawlabs/postgres-mcp\"],\n      \"env\": {\n        \"DATABASE_URL\": \"postgres://...\",\n        \"POSTGRES_MCP_RUNTIME\": \"node\"  // opt out of oam\n      }\n    }\n  }\n}\n```\n\n### Connecting to managed Postgres (Supabase, Neon, RDS, etc.)\n\nMost managed databases require TLS but serve certs signed by a private CA that Node's default trust store doesn't recognize. The symptom is one of:\n\n- `self signed certificate in certificate chain`\n- `unable to get local issuer certificate`\n- `unable to verify the first certificate`\n\nTo allow the connection while keeping traffic encrypted, add `POSTGRES_SSL_REJECT_UNAUTHORIZED=false` to the `env` block:\n\n```json\n\"env\": {\n  \"DATABASE_URL\": \"postgres://user:pass@host:5432/db?sslmode=require\",\n  \"POSTGRES_SSL_REJECT_UNAUTHORIZED\": \"false\"\n}\n```\n\nThis disables certificate chain verification only -- the TCP connection is still TLS-encrypted end-to-end. For production setups where you can install the CA, prefer putting the cert in the Node trust store (`NODE_EXTRA_CA_CERTS`) over disabling verification globally.\n\n**Shaving a round trip on PG17+.** Postgres 17 added direct TLS negotiation, which skips the plaintext `SSLRequest` handshake before the TLS one. The bundled driver supports it, so append `sslnegotiation=direct` to your `DATABASE_URL`:\n\n```\npostgres://user:pass@host:5432/db?sslmode=require&sslnegotiation=direct\n```\n\nIt is opt-in rather than a default because a PG16-or-older server will reject the connection outright, and the saving is one round trip per pooled connection -- worth it on a distant managed database, invisible on a local one.\n\n## Troubleshooting\n\n**`DATABASE_URL is not set`** - Your MCP client is launching the server without the env var. On Windows especially, env vars set in bash / PowerShell profiles are not inherited by MCP servers launched via `cmd`. Put `DATABASE_URL` directly in the `env` block of `.mcp.json`.\n\n**`password authentication failed`** - Check the username, password, and that the user has `CONNECT` privilege on the database. URL-encode special characters in the password (`@` → `%40`, `#` → `%23`, `/` → `%2F`).\n\n**`SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string`** - The password in your connection string is empty or became `null` after URL decoding. Re-check your connection string.\n\n**`canceling statement due to statement timeout`** - A single query exceeded `POSTGRES_STATEMENT_TIMEOUT_MS` (default 30s). Increase it, narrow the query with `WHERE`, or add an index. This is working as designed -- the timeout exists so a runaway query cannot hang the agent.\n\n**`Write blocked: this server is in read-only mode`** - You asked the agent to write via `pg_query` but `ALLOW_WRITES` is not set. Either add `ALLOW_WRITES=1` to the `env` block of `.mcp.json` and restart your MCP client (dev/test DBs), or - cleaner for production - use a role with `INSERT/UPDATE/DELETE` grants in `DATABASE_URL` and keep `ALLOW_WRITES` unset. See [Configuring access](#configuring-access). Note that `pg_readonly` always rejects writes; if you want writes, the call has to go through `pg_query`.\n\n**Connection pool exhaustion with PgBouncer transaction mode or pglite-socket** - These backends don't support concurrent queries on a single connection. Set `POSTGRES_POOL_MAX=1` in the env block.\n\n**First query is slow, subsequent queries are fast** - Expected. The pg driver lazily establishes the first connection; subsequent queries reuse the pool.\n\n## Development\n\nRun the full suite (unit + integration) against a real Postgres:\n\n```bash\nDATABASE_URL='postgres://user:pass@host:5432/db' POSTGRES_MCP_INTEGRATION=1 npm run test:integration\n```\n\nThe integration suite assumes a disposable database -- it creates and drops a `test_fixture` schema. Don't point it at anything you care about.\n\nTo also run the destructive tests (REVOKE / restricted-role path), add `POSTGRES_MCP_DESTRUCTIVE_TESTS=1`. Only safe on a disposable cluster:\n\n```bash\nDATABASE_URL='postgres://user:pass@host:5432/db' POSTGRES_MCP_INTEGRATION=1 POSTGRES_MCP_DESTRUCTIVE_TESTS=1 npm run test:integration\n```\n\n### Windows: integration tests via WSL2\n\nNative Postgres on Windows ARM64 is fragile (UCRT runtime gaps, missing ARM64 builds). The reliable path is a disposable Ubuntu under WSL2 with the integration suite running inside WSL (WSL2's NAT blocks the Windows host from reaching :5432, so don't try to run the tests from PowerShell):\n\n```powershell\nwsl --install -d Ubuntu --no-launch\n# reboot, then:\nwsl -d Ubuntu -u root bash -c \"apt-get update && apt-get install -y nodejs npm rsync\"\nwsl -d Ubuntu -u root bash /mnt/c/path/to/postgres-mcp/scripts/wsl-pg-setup.sh\nwsl -d Ubuntu -u root bash /mnt/c/path/to/postgres-mcp/scripts/wsl-test-matrix.sh\n```\n\n`wsl-pg-setup.sh` installs PG15, PG17 and PG18 from the PGDG apt repo (ports are auto-assigned by `pg_createcluster` -- typically 17 on 5432, 18 on 5433, 15 on 5434), sets the `postgres` password to `postgres`, and creates `postgres_mcp_test` in each. `wsl-test-matrix.sh` rsyncs the working tree into `/root/postgres-mcp`, runs `npm ci` once, and runs the integration suite against every cluster found via `pg_lsclusters`.\n\n**Running these from Git Bash instead of PowerShell?** Prefix both script invocations with `MSYS_NO_PATHCONV=1`. Git Bash rewrites the `/mnt/c/...` argument before `wsl.exe` sees it, so the script arrives as `C:/Users/<you>/scoop/apps/git/<ver>/mnt/c/...` and bash exits with \"No such file or directory\" having run nothing. Also avoid piping either script into `tail`/`head` -- the pipeline's exit status is the last command's, so a failing matrix reports success.\n\nTear down when finished: `wsl --unregister Ubuntu`.\n\n## License\n\nMIT © 2026 YawLabs\n","readmeFilename":"README.md"}