@neverinfamous/postgres-mcp 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +515 -0
- package/dist/__tests__/mocks/adapter.d.ts +80 -0
- package/dist/__tests__/mocks/adapter.d.ts.map +1 -0
- package/dist/__tests__/mocks/adapter.js +225 -0
- package/dist/__tests__/mocks/adapter.js.map +1 -0
- package/dist/__tests__/mocks/index.d.ts +11 -0
- package/dist/__tests__/mocks/index.d.ts.map +1 -0
- package/dist/__tests__/mocks/index.js +11 -0
- package/dist/__tests__/mocks/index.js.map +1 -0
- package/dist/__tests__/mocks/pool.d.ts +43 -0
- package/dist/__tests__/mocks/pool.d.ts.map +1 -0
- package/dist/__tests__/mocks/pool.js +71 -0
- package/dist/__tests__/mocks/pool.js.map +1 -0
- package/dist/adapters/DatabaseAdapter.d.ts +139 -0
- package/dist/adapters/DatabaseAdapter.d.ts.map +1 -0
- package/dist/adapters/DatabaseAdapter.js +250 -0
- package/dist/adapters/DatabaseAdapter.js.map +1 -0
- package/dist/adapters/postgresql/PostgresAdapter.d.ts +119 -0
- package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -0
- package/dist/adapters/postgresql/PostgresAdapter.js +902 -0
- package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -0
- package/dist/adapters/postgresql/index.d.ts +5 -0
- package/dist/adapters/postgresql/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/index.js +5 -0
- package/dist/adapters/postgresql/index.js.map +1 -0
- package/dist/adapters/postgresql/prompts/backup.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/backup.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/backup.js +132 -0
- package/dist/adapters/postgresql/prompts/backup.js.map +1 -0
- package/dist/adapters/postgresql/prompts/citext.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/citext.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/citext.js +227 -0
- package/dist/adapters/postgresql/prompts/citext.js.map +1 -0
- package/dist/adapters/postgresql/prompts/extensionSetup.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/extensionSetup.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/extensionSetup.js +282 -0
- package/dist/adapters/postgresql/prompts/extensionSetup.js.map +1 -0
- package/dist/adapters/postgresql/prompts/health.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/health.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/health.js +118 -0
- package/dist/adapters/postgresql/prompts/health.js.map +1 -0
- package/dist/adapters/postgresql/prompts/index.d.ts +13 -0
- package/dist/adapters/postgresql/prompts/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/index.js +308 -0
- package/dist/adapters/postgresql/prompts/index.js.map +1 -0
- package/dist/adapters/postgresql/prompts/indexTuning.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/indexTuning.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/indexTuning.js +130 -0
- package/dist/adapters/postgresql/prompts/indexTuning.js.map +1 -0
- package/dist/adapters/postgresql/prompts/kcache.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/kcache.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/kcache.js +227 -0
- package/dist/adapters/postgresql/prompts/kcache.js.map +1 -0
- package/dist/adapters/postgresql/prompts/ltree.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/ltree.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/ltree.js +286 -0
- package/dist/adapters/postgresql/prompts/ltree.js.map +1 -0
- package/dist/adapters/postgresql/prompts/partman.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/partman.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/partman.js +211 -0
- package/dist/adapters/postgresql/prompts/partman.js.map +1 -0
- package/dist/adapters/postgresql/prompts/pgcron.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/pgcron.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/pgcron.js +233 -0
- package/dist/adapters/postgresql/prompts/pgcron.js.map +1 -0
- package/dist/adapters/postgresql/prompts/pgcrypto.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/pgcrypto.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/pgcrypto.js +299 -0
- package/dist/adapters/postgresql/prompts/pgcrypto.js.map +1 -0
- package/dist/adapters/postgresql/prompts/pgvector.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/pgvector.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/pgvector.js +148 -0
- package/dist/adapters/postgresql/prompts/pgvector.js.map +1 -0
- package/dist/adapters/postgresql/prompts/postgis.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/postgis.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/postgis.js +200 -0
- package/dist/adapters/postgresql/prompts/postgis.js.map +1 -0
- package/dist/adapters/postgresql/resources/activity.d.ts +9 -0
- package/dist/adapters/postgresql/resources/activity.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/activity.js +118 -0
- package/dist/adapters/postgresql/resources/activity.js.map +1 -0
- package/dist/adapters/postgresql/resources/capabilities.d.ts +9 -0
- package/dist/adapters/postgresql/resources/capabilities.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/capabilities.js +182 -0
- package/dist/adapters/postgresql/resources/capabilities.js.map +1 -0
- package/dist/adapters/postgresql/resources/cron.d.ts +9 -0
- package/dist/adapters/postgresql/resources/cron.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/cron.js +156 -0
- package/dist/adapters/postgresql/resources/cron.js.map +1 -0
- package/dist/adapters/postgresql/resources/crypto.d.ts +9 -0
- package/dist/adapters/postgresql/resources/crypto.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/crypto.js +191 -0
- package/dist/adapters/postgresql/resources/crypto.js.map +1 -0
- package/dist/adapters/postgresql/resources/extensions.d.ts +9 -0
- package/dist/adapters/postgresql/resources/extensions.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/extensions.js +85 -0
- package/dist/adapters/postgresql/resources/extensions.js.map +1 -0
- package/dist/adapters/postgresql/resources/health.d.ts +9 -0
- package/dist/adapters/postgresql/resources/health.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/health.js +185 -0
- package/dist/adapters/postgresql/resources/health.js.map +1 -0
- package/dist/adapters/postgresql/resources/index.d.ts +40 -0
- package/dist/adapters/postgresql/resources/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/index.js +87 -0
- package/dist/adapters/postgresql/resources/index.js.map +1 -0
- package/dist/adapters/postgresql/resources/indexes.d.ts +9 -0
- package/dist/adapters/postgresql/resources/indexes.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/indexes.js +130 -0
- package/dist/adapters/postgresql/resources/indexes.js.map +1 -0
- package/dist/adapters/postgresql/resources/kcache.d.ts +9 -0
- package/dist/adapters/postgresql/resources/kcache.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/kcache.js +219 -0
- package/dist/adapters/postgresql/resources/kcache.js.map +1 -0
- package/dist/adapters/postgresql/resources/locks.d.ts +9 -0
- package/dist/adapters/postgresql/resources/locks.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/locks.js +89 -0
- package/dist/adapters/postgresql/resources/locks.js.map +1 -0
- package/dist/adapters/postgresql/resources/partman.d.ts +9 -0
- package/dist/adapters/postgresql/resources/partman.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/partman.js +149 -0
- package/dist/adapters/postgresql/resources/partman.js.map +1 -0
- package/dist/adapters/postgresql/resources/performance.d.ts +9 -0
- package/dist/adapters/postgresql/resources/performance.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/performance.js +170 -0
- package/dist/adapters/postgresql/resources/performance.js.map +1 -0
- package/dist/adapters/postgresql/resources/pool.d.ts +9 -0
- package/dist/adapters/postgresql/resources/pool.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/pool.js +93 -0
- package/dist/adapters/postgresql/resources/pool.js.map +1 -0
- package/dist/adapters/postgresql/resources/postgis.d.ts +9 -0
- package/dist/adapters/postgresql/resources/postgis.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/postgis.js +232 -0
- package/dist/adapters/postgresql/resources/postgis.js.map +1 -0
- package/dist/adapters/postgresql/resources/replication.d.ts +9 -0
- package/dist/adapters/postgresql/resources/replication.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/replication.js +126 -0
- package/dist/adapters/postgresql/resources/replication.js.map +1 -0
- package/dist/adapters/postgresql/resources/schema.d.ts +10 -0
- package/dist/adapters/postgresql/resources/schema.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/schema.js +80 -0
- package/dist/adapters/postgresql/resources/schema.js.map +1 -0
- package/dist/adapters/postgresql/resources/settings.d.ts +9 -0
- package/dist/adapters/postgresql/resources/settings.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/settings.js +184 -0
- package/dist/adapters/postgresql/resources/settings.js.map +1 -0
- package/dist/adapters/postgresql/resources/stats.d.ts +10 -0
- package/dist/adapters/postgresql/resources/stats.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/stats.js +124 -0
- package/dist/adapters/postgresql/resources/stats.js.map +1 -0
- package/dist/adapters/postgresql/resources/tables.d.ts +9 -0
- package/dist/adapters/postgresql/resources/tables.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/tables.js +20 -0
- package/dist/adapters/postgresql/resources/tables.js.map +1 -0
- package/dist/adapters/postgresql/resources/vacuum.d.ts +9 -0
- package/dist/adapters/postgresql/resources/vacuum.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/vacuum.js +122 -0
- package/dist/adapters/postgresql/resources/vacuum.js.map +1 -0
- package/dist/adapters/postgresql/resources/vector.d.ts +9 -0
- package/dist/adapters/postgresql/resources/vector.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/vector.js +185 -0
- package/dist/adapters/postgresql/resources/vector.js.map +1 -0
- package/dist/adapters/postgresql/schemas/admin.d.ts +74 -0
- package/dist/adapters/postgresql/schemas/admin.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/admin.js +180 -0
- package/dist/adapters/postgresql/schemas/admin.js.map +1 -0
- package/dist/adapters/postgresql/schemas/backup.d.ts +68 -0
- package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/backup.js +114 -0
- package/dist/adapters/postgresql/schemas/backup.js.map +1 -0
- package/dist/adapters/postgresql/schemas/core.d.ts +443 -0
- package/dist/adapters/postgresql/schemas/core.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/core.js +628 -0
- package/dist/adapters/postgresql/schemas/core.js.map +1 -0
- package/dist/adapters/postgresql/schemas/cron.d.ts +131 -0
- package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/cron.js +218 -0
- package/dist/adapters/postgresql/schemas/cron.js.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions.d.ts +403 -0
- package/dist/adapters/postgresql/schemas/extensions.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions.js +600 -0
- package/dist/adapters/postgresql/schemas/extensions.js.map +1 -0
- package/dist/adapters/postgresql/schemas/index.d.ts +21 -0
- package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/index.js +72 -0
- package/dist/adapters/postgresql/schemas/index.js.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb.d.ts +94 -0
- package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb.js +198 -0
- package/dist/adapters/postgresql/schemas/jsonb.js.map +1 -0
- package/dist/adapters/postgresql/schemas/monitoring.d.ts +28 -0
- package/dist/adapters/postgresql/schemas/monitoring.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/monitoring.js +45 -0
- package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -0
- package/dist/adapters/postgresql/schemas/partitioning.d.ts +152 -0
- package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/partitioning.js +399 -0
- package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -0
- package/dist/adapters/postgresql/schemas/partman.d.ts +94 -0
- package/dist/adapters/postgresql/schemas/partman.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/partman.js +264 -0
- package/dist/adapters/postgresql/schemas/partman.js.map +1 -0
- package/dist/adapters/postgresql/schemas/performance.d.ts +52 -0
- package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/performance.js +57 -0
- package/dist/adapters/postgresql/schemas/performance.js.map +1 -0
- package/dist/adapters/postgresql/schemas/postgis.d.ts +693 -0
- package/dist/adapters/postgresql/schemas/postgis.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/postgis.js +662 -0
- package/dist/adapters/postgresql/schemas/postgis.js.map +1 -0
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +171 -0
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/schema-mgmt.js +235 -0
- package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -0
- package/dist/adapters/postgresql/schemas/stats.d.ts +229 -0
- package/dist/adapters/postgresql/schemas/stats.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/stats.js +587 -0
- package/dist/adapters/postgresql/schemas/stats.js.map +1 -0
- package/dist/adapters/postgresql/schemas/text-search.d.ts +83 -0
- package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/text-search.js +132 -0
- package/dist/adapters/postgresql/schemas/text-search.js.map +1 -0
- package/dist/adapters/postgresql/schemas/vector.d.ts +143 -0
- package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/vector.js +123 -0
- package/dist/adapters/postgresql/schemas/vector.js.map +1 -0
- package/dist/adapters/postgresql/tools/admin.d.ts +13 -0
- package/dist/adapters/postgresql/tools/admin.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/admin.js +417 -0
- package/dist/adapters/postgresql/tools/admin.js.map +1 -0
- package/dist/adapters/postgresql/tools/backup/dump.d.ts +12 -0
- package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/backup/dump.js +546 -0
- package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -0
- package/dist/adapters/postgresql/tools/backup/index.d.ts +16 -0
- package/dist/adapters/postgresql/tools/backup/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/backup/index.js +29 -0
- package/dist/adapters/postgresql/tools/backup/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/backup/planning.d.ts +22 -0
- package/dist/adapters/postgresql/tools/backup/planning.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/backup/planning.js +411 -0
- package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -0
- package/dist/adapters/postgresql/tools/citext.d.ts +18 -0
- package/dist/adapters/postgresql/tools/citext.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/citext.js +568 -0
- package/dist/adapters/postgresql/tools/citext.js.map +1 -0
- package/dist/adapters/postgresql/tools/codemode/index.d.ts +27 -0
- package/dist/adapters/postgresql/tools/codemode/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/codemode/index.js +171 -0
- package/dist/adapters/postgresql/tools/codemode/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/convenience.d.ts +192 -0
- package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/convenience.js +617 -0
- package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/health.d.ts +20 -0
- package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/health.js +360 -0
- package/dist/adapters/postgresql/tools/core/health.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/index.d.ts +15 -0
- package/dist/adapters/postgresql/tools/core/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/index.js +40 -0
- package/dist/adapters/postgresql/tools/core/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/indexes.d.ts +30 -0
- package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/indexes.js +232 -0
- package/dist/adapters/postgresql/tools/core/indexes.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/objects.d.ts +20 -0
- package/dist/adapters/postgresql/tools/core/objects.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/objects.js +361 -0
- package/dist/adapters/postgresql/tools/core/objects.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/query.d.ts +16 -0
- package/dist/adapters/postgresql/tools/core/query.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/query.js +87 -0
- package/dist/adapters/postgresql/tools/core/query.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/schemas.d.ts +135 -0
- package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/schemas.js +221 -0
- package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/tables.d.ts +24 -0
- package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/tables.js +219 -0
- package/dist/adapters/postgresql/tools/core/tables.js.map +1 -0
- package/dist/adapters/postgresql/tools/cron.d.ts +16 -0
- package/dist/adapters/postgresql/tools/cron.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/cron.js +440 -0
- package/dist/adapters/postgresql/tools/cron.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts +33 -0
- package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/advanced.js +681 -0
- package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/basic.d.ts +20 -0
- package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/basic.js +654 -0
- package/dist/adapters/postgresql/tools/jsonb/basic.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/index.d.ts +16 -0
- package/dist/adapters/postgresql/tools/jsonb/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/index.js +39 -0
- package/dist/adapters/postgresql/tools/jsonb/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/kcache.d.ts +20 -0
- package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/kcache.js +574 -0
- package/dist/adapters/postgresql/tools/kcache.js.map +1 -0
- package/dist/adapters/postgresql/tools/ltree.d.ts +8 -0
- package/dist/adapters/postgresql/tools/ltree.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/ltree.js +390 -0
- package/dist/adapters/postgresql/tools/ltree.js.map +1 -0
- package/dist/adapters/postgresql/tools/monitoring.d.ts +13 -0
- package/dist/adapters/postgresql/tools/monitoring.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/monitoring.js +753 -0
- package/dist/adapters/postgresql/tools/monitoring.js.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning.d.ts +13 -0
- package/dist/adapters/postgresql/tools/partitioning.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning.js +500 -0
- package/dist/adapters/postgresql/tools/partitioning.js.map +1 -0
- package/dist/adapters/postgresql/tools/partman/index.d.ts +19 -0
- package/dist/adapters/postgresql/tools/partman/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partman/index.js +33 -0
- package/dist/adapters/postgresql/tools/partman/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/partman/management.d.ts +28 -0
- package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partman/management.js +563 -0
- package/dist/adapters/postgresql/tools/partman/management.js.map +1 -0
- package/dist/adapters/postgresql/tools/partman/operations.d.ts +28 -0
- package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partman/operations.js +632 -0
- package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/analysis.d.ts +9 -0
- package/dist/adapters/postgresql/tools/performance/analysis.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/analysis.js +383 -0
- package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/explain.d.ts +13 -0
- package/dist/adapters/postgresql/tools/performance/explain.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/explain.js +71 -0
- package/dist/adapters/postgresql/tools/performance/explain.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/index.d.ts +13 -0
- package/dist/adapters/postgresql/tools/performance/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/index.js +40 -0
- package/dist/adapters/postgresql/tools/performance/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/monitoring.d.ts +9 -0
- package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/monitoring.js +122 -0
- package/dist/adapters/postgresql/tools/performance/monitoring.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/optimization.d.ts +9 -0
- package/dist/adapters/postgresql/tools/performance/optimization.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/optimization.js +315 -0
- package/dist/adapters/postgresql/tools/performance/optimization.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/stats.d.ts +14 -0
- package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/stats.js +559 -0
- package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -0
- package/dist/adapters/postgresql/tools/pgcrypto.d.ts +8 -0
- package/dist/adapters/postgresql/tools/pgcrypto.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/pgcrypto.js +239 -0
- package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/advanced.d.ts +21 -0
- package/dist/adapters/postgresql/tools/postgis/advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/advanced.js +383 -0
- package/dist/adapters/postgresql/tools/postgis/advanced.js.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/basic.d.ts +16 -0
- package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/basic.js +479 -0
- package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/index.d.ts +17 -0
- package/dist/adapters/postgresql/tools/postgis/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/index.js +46 -0
- package/dist/adapters/postgresql/tools/postgis/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/standalone.d.ts +21 -0
- package/dist/adapters/postgresql/tools/postgis/standalone.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/standalone.js +150 -0
- package/dist/adapters/postgresql/tools/postgis/standalone.js.map +1 -0
- package/dist/adapters/postgresql/tools/schema.d.ts +13 -0
- package/dist/adapters/postgresql/tools/schema.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/schema.js +515 -0
- package/dist/adapters/postgresql/tools/schema.js.map +1 -0
- package/dist/adapters/postgresql/tools/stats/advanced.d.ts +24 -0
- package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/stats/advanced.js +876 -0
- package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -0
- package/dist/adapters/postgresql/tools/stats/basic.d.ts +24 -0
- package/dist/adapters/postgresql/tools/stats/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/stats/basic.js +501 -0
- package/dist/adapters/postgresql/tools/stats/basic.js.map +1 -0
- package/dist/adapters/postgresql/tools/stats/index.d.ts +17 -0
- package/dist/adapters/postgresql/tools/stats/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/stats/index.js +30 -0
- package/dist/adapters/postgresql/tools/stats/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/text.d.ts +13 -0
- package/dist/adapters/postgresql/tools/text.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/text.js +708 -0
- package/dist/adapters/postgresql/tools/text.js.map +1 -0
- package/dist/adapters/postgresql/tools/transactions.d.ts +13 -0
- package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/transactions.js +201 -0
- package/dist/adapters/postgresql/tools/transactions.js.map +1 -0
- package/dist/adapters/postgresql/tools/vector/advanced.d.ts +12 -0
- package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/advanced.js +902 -0
- package/dist/adapters/postgresql/tools/vector/advanced.js.map +1 -0
- package/dist/adapters/postgresql/tools/vector/basic.d.ts +25 -0
- package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/basic.js +1000 -0
- package/dist/adapters/postgresql/tools/vector/basic.js.map +1 -0
- package/dist/adapters/postgresql/tools/vector/index.d.ts +13 -0
- package/dist/adapters/postgresql/tools/vector/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/index.js +33 -0
- package/dist/adapters/postgresql/tools/vector/index.js.map +1 -0
- package/dist/auth/AuthorizationServerDiscovery.d.ts +44 -0
- package/dist/auth/AuthorizationServerDiscovery.d.ts.map +1 -0
- package/dist/auth/AuthorizationServerDiscovery.js +117 -0
- package/dist/auth/AuthorizationServerDiscovery.js.map +1 -0
- package/dist/auth/OAuthResourceServer.d.ts +42 -0
- package/dist/auth/OAuthResourceServer.d.ts.map +1 -0
- package/dist/auth/OAuthResourceServer.js +80 -0
- package/dist/auth/OAuthResourceServer.js.map +1 -0
- package/dist/auth/TokenValidator.d.ts +36 -0
- package/dist/auth/TokenValidator.d.ts.map +1 -0
- package/dist/auth/TokenValidator.js +139 -0
- package/dist/auth/TokenValidator.js.map +1 -0
- package/dist/auth/errors.d.ts +63 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/errors.js +102 -0
- package/dist/auth/errors.js.map +1 -0
- package/dist/auth/index.d.ts +15 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +16 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/middleware.d.ts +61 -0
- package/dist/auth/middleware.d.ts.map +1 -0
- package/dist/auth/middleware.js +156 -0
- package/dist/auth/middleware.js.map +1 -0
- package/dist/auth/scopes.d.ts +65 -0
- package/dist/auth/scopes.d.ts.map +1 -0
- package/dist/auth/scopes.js +189 -0
- package/dist/auth/scopes.js.map +1 -0
- package/dist/auth/types.d.ts +208 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +8 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/cli/args.d.ts +34 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +308 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +7 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +341 -0
- package/dist/cli.js.map +1 -0
- package/dist/codemode/api.d.ts +62 -0
- package/dist/codemode/api.d.ts.map +1 -0
- package/dist/codemode/api.js +1505 -0
- package/dist/codemode/api.js.map +1 -0
- package/dist/codemode/index.d.ts +13 -0
- package/dist/codemode/index.d.ts.map +1 -0
- package/dist/codemode/index.js +17 -0
- package/dist/codemode/index.js.map +1 -0
- package/dist/codemode/sandbox-factory.d.ts +72 -0
- package/dist/codemode/sandbox-factory.d.ts.map +1 -0
- package/dist/codemode/sandbox-factory.js +88 -0
- package/dist/codemode/sandbox-factory.js.map +1 -0
- package/dist/codemode/sandbox.d.ts +96 -0
- package/dist/codemode/sandbox.d.ts.map +1 -0
- package/dist/codemode/sandbox.js +345 -0
- package/dist/codemode/sandbox.js.map +1 -0
- package/dist/codemode/security.d.ts +44 -0
- package/dist/codemode/security.d.ts.map +1 -0
- package/dist/codemode/security.js +149 -0
- package/dist/codemode/security.js.map +1 -0
- package/dist/codemode/types.d.ts +137 -0
- package/dist/codemode/types.d.ts.map +1 -0
- package/dist/codemode/types.js +46 -0
- package/dist/codemode/types.js.map +1 -0
- package/dist/codemode/worker-sandbox.d.ts +82 -0
- package/dist/codemode/worker-sandbox.d.ts.map +1 -0
- package/dist/codemode/worker-sandbox.js +244 -0
- package/dist/codemode/worker-sandbox.js.map +1 -0
- package/dist/codemode/worker-script.d.ts +8 -0
- package/dist/codemode/worker-script.d.ts.map +1 -0
- package/dist/codemode/worker-script.js +113 -0
- package/dist/codemode/worker-script.js.map +1 -0
- package/dist/constants/ServerInstructions.d.ts +13 -0
- package/dist/constants/ServerInstructions.d.ts.map +1 -0
- package/dist/constants/ServerInstructions.js +405 -0
- package/dist/constants/ServerInstructions.js.map +1 -0
- package/dist/filtering/ToolConstants.d.ts +43 -0
- package/dist/filtering/ToolConstants.d.ts.map +1 -0
- package/dist/filtering/ToolConstants.js +352 -0
- package/dist/filtering/ToolConstants.js.map +1 -0
- package/dist/filtering/ToolFilter.d.ts +90 -0
- package/dist/filtering/ToolFilter.d.ts.map +1 -0
- package/dist/filtering/ToolFilter.js +315 -0
- package/dist/filtering/ToolFilter.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/pool/ConnectionPool.d.ts +70 -0
- package/dist/pool/ConnectionPool.d.ts.map +1 -0
- package/dist/pool/ConnectionPool.js +254 -0
- package/dist/pool/ConnectionPool.js.map +1 -0
- package/dist/server/McpServer.d.ts +50 -0
- package/dist/server/McpServer.d.ts.map +1 -0
- package/dist/server/McpServer.js +108 -0
- package/dist/server/McpServer.js.map +1 -0
- package/dist/transports/http.d.ts +126 -0
- package/dist/transports/http.d.ts.map +1 -0
- package/dist/transports/http.js +303 -0
- package/dist/transports/http.js.map +1 -0
- package/dist/transports/index.d.ts +8 -0
- package/dist/transports/index.d.ts.map +1 -0
- package/dist/transports/index.js +7 -0
- package/dist/transports/index.js.map +1 -0
- package/dist/types/adapters.d.ts +136 -0
- package/dist/types/adapters.d.ts.map +1 -0
- package/dist/types/adapters.js +7 -0
- package/dist/types/adapters.js.map +1 -0
- package/dist/types/database.d.ts +204 -0
- package/dist/types/database.d.ts.map +1 -0
- package/dist/types/database.js +7 -0
- package/dist/types/database.js.map +1 -0
- package/dist/types/errors.d.ts +62 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +91 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/filtering.d.ts +39 -0
- package/dist/types/filtering.d.ts.map +1 -0
- package/dist/types/filtering.js +7 -0
- package/dist/types/filtering.js.map +1 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +11 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +31 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +7 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/oauth.d.ts +65 -0
- package/dist/types/oauth.d.ts.map +1 -0
- package/dist/types/oauth.js +7 -0
- package/dist/types/oauth.js.map +1 -0
- package/dist/types/schema.d.ts +110 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/schema.js +7 -0
- package/dist/types/schema.js.map +1 -0
- package/dist/utils/annotations.d.ts +42 -0
- package/dist/utils/annotations.d.ts.map +1 -0
- package/dist/utils/annotations.js +75 -0
- package/dist/utils/annotations.js.map +1 -0
- package/dist/utils/icons.d.ts +25 -0
- package/dist/utils/icons.d.ts.map +1 -0
- package/dist/utils/icons.js +212 -0
- package/dist/utils/icons.js.map +1 -0
- package/dist/utils/identifiers.d.ts +111 -0
- package/dist/utils/identifiers.d.ts.map +1 -0
- package/dist/utils/identifiers.js +270 -0
- package/dist/utils/identifiers.js.map +1 -0
- package/dist/utils/logger.d.ts +141 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +304 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/promptGenerator.d.ts +20 -0
- package/dist/utils/promptGenerator.d.ts.map +1 -0
- package/dist/utils/promptGenerator.js +81 -0
- package/dist/utils/promptGenerator.js.map +1 -0
- package/dist/utils/resourceAnnotations.d.ts +36 -0
- package/dist/utils/resourceAnnotations.d.ts.map +1 -0
- package/dist/utils/resourceAnnotations.js +57 -0
- package/dist/utils/resourceAnnotations.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostgreSQL MCP Prompts
|
|
3
|
+
*
|
|
4
|
+
* AI-powered prompts for query building, schema design, and optimization.
|
|
5
|
+
* 19 prompts total.
|
|
6
|
+
*/
|
|
7
|
+
// Import modular prompts
|
|
8
|
+
import { createDatabaseHealthCheckPrompt } from "./health.js";
|
|
9
|
+
import { createBackupStrategyPrompt } from "./backup.js";
|
|
10
|
+
import { createIndexTuningPrompt } from "./indexTuning.js";
|
|
11
|
+
import { createExtensionSetupPrompt } from "./extensionSetup.js";
|
|
12
|
+
import { createSetupPgvectorPrompt } from "./pgvector.js";
|
|
13
|
+
import { createSetupPostgisPrompt } from "./postgis.js";
|
|
14
|
+
import { createSetupPgcronPrompt } from "./pgcron.js";
|
|
15
|
+
import { createSetupPartmanPrompt } from "./partman.js";
|
|
16
|
+
import { createSetupKcachePrompt } from "./kcache.js";
|
|
17
|
+
import { createSetupCitextPrompt } from "./citext.js";
|
|
18
|
+
import { createSetupLtreePrompt } from "./ltree.js";
|
|
19
|
+
import { createSetupPgcryptoPrompt } from "./pgcrypto.js";
|
|
20
|
+
/**
|
|
21
|
+
* Get all PostgreSQL prompts
|
|
22
|
+
*/
|
|
23
|
+
export function getPostgresPrompts(adapter) {
|
|
24
|
+
const allToolDefinitions = adapter.getToolDefinitions();
|
|
25
|
+
return [
|
|
26
|
+
// Original prompts
|
|
27
|
+
createQueryBuilderPrompt(),
|
|
28
|
+
createSchemaDesignPrompt(),
|
|
29
|
+
createPerformanceAnalysisPrompt(),
|
|
30
|
+
createMigrationPrompt(),
|
|
31
|
+
createToolIndexPrompt(allToolDefinitions),
|
|
32
|
+
createQuickQueryPrompt(),
|
|
33
|
+
createQuickSchemaPrompt(),
|
|
34
|
+
// Migrated prompts from legacy postgres-mcp-server
|
|
35
|
+
createDatabaseHealthCheckPrompt(),
|
|
36
|
+
createBackupStrategyPrompt(),
|
|
37
|
+
createIndexTuningPrompt(),
|
|
38
|
+
createExtensionSetupPrompt(),
|
|
39
|
+
createSetupPgvectorPrompt(),
|
|
40
|
+
createSetupPostgisPrompt(),
|
|
41
|
+
// Extension setup prompts
|
|
42
|
+
createSetupPgcronPrompt(),
|
|
43
|
+
createSetupPartmanPrompt(),
|
|
44
|
+
createSetupKcachePrompt(),
|
|
45
|
+
createSetupCitextPrompt(),
|
|
46
|
+
createSetupLtreePrompt(),
|
|
47
|
+
createSetupPgcryptoPrompt(),
|
|
48
|
+
];
|
|
49
|
+
}
|
|
50
|
+
function createQueryBuilderPrompt() {
|
|
51
|
+
return {
|
|
52
|
+
name: "pg_query_builder",
|
|
53
|
+
description: "Build a PostgreSQL query based on requirements. Specify tables and operation type.",
|
|
54
|
+
arguments: [
|
|
55
|
+
{
|
|
56
|
+
name: "tables",
|
|
57
|
+
description: "Comma-separated list of tables",
|
|
58
|
+
required: true,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "operation",
|
|
62
|
+
description: "Operation type: SELECT, INSERT, UPDATE, DELETE, JOIN, CTE",
|
|
63
|
+
required: true,
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
67
|
+
handler: async (args, _context) => {
|
|
68
|
+
const tables = args["tables"] ?? "";
|
|
69
|
+
const operation = args["operation"] ?? "";
|
|
70
|
+
return `Please construct a PostgreSQL query for the following requirements:
|
|
71
|
+
|
|
72
|
+
**Tables:** ${tables}
|
|
73
|
+
**Operation:** ${operation}
|
|
74
|
+
|
|
75
|
+
Consider these PostgreSQL best practices:
|
|
76
|
+
1. Use parameterized queries ($1, $2, etc.) for all user input
|
|
77
|
+
2. Include appropriate WHERE clauses to limit results
|
|
78
|
+
3. Use RETURNING clause for INSERT/UPDATE/DELETE when appropriate
|
|
79
|
+
4. Consider using CTEs (WITH queries) for complex logic
|
|
80
|
+
5. Add LIMIT for SELECT queries when full results aren't needed
|
|
81
|
+
6. Use proper index hints if performance is critical
|
|
82
|
+
|
|
83
|
+
Please provide the SQL query with explanations for each part.`;
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function createSchemaDesignPrompt() {
|
|
88
|
+
return {
|
|
89
|
+
name: "pg_schema_design",
|
|
90
|
+
description: "Design a database schema for a given use case.",
|
|
91
|
+
arguments: [
|
|
92
|
+
{
|
|
93
|
+
name: "useCase",
|
|
94
|
+
description: "Description of the use case or domain",
|
|
95
|
+
required: true,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: "requirements",
|
|
99
|
+
description: "Specific requirements or constraints",
|
|
100
|
+
required: false,
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
104
|
+
handler: async (args, _context) => {
|
|
105
|
+
const useCase = args["useCase"] ?? "";
|
|
106
|
+
const requirements = args["requirements"] ?? "";
|
|
107
|
+
return `Please design a PostgreSQL database schema for the following use case:
|
|
108
|
+
|
|
109
|
+
**Use Case:** ${useCase}
|
|
110
|
+
${requirements ? `**Requirements:** ${requirements}` : ""}
|
|
111
|
+
|
|
112
|
+
Consider these PostgreSQL-specific features:
|
|
113
|
+
1. Use appropriate data types (JSONB for flexible data, UUID for IDs, TIMESTAMPTZ for dates)
|
|
114
|
+
2. Define proper primary keys and foreign key relationships
|
|
115
|
+
3. Add CHECK constraints for data validation
|
|
116
|
+
4. Consider using SERIAL or IDENTITY for auto-increment columns
|
|
117
|
+
5. Plan for indexes on frequently queried columns
|
|
118
|
+
6. Use schemas (namespaces) to organize related tables
|
|
119
|
+
7. Consider table partitioning for large tables
|
|
120
|
+
|
|
121
|
+
Please provide:
|
|
122
|
+
- CREATE TABLE statements
|
|
123
|
+
- Index recommendations
|
|
124
|
+
- Constraint definitions
|
|
125
|
+
- Any relevant views or functions`;
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function createPerformanceAnalysisPrompt() {
|
|
130
|
+
return {
|
|
131
|
+
name: "pg_performance_analysis",
|
|
132
|
+
description: "Analyze a slow query and suggest optimizations.",
|
|
133
|
+
arguments: [
|
|
134
|
+
{
|
|
135
|
+
name: "query",
|
|
136
|
+
description: "The SQL query to analyze",
|
|
137
|
+
required: true,
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
name: "context",
|
|
141
|
+
description: "Additional context (table sizes, current indexes, etc.)",
|
|
142
|
+
required: false,
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
146
|
+
handler: async (args, _context) => {
|
|
147
|
+
const query = args["query"] ?? "";
|
|
148
|
+
const context = args["context"] ?? "";
|
|
149
|
+
return `Please analyze this PostgreSQL query for performance issues:
|
|
150
|
+
|
|
151
|
+
\`\`\`sql
|
|
152
|
+
${query}
|
|
153
|
+
\`\`\`
|
|
154
|
+
${context ? `\n**Context:** ${context}` : ""}
|
|
155
|
+
|
|
156
|
+
Use these PostgreSQL tools to investigate:
|
|
157
|
+
1. \`pg_explain_analyze\` - Get execution plan with timing
|
|
158
|
+
2. \`pg_explain_buffers\` - Check buffer usage
|
|
159
|
+
3. \`pg_index_stats\` - Check if indexes are being used
|
|
160
|
+
4. \`pg_table_stats\` - Check table access patterns
|
|
161
|
+
5. \`pg_bloat_check\` - Check for table bloat
|
|
162
|
+
|
|
163
|
+
Please analyze and recommend:
|
|
164
|
+
- Missing indexes
|
|
165
|
+
- Query rewrites
|
|
166
|
+
- Configuration changes
|
|
167
|
+
- Maintenance operations (VACUUM, ANALYZE)`;
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
function createMigrationPrompt() {
|
|
172
|
+
return {
|
|
173
|
+
name: "pg_migration",
|
|
174
|
+
description: "Generate a migration plan for a schema change.",
|
|
175
|
+
arguments: [
|
|
176
|
+
{
|
|
177
|
+
name: "change",
|
|
178
|
+
description: "Description of the change",
|
|
179
|
+
required: true,
|
|
180
|
+
},
|
|
181
|
+
{ name: "table", description: "Target table name", required: false },
|
|
182
|
+
],
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
184
|
+
handler: async (args, _context) => {
|
|
185
|
+
const change = args["change"] ?? "";
|
|
186
|
+
const table = args["table"] ?? "";
|
|
187
|
+
return `Please create a PostgreSQL migration plan for:
|
|
188
|
+
|
|
189
|
+
**Change:** ${change}
|
|
190
|
+
${table ? `**Table:** ${table}` : ""}
|
|
191
|
+
|
|
192
|
+
Provide:
|
|
193
|
+
1. **Up Migration** - SQL to apply the change
|
|
194
|
+
2. **Down Migration** - SQL to rollback
|
|
195
|
+
3. **Safety Considerations**:
|
|
196
|
+
- Will this lock the table?
|
|
197
|
+
- Should this use CONCURRENTLY?
|
|
198
|
+
- What's the estimated impact on production?
|
|
199
|
+
4. **Testing Steps** - How to verify the migration worked
|
|
200
|
+
5. **Rollback Plan** - Steps if something goes wrong
|
|
201
|
+
|
|
202
|
+
Use PostgreSQL-specific features like:
|
|
203
|
+
- ALTER TABLE ... ADD COLUMN ... (with DEFAULT for non-nullable)
|
|
204
|
+
- CREATE INDEX CONCURRENTLY
|
|
205
|
+
- Transaction wrappers where appropriate`;
|
|
206
|
+
},
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
function createToolIndexPrompt(tools) {
|
|
210
|
+
return {
|
|
211
|
+
name: "pg_tool_index",
|
|
212
|
+
description: "Get a compact index of all available PostgreSQL tools for discovery.",
|
|
213
|
+
arguments: [],
|
|
214
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
215
|
+
handler: async (_args, _context) => {
|
|
216
|
+
const grouped = new Map();
|
|
217
|
+
for (const tool of tools) {
|
|
218
|
+
const group = tool.group;
|
|
219
|
+
const groupTools = grouped.get(group) ?? [];
|
|
220
|
+
const firstSentence = tool.description.split(".")[0] ?? tool.description;
|
|
221
|
+
groupTools.push({
|
|
222
|
+
name: tool.name,
|
|
223
|
+
desc: firstSentence,
|
|
224
|
+
});
|
|
225
|
+
grouped.set(group, groupTools);
|
|
226
|
+
}
|
|
227
|
+
const lines = [
|
|
228
|
+
`# PostgreSQL MCP Tools (${String(tools.length)} total)`,
|
|
229
|
+
"",
|
|
230
|
+
"Use specific tool names when needed. Ask for details about any tool.",
|
|
231
|
+
"",
|
|
232
|
+
];
|
|
233
|
+
for (const [group, groupTools] of grouped) {
|
|
234
|
+
lines.push(`## ${group} (${String(groupTools.length)})`);
|
|
235
|
+
for (const t of groupTools) {
|
|
236
|
+
lines.push(`- \`${t.name}\`: ${t.desc}`);
|
|
237
|
+
}
|
|
238
|
+
lines.push("");
|
|
239
|
+
}
|
|
240
|
+
return lines.join("\n");
|
|
241
|
+
},
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
function createQuickQueryPrompt() {
|
|
245
|
+
return {
|
|
246
|
+
name: "pg_quick_query",
|
|
247
|
+
description: "Quick SQL query guidance for common operations.",
|
|
248
|
+
arguments: [
|
|
249
|
+
{
|
|
250
|
+
name: "action",
|
|
251
|
+
description: 'What you want to do (e.g., "find users by email")',
|
|
252
|
+
required: true,
|
|
253
|
+
},
|
|
254
|
+
],
|
|
255
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
256
|
+
handler: async (args, _context) => {
|
|
257
|
+
const action = args["action"] ?? "";
|
|
258
|
+
return `To "${action}" in PostgreSQL, use:
|
|
259
|
+
|
|
260
|
+
**Tool:** \`pg_read_query\` for SELECT, \`pg_write_query\` for INSERT/UPDATE/DELETE
|
|
261
|
+
|
|
262
|
+
**Example pattern:**
|
|
263
|
+
\`\`\`sql
|
|
264
|
+
-- For read operations
|
|
265
|
+
SELECT * FROM table_name WHERE condition = $1;
|
|
266
|
+
|
|
267
|
+
-- For write operations
|
|
268
|
+
INSERT INTO table_name (col1, col2) VALUES ($1, $2) RETURNING *;
|
|
269
|
+
UPDATE table_name SET col1 = $1 WHERE condition = $2 RETURNING *;
|
|
270
|
+
DELETE FROM table_name WHERE condition = $1 RETURNING *;
|
|
271
|
+
\`\`\`
|
|
272
|
+
|
|
273
|
+
Provide your specific requirements and I'll help construct the exact query.`;
|
|
274
|
+
},
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
function createQuickSchemaPrompt() {
|
|
278
|
+
return {
|
|
279
|
+
name: "pg_quick_schema",
|
|
280
|
+
description: "Quick reference for exploring database schema.",
|
|
281
|
+
arguments: [],
|
|
282
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
283
|
+
handler: async (_args, _context) => {
|
|
284
|
+
return `# Quick Schema Exploration
|
|
285
|
+
|
|
286
|
+
**List all tables:**
|
|
287
|
+
\`pg_list_tables\`
|
|
288
|
+
|
|
289
|
+
**Describe a table:**
|
|
290
|
+
\`pg_describe_table\` with table name
|
|
291
|
+
|
|
292
|
+
**List schemas:**
|
|
293
|
+
\`pg_list_schemas\`
|
|
294
|
+
|
|
295
|
+
**View indexes:**
|
|
296
|
+
\`pg_get_indexes\` with table name
|
|
297
|
+
|
|
298
|
+
**Full schema export:**
|
|
299
|
+
Access resource: \`postgres://schema\`
|
|
300
|
+
|
|
301
|
+
**Schema statistics:**
|
|
302
|
+
Access resource: \`postgres://stats\`
|
|
303
|
+
|
|
304
|
+
What would you like to explore?`;
|
|
305
|
+
},
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Index Tuning Prompt
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive index analysis and optimization workflow.
|
|
5
|
+
*/
|
|
6
|
+
import type { PromptDefinition } from "../../../types/index.js";
|
|
7
|
+
export declare function createIndexTuningPrompt(): PromptDefinition;
|
|
8
|
+
//# sourceMappingURL=indexTuning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexTuning.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/indexTuning.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAEhF,wBAAgB,uBAAuB,IAAI,gBAAgB,CAqI1D"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Index Tuning Prompt
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive index analysis and optimization workflow.
|
|
5
|
+
*/
|
|
6
|
+
export function createIndexTuningPrompt() {
|
|
7
|
+
return {
|
|
8
|
+
name: "pg_index_tuning",
|
|
9
|
+
description: "Comprehensive index analysis covering unused, missing, and duplicate indexes.",
|
|
10
|
+
arguments: [
|
|
11
|
+
{
|
|
12
|
+
name: "schema",
|
|
13
|
+
description: "Schema name to analyze (default: public)",
|
|
14
|
+
required: false,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "focus",
|
|
18
|
+
description: "Focus area: all, unused, missing, duplicate",
|
|
19
|
+
required: false,
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
23
|
+
handler: async (args, _context) => {
|
|
24
|
+
const schema = args["schema"] ?? "public";
|
|
25
|
+
const focus = args["focus"] ?? "all";
|
|
26
|
+
let content = `# Index Tuning Workflow - Schema: ${schema}
|
|
27
|
+
|
|
28
|
+
Focus Area: **${focus.charAt(0).toUpperCase() + focus.slice(1)}**
|
|
29
|
+
|
|
30
|
+
## Analysis Steps
|
|
31
|
+
|
|
32
|
+
### 1. Current Index Usage
|
|
33
|
+
|
|
34
|
+
\`\`\`sql
|
|
35
|
+
SELECT
|
|
36
|
+
schemaname,
|
|
37
|
+
relname as tablename,
|
|
38
|
+
indexrelname as indexname,
|
|
39
|
+
idx_scan as index_scans,
|
|
40
|
+
pg_size_pretty(pg_relation_size(indexrelid)) as index_size
|
|
41
|
+
FROM pg_stat_user_indexes
|
|
42
|
+
WHERE schemaname = '${schema}'
|
|
43
|
+
ORDER BY idx_scan ASC;
|
|
44
|
+
\`\`\`
|
|
45
|
+
|
|
46
|
+
Use \`pg_index_stats\` for detailed analysis.
|
|
47
|
+
|
|
48
|
+
**What to look for:**
|
|
49
|
+
- idx_scan = 0 → Never used (candidates for removal)
|
|
50
|
+
- Large indexes with low scan counts → Expensive but rarely useful
|
|
51
|
+
`;
|
|
52
|
+
if (focus === "unused" || focus === "all") {
|
|
53
|
+
content += `
|
|
54
|
+
### 2. Unused Indexes
|
|
55
|
+
|
|
56
|
+
\`\`\`sql
|
|
57
|
+
SELECT indexrelname as indexname, pg_size_pretty(pg_relation_size(indexrelid)) as size
|
|
58
|
+
FROM pg_stat_user_indexes
|
|
59
|
+
WHERE idx_scan = 0 AND schemaname = '${schema}';
|
|
60
|
+
\`\`\`
|
|
61
|
+
|
|
62
|
+
**Before dropping:**
|
|
63
|
+
- Consider grace period (index might be for monthly reports)
|
|
64
|
+
- Check with application team
|
|
65
|
+
- Calculate storage savings
|
|
66
|
+
`;
|
|
67
|
+
}
|
|
68
|
+
if (focus === "missing" || focus === "all") {
|
|
69
|
+
content += `
|
|
70
|
+
### 3. Missing Indexes
|
|
71
|
+
|
|
72
|
+
Use \`pg_analyze_workload_indexes\` to find:
|
|
73
|
+
- Queries with sequential scans on large tables
|
|
74
|
+
- Joins without appropriate indexes
|
|
75
|
+
- WHERE clauses on unindexed columns
|
|
76
|
+
|
|
77
|
+
Test recommendations with \`pg_explain_analyze\` and hypothetical indexes.
|
|
78
|
+
`;
|
|
79
|
+
}
|
|
80
|
+
if (focus === "duplicate" || focus === "all") {
|
|
81
|
+
content += `
|
|
82
|
+
### 4. Duplicate/Redundant Indexes
|
|
83
|
+
|
|
84
|
+
\`\`\`sql
|
|
85
|
+
SELECT
|
|
86
|
+
t.tablename,
|
|
87
|
+
array_agg(i.indexname) as index_names,
|
|
88
|
+
i.indexdef
|
|
89
|
+
FROM pg_indexes i
|
|
90
|
+
JOIN pg_tables t ON i.tablename = t.tablename
|
|
91
|
+
WHERE t.schemaname = '${schema}'
|
|
92
|
+
GROUP BY t.tablename, i.indexdef
|
|
93
|
+
HAVING COUNT(*) > 1;
|
|
94
|
+
\`\`\`
|
|
95
|
+
|
|
96
|
+
**Redundant patterns:**
|
|
97
|
+
- Index on (a, b) makes index on (a) redundant
|
|
98
|
+
- Multiple indexes with same columns in different order
|
|
99
|
+
`;
|
|
100
|
+
}
|
|
101
|
+
content += `
|
|
102
|
+
### 5. Action Plan
|
|
103
|
+
|
|
104
|
+
**High Priority:**
|
|
105
|
+
- Drop unused indexes (immediate space savings)
|
|
106
|
+
- Add missing indexes for top slow queries
|
|
107
|
+
|
|
108
|
+
**Medium Priority:**
|
|
109
|
+
- Replace redundant indexes
|
|
110
|
+
- Rebuild bloated indexes
|
|
111
|
+
|
|
112
|
+
### 6. Safe Implementation
|
|
113
|
+
|
|
114
|
+
\`\`\`sql
|
|
115
|
+
-- Safe index creation (doesn't block table)
|
|
116
|
+
CREATE INDEX CONCURRENTLY idx_name ON table(column);
|
|
117
|
+
|
|
118
|
+
-- Safe index removal
|
|
119
|
+
BEGIN;
|
|
120
|
+
DROP INDEX IF EXISTS idx_old_unused;
|
|
121
|
+
-- Test queries here
|
|
122
|
+
COMMIT; -- or ROLLBACK if issues
|
|
123
|
+
\`\`\`
|
|
124
|
+
|
|
125
|
+
**Pro Tip:** Use CONCURRENTLY when creating indexes on production databases!`;
|
|
126
|
+
return content;
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=indexTuning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexTuning.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/indexTuning.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,+EAA+E;QACjF,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0CAA0C;gBACvD,QAAQ,EAAE,KAAK;aAChB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,6CAA6C;gBAC1D,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,4DAA4D;QAC5D,OAAO,EAAE,KAAK,EACZ,IAA4B,EAC5B,QAAwB,EACP,EAAE;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;YAErC,IAAI,OAAO,GAAG,qCAAqC,MAAM;;gBAE/C,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;;;;;;;;;;;;;;sBAcxC,MAAM;;;;;;;;;CAS3B,CAAC;YAEI,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC1C,OAAO,IAAI;;;;;;uCAMoB,MAAM;;;;;;;CAO5C,CAAC;YACI,CAAC;YAED,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC3C,OAAO,IAAI;;;;;;;;;CASlB,CAAC;YACI,CAAC;YAED,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC7C,OAAO,IAAI;;;;;;;;;;wBAUK,MAAM;;;;;;;;CAQ7B,CAAC;YACI,CAAC;YAED,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;6EAwB4D,CAAC;YAExE,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pg_stat_kcache Setup Prompt
|
|
3
|
+
*
|
|
4
|
+
* Complete guide for setting up OS-level performance monitoring with pg_stat_kcache.
|
|
5
|
+
*/
|
|
6
|
+
import type { PromptDefinition } from "../../../types/index.js";
|
|
7
|
+
export declare function createSetupKcachePrompt(): PromptDefinition;
|
|
8
|
+
//# sourceMappingURL=kcache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kcache.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/kcache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAEhF,wBAAgB,uBAAuB,IAAI,gBAAgB,CAuO1D"}
|