@neverinfamous/postgres-mcp 1.0.2 → 1.2.0

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.
Files changed (273) hide show
  1. package/README.md +65 -38
  2. package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
  3. package/dist/__tests__/mocks/adapter.js +0 -1
  4. package/dist/__tests__/mocks/adapter.js.map +1 -1
  5. package/dist/__tests__/mocks/pool.d.ts.map +1 -1
  6. package/dist/__tests__/mocks/pool.js +0 -1
  7. package/dist/__tests__/mocks/pool.js.map +1 -1
  8. package/dist/adapters/DatabaseAdapter.d.ts +5 -6
  9. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
  10. package/dist/adapters/DatabaseAdapter.js +74 -53
  11. package/dist/adapters/DatabaseAdapter.js.map +1 -1
  12. package/dist/adapters/postgresql/PostgresAdapter.d.ts +13 -0
  13. package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
  14. package/dist/adapters/postgresql/PostgresAdapter.js +73 -8
  15. package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
  16. package/dist/adapters/postgresql/prompts/backup.d.ts.map +1 -1
  17. package/dist/adapters/postgresql/prompts/backup.js +2 -3
  18. package/dist/adapters/postgresql/prompts/backup.js.map +1 -1
  19. package/dist/adapters/postgresql/prompts/citext.d.ts.map +1 -1
  20. package/dist/adapters/postgresql/prompts/citext.js +3 -4
  21. package/dist/adapters/postgresql/prompts/citext.js.map +1 -1
  22. package/dist/adapters/postgresql/prompts/extensionSetup.d.ts.map +1 -1
  23. package/dist/adapters/postgresql/prompts/extensionSetup.js +2 -3
  24. package/dist/adapters/postgresql/prompts/extensionSetup.js.map +1 -1
  25. package/dist/adapters/postgresql/prompts/health.d.ts.map +1 -1
  26. package/dist/adapters/postgresql/prompts/health.js +2 -3
  27. package/dist/adapters/postgresql/prompts/health.js.map +1 -1
  28. package/dist/adapters/postgresql/prompts/index.js +20 -27
  29. package/dist/adapters/postgresql/prompts/index.js.map +1 -1
  30. package/dist/adapters/postgresql/prompts/indexTuning.d.ts.map +1 -1
  31. package/dist/adapters/postgresql/prompts/indexTuning.js +2 -3
  32. package/dist/adapters/postgresql/prompts/indexTuning.js.map +1 -1
  33. package/dist/adapters/postgresql/prompts/kcache.d.ts.map +1 -1
  34. package/dist/adapters/postgresql/prompts/kcache.js +3 -4
  35. package/dist/adapters/postgresql/prompts/kcache.js.map +1 -1
  36. package/dist/adapters/postgresql/prompts/ltree.d.ts.map +1 -1
  37. package/dist/adapters/postgresql/prompts/ltree.js +3 -4
  38. package/dist/adapters/postgresql/prompts/ltree.js.map +1 -1
  39. package/dist/adapters/postgresql/prompts/partman.d.ts.map +1 -1
  40. package/dist/adapters/postgresql/prompts/partman.js +2 -3
  41. package/dist/adapters/postgresql/prompts/partman.js.map +1 -1
  42. package/dist/adapters/postgresql/prompts/pgcron.d.ts.map +1 -1
  43. package/dist/adapters/postgresql/prompts/pgcron.js +2 -3
  44. package/dist/adapters/postgresql/prompts/pgcron.js.map +1 -1
  45. package/dist/adapters/postgresql/prompts/pgcrypto.d.ts.map +1 -1
  46. package/dist/adapters/postgresql/prompts/pgcrypto.js +3 -4
  47. package/dist/adapters/postgresql/prompts/pgcrypto.js.map +1 -1
  48. package/dist/adapters/postgresql/prompts/pgvector.d.ts.map +1 -1
  49. package/dist/adapters/postgresql/prompts/pgvector.js +3 -4
  50. package/dist/adapters/postgresql/prompts/pgvector.js.map +1 -1
  51. package/dist/adapters/postgresql/prompts/postgis.d.ts.map +1 -1
  52. package/dist/adapters/postgresql/prompts/postgis.js +2 -3
  53. package/dist/adapters/postgresql/prompts/postgis.js.map +1 -1
  54. package/dist/adapters/postgresql/schemas/admin.d.ts +42 -0
  55. package/dist/adapters/postgresql/schemas/admin.d.ts.map +1 -1
  56. package/dist/adapters/postgresql/schemas/admin.js +61 -0
  57. package/dist/adapters/postgresql/schemas/admin.js.map +1 -1
  58. package/dist/adapters/postgresql/schemas/backup.d.ts +119 -0
  59. package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -1
  60. package/dist/adapters/postgresql/schemas/backup.js +169 -0
  61. package/dist/adapters/postgresql/schemas/backup.js.map +1 -1
  62. package/dist/adapters/postgresql/schemas/core.d.ts +28 -0
  63. package/dist/adapters/postgresql/schemas/core.d.ts.map +1 -1
  64. package/dist/adapters/postgresql/schemas/core.js +66 -0
  65. package/dist/adapters/postgresql/schemas/core.js.map +1 -1
  66. package/dist/adapters/postgresql/schemas/cron.d.ts +117 -0
  67. package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -1
  68. package/dist/adapters/postgresql/schemas/cron.js +148 -1
  69. package/dist/adapters/postgresql/schemas/cron.js.map +1 -1
  70. package/dist/adapters/postgresql/schemas/extensions.d.ts +335 -0
  71. package/dist/adapters/postgresql/schemas/extensions.d.ts.map +1 -1
  72. package/dist/adapters/postgresql/schemas/extensions.js +455 -2
  73. package/dist/adapters/postgresql/schemas/extensions.js.map +1 -1
  74. package/dist/adapters/postgresql/schemas/index.d.ts +15 -15
  75. package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
  76. package/dist/adapters/postgresql/schemas/index.js +56 -16
  77. package/dist/adapters/postgresql/schemas/index.js.map +1 -1
  78. package/dist/adapters/postgresql/schemas/jsonb.d.ts +408 -21
  79. package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +1 -1
  80. package/dist/adapters/postgresql/schemas/jsonb.js +544 -23
  81. package/dist/adapters/postgresql/schemas/jsonb.js.map +1 -1
  82. package/dist/adapters/postgresql/schemas/monitoring.d.ts +179 -0
  83. package/dist/adapters/postgresql/schemas/monitoring.d.ts.map +1 -1
  84. package/dist/adapters/postgresql/schemas/monitoring.js +240 -0
  85. package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -1
  86. package/dist/adapters/postgresql/schemas/partitioning.d.ts +60 -0
  87. package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -1
  88. package/dist/adapters/postgresql/schemas/partitioning.js +89 -2
  89. package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -1
  90. package/dist/adapters/postgresql/schemas/partman.d.ts +156 -0
  91. package/dist/adapters/postgresql/schemas/partman.d.ts.map +1 -1
  92. package/dist/adapters/postgresql/schemas/partman.js +203 -0
  93. package/dist/adapters/postgresql/schemas/partman.js.map +1 -1
  94. package/dist/adapters/postgresql/schemas/performance.d.ts +124 -0
  95. package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -1
  96. package/dist/adapters/postgresql/schemas/performance.js +220 -0
  97. package/dist/adapters/postgresql/schemas/performance.js.map +1 -1
  98. package/dist/adapters/postgresql/schemas/postgis.d.ts +173 -0
  99. package/dist/adapters/postgresql/schemas/postgis.d.ts.map +1 -1
  100. package/dist/adapters/postgresql/schemas/postgis.js +279 -3
  101. package/dist/adapters/postgresql/schemas/postgis.js.map +1 -1
  102. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +100 -0
  103. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -1
  104. package/dist/adapters/postgresql/schemas/schema-mgmt.js +133 -0
  105. package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -1
  106. package/dist/adapters/postgresql/schemas/stats.d.ts +248 -4
  107. package/dist/adapters/postgresql/schemas/stats.d.ts.map +1 -1
  108. package/dist/adapters/postgresql/schemas/stats.js +362 -0
  109. package/dist/adapters/postgresql/schemas/stats.js.map +1 -1
  110. package/dist/adapters/postgresql/schemas/text-search.d.ts +47 -0
  111. package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -1
  112. package/dist/adapters/postgresql/schemas/text-search.js +66 -1
  113. package/dist/adapters/postgresql/schemas/text-search.js.map +1 -1
  114. package/dist/adapters/postgresql/schemas/vector.d.ts +252 -0
  115. package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -1
  116. package/dist/adapters/postgresql/schemas/vector.js +373 -0
  117. package/dist/adapters/postgresql/schemas/vector.js.map +1 -1
  118. package/dist/adapters/postgresql/tools/admin.d.ts.map +1 -1
  119. package/dist/adapters/postgresql/tools/admin.js +37 -7
  120. package/dist/adapters/postgresql/tools/admin.js.map +1 -1
  121. package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -1
  122. package/dist/adapters/postgresql/tools/backup/dump.js +64 -52
  123. package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -1
  124. package/dist/adapters/postgresql/tools/backup/planning.d.ts.map +1 -1
  125. package/dist/adapters/postgresql/tools/backup/planning.js +181 -172
  126. package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -1
  127. package/dist/adapters/postgresql/tools/citext.d.ts.map +1 -1
  128. package/dist/adapters/postgresql/tools/citext.js +9 -1
  129. package/dist/adapters/postgresql/tools/citext.js.map +1 -1
  130. package/dist/adapters/postgresql/tools/codemode/index.d.ts +11 -0
  131. package/dist/adapters/postgresql/tools/codemode/index.d.ts.map +1 -1
  132. package/dist/adapters/postgresql/tools/codemode/index.js +33 -0
  133. package/dist/adapters/postgresql/tools/codemode/index.js.map +1 -1
  134. package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -1
  135. package/dist/adapters/postgresql/tools/core/convenience.js +31 -5
  136. package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -1
  137. package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -1
  138. package/dist/adapters/postgresql/tools/core/health.js +12 -4
  139. package/dist/adapters/postgresql/tools/core/health.js.map +1 -1
  140. package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -1
  141. package/dist/adapters/postgresql/tools/core/indexes.js +4 -0
  142. package/dist/adapters/postgresql/tools/core/indexes.js.map +1 -1
  143. package/dist/adapters/postgresql/tools/core/objects.d.ts.map +1 -1
  144. package/dist/adapters/postgresql/tools/core/objects.js +4 -1
  145. package/dist/adapters/postgresql/tools/core/objects.js.map +1 -1
  146. package/dist/adapters/postgresql/tools/core/query.d.ts.map +1 -1
  147. package/dist/adapters/postgresql/tools/core/query.js +6 -3
  148. package/dist/adapters/postgresql/tools/core/query.js.map +1 -1
  149. package/dist/adapters/postgresql/tools/core/schemas.d.ts +165 -0
  150. package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -1
  151. package/dist/adapters/postgresql/tools/core/schemas.js +242 -0
  152. package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -1
  153. package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -1
  154. package/dist/adapters/postgresql/tools/core/tables.js +11 -2
  155. package/dist/adapters/postgresql/tools/core/tables.js.map +1 -1
  156. package/dist/adapters/postgresql/tools/cron.d.ts.map +1 -1
  157. package/dist/adapters/postgresql/tools/cron.js +12 -2
  158. package/dist/adapters/postgresql/tools/cron.js.map +1 -1
  159. package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +1 -1
  160. package/dist/adapters/postgresql/tools/jsonb/advanced.js +56 -46
  161. package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +1 -1
  162. package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +1 -1
  163. package/dist/adapters/postgresql/tools/jsonb/basic.js +114 -72
  164. package/dist/adapters/postgresql/tools/jsonb/basic.js.map +1 -1
  165. package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -1
  166. package/dist/adapters/postgresql/tools/kcache.js +55 -16
  167. package/dist/adapters/postgresql/tools/kcache.js.map +1 -1
  168. package/dist/adapters/postgresql/tools/ltree.d.ts.map +1 -1
  169. package/dist/adapters/postgresql/tools/ltree.js +16 -1
  170. package/dist/adapters/postgresql/tools/ltree.js.map +1 -1
  171. package/dist/adapters/postgresql/tools/monitoring.d.ts.map +1 -1
  172. package/dist/adapters/postgresql/tools/monitoring.js +19 -7
  173. package/dist/adapters/postgresql/tools/monitoring.js.map +1 -1
  174. package/dist/adapters/postgresql/tools/partitioning.d.ts.map +1 -1
  175. package/dist/adapters/postgresql/tools/partitioning.js +80 -1
  176. package/dist/adapters/postgresql/tools/partitioning.js.map +1 -1
  177. package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -1
  178. package/dist/adapters/postgresql/tools/partman/management.js +9 -2
  179. package/dist/adapters/postgresql/tools/partman/management.js.map +1 -1
  180. package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -1
  181. package/dist/adapters/postgresql/tools/partman/operations.js +11 -4
  182. package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -1
  183. package/dist/adapters/postgresql/tools/performance/analysis.d.ts.map +1 -1
  184. package/dist/adapters/postgresql/tools/performance/analysis.js +4 -0
  185. package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -1
  186. package/dist/adapters/postgresql/tools/performance/explain.d.ts.map +1 -1
  187. package/dist/adapters/postgresql/tools/performance/explain.js +4 -1
  188. package/dist/adapters/postgresql/tools/performance/explain.js.map +1 -1
  189. package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -1
  190. package/dist/adapters/postgresql/tools/performance/monitoring.js +10 -8
  191. package/dist/adapters/postgresql/tools/performance/monitoring.js.map +1 -1
  192. package/dist/adapters/postgresql/tools/performance/optimization.d.ts.map +1 -1
  193. package/dist/adapters/postgresql/tools/performance/optimization.js +4 -0
  194. package/dist/adapters/postgresql/tools/performance/optimization.js.map +1 -1
  195. package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -1
  196. package/dist/adapters/postgresql/tools/performance/stats.js +13 -1
  197. package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -1
  198. package/dist/adapters/postgresql/tools/pgcrypto.d.ts.map +1 -1
  199. package/dist/adapters/postgresql/tools/pgcrypto.js +18 -9
  200. package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -1
  201. package/dist/adapters/postgresql/tools/postgis/advanced.d.ts.map +1 -1
  202. package/dist/adapters/postgresql/tools/postgis/advanced.js +41 -6
  203. package/dist/adapters/postgresql/tools/postgis/advanced.js.map +1 -1
  204. package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -1
  205. package/dist/adapters/postgresql/tools/postgis/basic.js +13 -3
  206. package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -1
  207. package/dist/adapters/postgresql/tools/postgis/standalone.d.ts.map +1 -1
  208. package/dist/adapters/postgresql/tools/postgis/standalone.js +6 -1
  209. package/dist/adapters/postgresql/tools/postgis/standalone.js.map +1 -1
  210. package/dist/adapters/postgresql/tools/schema.d.ts.map +1 -1
  211. package/dist/adapters/postgresql/tools/schema.js +33 -3
  212. package/dist/adapters/postgresql/tools/schema.js.map +1 -1
  213. package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -1
  214. package/dist/adapters/postgresql/tools/stats/advanced.js +59 -20
  215. package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -1
  216. package/dist/adapters/postgresql/tools/stats/basic.d.ts.map +1 -1
  217. package/dist/adapters/postgresql/tools/stats/basic.js +35 -13
  218. package/dist/adapters/postgresql/tools/stats/basic.js.map +1 -1
  219. package/dist/adapters/postgresql/tools/text.d.ts.map +1 -1
  220. package/dist/adapters/postgresql/tools/text.js +54 -33
  221. package/dist/adapters/postgresql/tools/text.js.map +1 -1
  222. package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -1
  223. package/dist/adapters/postgresql/tools/transactions.js +10 -1
  224. package/dist/adapters/postgresql/tools/transactions.js.map +1 -1
  225. package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +1 -1
  226. package/dist/adapters/postgresql/tools/vector/advanced.js +81 -43
  227. package/dist/adapters/postgresql/tools/vector/advanced.js.map +1 -1
  228. package/dist/adapters/postgresql/tools/vector/basic.d.ts +8 -0
  229. package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +1 -1
  230. package/dist/adapters/postgresql/tools/vector/basic.js +175 -57
  231. package/dist/adapters/postgresql/tools/vector/basic.js.map +1 -1
  232. package/dist/cli/args.d.ts +2 -0
  233. package/dist/cli/args.d.ts.map +1 -1
  234. package/dist/cli/args.js +15 -0
  235. package/dist/cli/args.js.map +1 -1
  236. package/dist/cli.js +7 -6
  237. package/dist/cli.js.map +1 -1
  238. package/dist/codemode/api.d.ts.map +1 -1
  239. package/dist/codemode/api.js +7 -2
  240. package/dist/codemode/api.js.map +1 -1
  241. package/dist/constants/ServerInstructions.d.ts +1 -1
  242. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  243. package/dist/constants/ServerInstructions.js +45 -35
  244. package/dist/constants/ServerInstructions.js.map +1 -1
  245. package/dist/filtering/ToolConstants.d.ts +29 -13
  246. package/dist/filtering/ToolConstants.d.ts.map +1 -1
  247. package/dist/filtering/ToolConstants.js +45 -27
  248. package/dist/filtering/ToolConstants.js.map +1 -1
  249. package/dist/types/adapters.d.ts +2 -0
  250. package/dist/types/adapters.d.ts.map +1 -1
  251. package/dist/types/oauth.d.ts +4 -0
  252. package/dist/types/oauth.d.ts.map +1 -1
  253. package/dist/utils/fts-config.d.ts +38 -0
  254. package/dist/utils/fts-config.d.ts.map +1 -0
  255. package/dist/utils/fts-config.js +64 -0
  256. package/dist/utils/fts-config.js.map +1 -0
  257. package/dist/utils/identifiers.d.ts +21 -0
  258. package/dist/utils/identifiers.d.ts.map +1 -1
  259. package/dist/utils/identifiers.js +48 -0
  260. package/dist/utils/identifiers.js.map +1 -1
  261. package/dist/utils/logger.d.ts +22 -1
  262. package/dist/utils/logger.d.ts.map +1 -1
  263. package/dist/utils/logger.js +73 -16
  264. package/dist/utils/logger.js.map +1 -1
  265. package/dist/utils/progress-utils.d.ts +44 -0
  266. package/dist/utils/progress-utils.d.ts.map +1 -0
  267. package/dist/utils/progress-utils.js +75 -0
  268. package/dist/utils/progress-utils.js.map +1 -0
  269. package/dist/utils/where-clause.d.ts +39 -0
  270. package/dist/utils/where-clause.d.ts.map +1 -0
  271. package/dist/utils/where-clause.js +123 -0
  272. package/dist/utils/where-clause.js.map +1 -0
  273. package/package.json +8 -8
@@ -22,7 +22,7 @@ export const SERVER_INSTRUCTIONS = `# postgres-mcp Code Mode
22
22
  7. **pg_list_objects type**: Use \`type\` (singular string) or \`types\` (array). Auto-converts: \`{type: 'table'}\` ≡ \`{types: ['table']}\`
23
23
  8. **pg_object_details**: Accepts: \`name\`, \`objectName\`, \`object\`, or \`table\`. Use \`type\`/\`objectType\` for type hint (supports: table, view, materialized_view, partitioned_table, function, sequence, index)
24
24
  9. **pg_exists optional WHERE**: \`where\`/\`condition\`/\`filter\` is optional. Without it, checks if table has any rows
25
- 10. **pg_describe_table**: Returns columns, foreignKeys, primaryKeyuse \`pg_get_indexes\` separately for index details
25
+ 10. **pg_describe_table**: Returns columns, foreignKeys, primaryKey, indexes, constraints. For listing ALL database indexes (not table-specific), use \`pg_get_indexes\` without \`table\` param
26
26
  11. **pg_vector_insert updateExisting**: Uses direct UPDATE (avoids NOT NULL constraint issues vs INSERT mode)
27
27
  12. **pg_get_indexes without table**: Returns ALL database indexes (potentially large). Use \`table\` param for specific table
28
28
  13. **pg_upsert/pg_batch_insert RETURNING**: \`returning\` param must be array of column names: \`["id", "name"]\`. ⛔ \`"*"\` wildcard not supported
@@ -33,8 +33,8 @@ export const SERVER_INSTRUCTIONS = `# postgres-mcp Code Mode
33
33
  | Tool | Returns | Notes |
34
34
  |------|---------|-------|
35
35
  | \`pg_read_query\` | \`{rows, rowCount, fields?}\` | \`fields\` contains column metadata (name, dataTypeID) |
36
- | \`pg_write_query\` | \`{rowsAffected, affectedRows, rows?}\` | \`rows\` only with RETURNING clause. ⛔ Throws for SELECT |
37
- | \`pg_upsert\` | \`{operation, rowsAffected, rowCount, rows?}\` | \`operation: 'insert'|'update'\`. \`rows\` only with RETURNING clause |
36
+ | \`pg_write_query\` | \`{rowsAffected, affectedRows, rows?}\` | \`rows\` only with RETURNING clause. DDL statements return \`rowsAffected: 0\`. ⛔ Throws for SELECT |
37
+ | \`pg_upsert\` | \`{success, operation, rowsAffected, rowCount, rows?}\` | \`operation: 'insert'|'update'\`. \`rows\` only with RETURNING clause |
38
38
  | \`pg_batch_insert\` | \`{rowsAffected, affectedRows, insertedCount, rows?}\` | Empty objects use DEFAULT VALUES. ⚠️ BIGINT > 2^53 loses precision |
39
39
  | \`pg_count\` | \`{count: N}\` | Use \`params\` for placeholders: \`where: 'id=$1', params: [5]\`. DISTINCT: use \`pg_read_query\` |
40
40
  | \`pg_exists\` | \`{exists: bool, mode, hint?}\` | \`params\` for placeholders. \`mode: 'filtered'|'any_rows'\` |
@@ -42,18 +42,23 @@ export const SERVER_INSTRUCTIONS = `# postgres-mcp Code Mode
42
42
  | \`pg_list_objects\` | \`{objects, count, totalCount, byType}\` | Use \`limit\` to cap results, \`type\`/\`types\` to filter |
43
43
  | \`pg_object_details\` | \`{name, schema, type, returnType?, ...}\` | Functions: \`returnType\` alias. Views/Mat. views: \`definition\` |
44
44
  | \`pg_analyze_db_health\` | \`{cacheHitRatio: {ratio, heap, index, status}}\` | \`ratio\` = primary numeric %. \`bloat\` available |
45
- | \`pg_describe_table\` | \`{columns, indexes, constraints, foreignKeys}\` | Columns include \`notNull\` (alias for \`!nullable\`), \`foreignKey\`. \`constraints\` includes PK, UNIQUE, CHECK, NOT NULL |
45
+ | \`pg_describe_table\` | \`{name, schema, type, owner, rowCount, columns, primaryKey, indexes, constraints, foreignKeys}\` | Columns include \`notNull\` (alias for \`!nullable\`), \`foreignKey\`. \`constraints\` includes PK, UNIQUE, CHECK, NOT NULL. ⚠️ \`rowCount: -1\` = stale/missing statistics (run ANALYZE on the table). Small tables (<~50 rows) may show -1 until first ANALYZE |
46
46
  | \`pg_analyze_query_indexes\` | \`{plan, issues, recommendations}\` | \`verbosity\`: 'summary' (default) or 'full'. Summary mode returns condensed plan |
47
- | \`pg_list_tables\` | \`{tables, count}\` | Use \`schema\` to filter, \`limit\` to cap results |
47
+ | \`pg_list_tables\` | \`{tables, count}\` | Use \`schema\` to filter, \`limit\` to cap results, \`exclude\` to hide extension schemas (e.g., \`['cron', 'topology', 'partman']\`) |
48
48
  | List operations | \`{items, count}\` | Access via \`result.tables\`, \`result.views\`, etc. |
49
49
  | \`pg_jsonb_agg groupBy\` | \`{result: [{group_key, items}], count, grouped: true}\` | Without groupBy: \`{result: [...], count, grouped: false}\` |
50
50
  | \`pg_vector_aggregate\` | \`{average_vector, count}\` or \`{groups: [{group_key, average_vector, count}]}\` | Without/with \`groupBy\` |
51
+ | \`pg_index_stats\` | \`{indexes, count, truncated?, totalCount?}\` | Default 50 rows. Use \`limit: 0\` for all |
52
+ | \`pg_table_stats\` | \`{tables, count, truncated?, totalCount?}\` | Default 50 rows. Use \`limit: 0\` for all |
53
+ | \`pg_vacuum_stats\` | \`{tables, count, truncated?, totalCount?}\` | Default 50 rows. Use \`limit: 0\` for all |
54
+ | \`pg_stat_statements\` | \`{statements, count, truncated?, totalCount?}\` | Default 20 rows. \`orderBy\` supported |
55
+ | \`pg_query_plan_stats\` | \`{queryPlanStats, count, truncated?, totalCount?}\` | Default 20 rows. \`truncateQuery: 0\` for full text |
51
56
 
52
57
  ## API Mapping
53
58
 
54
59
  \`pg_group_action\` → \`pg.group.action()\` (group prefixes dropped: \`pg_jsonb_extract\` → \`pg.jsonb.extract()\`)
55
60
 
56
- **Top-Level Core Aliases**: All starter tools available directly: \`pg.readQuery()\`, \`pg.writeQuery()\`, \`pg.listTables()\`, \`pg.describeTable()\`, \`pg.createTable()\`, \`pg.dropTable()\`, \`pg.count()\`, \`pg.exists()\`, \`pg.upsert()\`, \`pg.batchInsert()\`, \`pg.truncate()\`, \`pg.createIndex()\`, \`pg.dropIndex()\`, \`pg.getIndexes()\`, \`pg.listObjects()\`, \`pg.objectDetails()\`, \`pg.analyzeDbHealth()\`, \`pg.analyzeQueryIndexes()\`, \`pg.analyzeWorkloadIndexes()\`
61
+ **Top-Level Core Aliases**: All starter tools available directly: \`pg.readQuery()\`, \`pg.writeQuery()\`, \`pg.listTables()\`, \`pg.describeTable()\`, \`pg.createTable()\`, \`pg.dropTable()\`, \`pg.count()\`, \`pg.exists()\`, \`pg.upsert()\`, \`pg.batchInsert()\`, \`pg.truncate()\`, \`pg.createIndex()\`, \`pg.dropIndex()\`, \`pg.getIndexes()\`, \`pg.listObjects()\`, \`pg.objectDetails()\`, \`pg.listExtensions()\`, \`pg.analyzeDbHealth()\`, \`pg.analyzeQueryIndexes()\`, \`pg.analyzeWorkloadIndexes()\`
57
62
 
58
63
  **Positional args work**: \`readQuery("SELECT...")\`, \`exists("users", "id=1")\`, \`createIndex("users", ["email"])\`
59
64
 
@@ -69,6 +74,8 @@ export const SERVER_INSTRUCTIONS = `# postgres-mcp Code Mode
69
74
 
70
75
  ## Vector Tools
71
76
 
77
+ ⚠️ **Large Vectors**: Direct MCP tool calls may truncate vectors >256 dimensions due to JSON-RPC message size limits. For vectors ≥256 dimensions (e.g., OpenAI 1536-dim, local 384-dim), use Code Mode: \`await pg.vector.search({table, column, vector, limit})\`
78
+
72
79
  - \`pg_vector_search\`: Supports \`schema.table\` format (auto-parsed). Returns \`{results: [...], count, metric}\`. Use \`select: ["id", "name"]\` to include identifying columns. Without select, only returns distance. \`filter\` = \`where\`. ⚠️ Vectors read from DB are strings—parse before passing: \`vec.replace(/^\\[|\\]$/g, '').split(',').map(Number)\`
73
80
  - \`pg_vector_insert\`: Supports \`schema.table\` format (auto-parsed). Use \`updateExisting\` + \`conflictColumn\` + \`conflictValue\` for UPDATE mode. \`additionalColumns\` is applied in both INSERT and UPDATE modes
74
81
  - \`pg_vector_batch_insert\`: \`vectors\` expects \`[{vector: [...], data?: {...}}]\` objects, not raw arrays
@@ -78,27 +85,28 @@ export const SERVER_INSTRUCTIONS = `# postgres-mcp Code Mode
78
85
  - \`pg_vector_distance\`: Calculate distance between two vectors. \`metric\`: 'l2' (default), 'cosine', 'inner_product'. Returns \`{distance, metric}\`
79
86
  - \`pg_vector_cluster\`: \`clusters\` = \`k\`. Returns centroids with \`{preview, dimensions, truncated}\` format for large vectors (>10 dims)—use \`pg_vector_distance\` to assign rows
80
87
  - \`pg_vector_create_index\`: Use \`type\` (or alias \`method\`) with values 'ivfflat' or 'hnsw'. IVFFlat: \`lists\` param. HNSW: \`m\`, \`efConstruction\` params
81
- - \`pg_vector_performance\`: Auto-generates testVector from first row if omitted. Returns \`testVectorSource: 'auto-generated'|'user-provided'\`
88
+ - \`pg_vector_performance\`: Auto-generates testVector from first row if omitted. Returns \`testVectorSource: 'auto-generated from first row'|'user-provided'\`
82
89
  - \`pg_vector_validate\`: Returns \`{valid: bool, vectorDimensions}\`. Empty vector \`[]\` returns \`{valid: true, vectorDimensions: 0}\`
83
90
  - ⛔ \`pg_vector_embed\`: Demo only (hash-based). Use OpenAI/Cohere for production.
84
- - \`pg_hybrid_search\`: Supports \`schema.table\` format (auto-parsed). Combines vector similarity and full-text search with weighted scoring. Code mode alias: \`pg.hybridSearch()\` → \`pg.vector.hybridSearch()\`
91
+ - \`pg_hybrid_search\`: Supports \`schema.table\` format (auto-parsed). Combines vector similarity and full-text search with weighted scoring. \`textColumn\` auto-detects type: uses tsvector columns directly, wraps text columns with \`to_tsvector()\`. Code mode alias: \`pg.hybridSearch()\` → \`pg.vector.hybridSearch()\`
85
92
  - 📝 **Error Handling**: Vector tools return \`{success: false, error: "...", suggestion: "..."}\` for validation/semantic errors (dimension mismatch, non-vector column, table not found). Check \`success\` field before processing results.
86
93
 
87
94
  ## JSONB Tools
88
95
 
89
96
  - \`pg_jsonb_extract\`: Returns null if path doesn't exist
90
- - \`pg_jsonb_insert\`: Index -1 inserts BEFORE last element; use \`insertAfter: true\` to append
97
+ - \`pg_jsonb_insert\`: Index -1 inserts BEFORE last element; use \`insertAfter: true\` to append. ⚠️ Use array format \`[-1]\` not string \`"[-1]"\` for negative indices
91
98
  - \`pg_jsonb_set\`: \`createMissing=true\` creates full nested paths; initializes NULL columns to \`{}\`. Empty path (\`''\` or \`[]\`) replaces entire column value
99
+ - \`pg_jsonb_strip_nulls\`: ⚠️ Requires \`where\`/\`filter\` clause—write operations must be targeted. Use \`preview: true\` to see changes first
92
100
  - \`pg_jsonb_agg\`: Supports AS aliases in select: \`["id", "metadata->>'name' AS name"]\`. ⚠️ \`->>\` returns text—use \`->\` to preserve JSON types
93
101
  - \`pg_jsonb_object\`: Use \`data\`, \`object\`, or \`pairs\` parameter: \`{data: {name: "John", age: 30}}\`. Returns \`{object: {...}}\`
94
102
  - \`pg_jsonb_normalize\`: \`flatten\` doesn't descend into arrays; \`keys\` returns text (use \`pairs\` for JSON types)
95
- - **Object-only tools**: \`diff\`, \`merge\`, \`keys\`, \`indexSuggest\`, \`securityScan\`—require JSONB objects, throw descriptive errors for arrays
103
+ - \`pg_jsonb_stats\`: Returns column-level statistics. \`topKeysLimit\` controls key count (default: 20). ⚠️ \`typeDistribution\` null type = SQL NULL columns (entire column NULL, not JSON \`null\` literal). Use \`sqlNullCount\` for explicit count
104
+ - ⛔ **Object-only tools**: \`diff\`, \`merge\`, \`keys\`, \`indexSuggest\`, \`securityScan\`, \`stats\`—topKeys require JSONB objects, throw descriptive errors for arrays
96
105
  - ⛔ **Array-only tools**: \`insert\`—requires JSONB arrays, throws errors for objects
97
106
  - 📝 \`normalize\` modes: \`pairs\`/\`keys\`/\`flatten\` for objects; \`array\` for arrays
98
107
 
99
108
  **Top-Level Aliases**: \`pg.jsonbExtract()\`, \`pg.jsonbSet()\`, \`pg.jsonbInsert()\`, \`pg.jsonbDelete()\`, \`pg.jsonbContains()\`, \`pg.jsonbPathQuery()\`, \`pg.jsonbAgg()\`, \`pg.jsonbObject()\`, \`pg.jsonbArray()\`, \`pg.jsonbKeys()\`, \`pg.jsonbStripNulls()\`, \`pg.jsonbTypeof()\`, \`pg.jsonbValidatePath()\`, \`pg.jsonbMerge()\`, \`pg.jsonbNormalize()\`, \`pg.jsonbDiff()\`, \`pg.jsonbIndexSuggest()\`, \`pg.jsonbSecurityScan()\`, \`pg.jsonbStats()\`
100
109
 
101
-
102
110
  ## Stats Tools
103
111
 
104
112
  - All stats tools support \`schema.table\` format (auto-parsed, embedded schema takes priority over explicit \`schema\` param)
@@ -117,7 +125,7 @@ export const SERVER_INSTRUCTIONS = `# postgres-mcp Code Mode
117
125
 
118
126
  Core (20 methods): \`explain()\`, \`explainAnalyze()\`, \`explainBuffers()\`, \`indexStats()\`, \`tableStats()\`, \`statStatements()\`, \`statActivity()\`, \`locks()\`, \`bloatCheck()\`, \`cacheHitRatio()\`, \`seqScanTables()\`, \`indexRecommendations()\`, \`queryPlanCompare()\`, \`baseline()\`, \`connectionPoolOptimize()\`, \`partitionStrategySuggest()\`, \`unusedIndexes()\`, \`duplicateIndexes()\`, \`vacuumStats()\`, \`queryPlanStats()\`
119
127
 
120
- Wrappers (3): \`blockingQueries()\`→\`locks({showBlocked:true})\`, \`longRunningQueries({ seconds | minDuration }?)\` filters by duration (returns \`statActivity\` format), \`analyzeTable({ table })\` runs ANALYZE (accepts \`schema.table\` format)
128
+ Wrappers (3): \`blockingQueries()\`→\`locks({showBlocked:true})\`, \`longRunningQueries({ seconds | minDuration }?)\` filters by duration (returns \`{longRunningQueries, count, threshold}\`), \`analyzeTable({ table })\` runs ANALYZE (accepts \`schema.table\` format)
121
129
 
122
130
  - \`explain({ sql, format?, params? })\`: Supports \`format: 'text'|'json'|'yaml'|'xml'\`. Default: text. Use \`params: [value]\` for \`$1, $2\` placeholders
123
131
  - \`explainAnalyze({ sql, format?, params? })\`: Same format/params options as explain
@@ -181,6 +189,8 @@ Aliases: \`tableName\`→\`table\`, \`indexName\`→\`index\`, \`param\`/\`setti
181
189
 
182
190
  **Top-Level Aliases**: \`pg.vacuum()\`, \`pg.vacuumAnalyze()\`, \`pg.analyze()\`, \`pg.reindex()\`, \`pg.cluster()\`, \`pg.setConfig()\`, \`pg.reloadConf()\`, \`pg.resetStats()\`, \`pg.cancelBackend()\`, \`pg.terminateBackend()\`
183
191
 
192
+ **Discovery**: \`pg.admin.help()\` returns \`{methods, methodAliases, examples}\` object
193
+
184
194
  ## Backup Tools
185
195
 
186
196
  Core: \`dumpTable()\`, \`dumpSchema()\`, \`copyExport()\`, \`copyImport()\`, \`createBackupPlan()\`, \`restoreCommand()\`, \`physical()\`, \`restoreValidate()\`, \`scheduleOptimize()\`
@@ -191,7 +201,7 @@ Response Structures:
191
201
  - \`copyImport\`: \`{command, stdinCommand, notes}\` — Both file and stdin COPY commands
192
202
  - \`createBackupPlan\`: \`{strategy: {fullBackup, walArchiving}, estimates}\`
193
203
  - \`restoreCommand\`: \`{command, warnings?, notes}\` — Warnings when \`database\` omitted
194
- - \`restoreValidate\`: \`{validationSteps: [{step, name, command?, commands?, note?}], recommendations}\` — Note: \`note\` field only for pg_dump default type
204
+ - \`restoreValidate\`: \`{note?, validationSteps: [{step, name, command?, commands?, note?}], recommendations}\` — Top-level \`note\` when \`backupType\` omitted (defaults to pg_dump). Step-level \`note\` for non-command steps
195
205
  - \`physical\`: \`{command, notes, requirements}\`
196
206
  - \`scheduleOptimize\`: \`{analysis, recommendation, commands}\`
197
207
 
@@ -203,7 +213,7 @@ Response Structures:
203
213
  - \`pg_copy_import\`: Generates COPY FROM command. Supports \`schema.table\` format (auto-parsed, takes priority over \`schema\` param). \`columns\` array, \`filePath\`, \`format\`, \`header\`, \`delimiter\`
204
214
  - \`pg_restore_command\`: Include \`database\` parameter for complete command. Optional \`schemaOnly\`, \`dataOnly\`
205
215
  - \`pg_create_backup_plan\`: Generates backup strategy with cron schedule. \`frequency\`: 'hourly'|'daily'|'weekly', \`retention\` count
206
- - \`pg_backup_physical\`: Generates pg_basebackup command. \`format\`: 'plain'|'tar', \`checkpoint\`: 'fast'|'spread', \`compress\`: 0-9
216
+ - \`pg_backup_physical\`: Generates pg_basebackup command. \`format\`: 'plain'|'tar' (default: 'tar'), \`checkpoint\`: 'fast'|'spread', \`compress\`: 0-9
207
217
  - \`pg_restore_validate\`: Generates validation commands. \`backupType\`: 'pg_dump' (default)|'pg_basebackup'
208
218
  - \`pg_backup_schedule_optimize\`: Analyzes database activity patterns and recommends optimal backup schedule
209
219
 
@@ -215,14 +225,13 @@ Defaults: \`threshold\`=0.3 (use 0.1-0.2 for partial), \`maxDistance\`=3 (use 5+
215
225
 
216
226
  - All text tools support \`schema.table\` format (auto-parsed, embedded schema takes priority over explicit \`schema\` param)
217
227
  - \`pg_text_search\`: Supports both \`column\` (singular string) and \`columns\` (array). Either is valid—\`column\` auto-converts to array
218
- - \`pg_trigram_similarity\` vs \`pg_similarity_search\`: Both use pg_trgm. First filters by threshold; second uses set_limit() with %
228
+ - \`pg_trigram_similarity\`, \`pg_fuzzy_match\`, \`pg_regexp_match\`, \`pg_like_search\`: All default to 100 results to prevent large payloads. Use \`limit: 0\` for all rows
219
229
  - \`pg_fuzzy_match\`: Levenshtein returns distance (lower=better). Soundex/metaphone return phonetic codes (exact match only). ⛔ Invalid \`method\` values throw error with valid options
220
230
  - \`pg_text_normalize\`: Removes accents only (unaccent). Does NOT lowercase/trim
221
- - 📍 **Table vs Standalone**: \`normalize\`, \`sentiment\`, \`toVector\`, \`toQuery\`, \`searchConfig\` are standalone (text input only). \`soundex\`, \`metaphone\` are table operations (require \`table\`, \`column\`, \`value\`)—they query database rows, not single strings
231
+ - 📍 **Table vs Standalone**: \`normalize\`, \`sentiment\`, \`toVector\`, \`toQuery\`, \`searchConfig\` are standalone (text input only). For phonetic matching: use \`pg_fuzzy_match\` with \`method: 'soundex'|'metaphone'\` (direct MCP), or \`pg.text.soundex()\`/\`pg.text.metaphone()\` (Code Mode convenience wrappers that call fuzzyMatch internally)
222
232
 
223
233
  **Top-Level Aliases**: \`pg.textSearch()\`, \`pg.textRank()\`, \`pg.textHeadline()\`, \`pg.textNormalize()\`, \`pg.textSentiment()\`, \`pg.textToVector()\`, \`pg.textToQuery()\`, \`pg.textSearchConfig()\`, \`pg.textTrigramSimilarity()\`, \`pg.textFuzzyMatch()\`, \`pg.textLikeSearch()\`, \`pg.textRegexpMatch()\`, \`pg.textCreateFtsIndex()\`
224
234
 
225
-
226
235
  ## Schema Tools
227
236
 
228
237
  Core: \`listSchemas()\`, \`createSchema()\`, \`dropSchema()\`, \`listViews()\`, \`createView()\`, \`dropView()\`, \`listSequences()\`, \`createSequence()\`, \`dropSequence()\`, \`listFunctions()\`, \`listTriggers()\`, \`listConstraints()\`
@@ -231,18 +240,17 @@ Response Structures:
231
240
  - \`listSchemas()\`: \`{schemas: string[], count}\`
232
241
  - \`listViews({ includeMaterialized?, truncateDefinition?, limit? })\`: \`{views: [{schema, name, type, definition, definitionTruncated?}], count, hasMatViews, truncatedDefinitions?, truncated, note?}\`. Default \`limit: 50\` (use \`0\` for all). Default \`truncateDefinition: 500\` chars (use \`0\` for full definitions). \`truncated\` always included (\`true\`/\`false\`)
233
242
  - \`listSequences({ schema? })\`: \`{sequences: [{schema, name, owned_by}], count}\`. Note: \`owned_by\` omits \`public.\` prefix for sequences in public schema (e.g., \`users.id\` not \`public.users.id\`)
234
- - \`listFunctions({ schema?, limit?, exclude? })\`: \`{functions: [{schema, name, arguments, returns, language, volatility}], count, limit, note?}\`
243
+ - \`listFunctions({ schema?, limit?, exclude? })\`: \`{functions: [{schema, name, arguments, returns, language, volatility}], count, limit}\`
235
244
  - \`listTriggers({ schema?, table? })\`: \`{triggers: [{schema, table_name, name, timing, events, function_name, enabled}], count}\`
236
245
  - \`listConstraints({ schema?, table?, type? })\`: \`{constraints: [{schema, table_name, name, type, definition}], count}\`. Type codes: \`p\`=primary_key, \`f\`=foreign_key, \`u\`=unique, \`c\`=check
237
246
  - \`dropSchema/dropView/dropSequence\`: All return \`{existed: true/false}\` to indicate if object existed before drop
238
- - \`createSchema/createSequence\` (with \`ifNotExists\`) and \`createView\` (with \`orReplace\`): Return \`{alreadyExisted: true/false}\` to indicate if object existed before creation
247
+ - \`createSchema/createSequence\` (with \`ifNotExists\`) and \`createView\` (with \`orReplace\`): Return \`{alreadyExisted: true/false}\` when the flag is set. Without \`ifNotExists\`/\`orReplace\`, the field is omitted
239
248
 
240
249
  - \`pg_create_view\`: Supports \`schema.name\` format (auto-parsed). Use \`orReplace: true\` for CREATE OR REPLACE. \`checkOption\`: 'cascaded', 'local', 'none'. ⛔ OR REPLACE can add new columns but cannot rename/remove existing ones—PostgreSQL limitation
241
250
  - \`pg_create_sequence\`: Supports \`schema.name\` format. Parameters: \`start\`, \`increment\`, \`minValue\`, \`maxValue\`, \`cache\`, \`cycle\`, \`ownedBy\`, \`ifNotExists\`
242
- - \`pg_list_functions\`: Default limit=500. Use \`schema: 'public'\`, \`limit: 2000\`, or \`exclude: ['postgis']\` to filter. ⚠️ \`exclude\` filters by **schema name** AND extension-owned functions. Note: Aggressive \`exclude\` may return 0 results if all functions belong to excluded extensions
243
-
244
- **Discovery**: \`pg.schema.help()\` returns \`{methods: string[], examples: string[]}\` object with available methods and usage examples
251
+ - \`pg_list_functions\`: Default limit=500. Use \`schema: 'public'\`, \`limit: 2000\`, or \`exclude: ['postgis', 'pg_trgm', 'ltree', 'citext', 'fuzzystrmatch', 'pg_stat_statements', 'hypopg', 'unaccent', 'pg_stat_kcache', 'pgcrypto', 'partman']\` to filter. ⚠️ \`exclude\` filters by **schema name** AND extension-owned functions. The \`language\` filter does NOT exclude extension functions—use \`exclude\` alongside \`language\` for clean results. Note: Aggressive \`exclude\` may return 0 results if all functions belong to excluded extensions
245
252
 
253
+ **Discovery**: \`pg.schema.help()\` returns \`{methods, methodAliases, examples}\` object
246
254
 
247
255
  ## Partitioning Tools
248
256
 
@@ -262,7 +270,7 @@ Response Structures:
262
270
  - \`pg_partman_show_partitions\`: Default \`limit: 50\` (use \`0\` for all). Returns \`truncated\` + \`totalCount\` when limited. \`parentTable\` required. Supports \`schema.table\` format (auto-parsed)
263
271
  - \`pg_partman_check_default\`/\`partition_data\`: \`parentTable\` required. Supports \`schema.table\` format (auto-parsed)
264
272
  - \`pg_partman_set_retention\`: ⚠️ **CAUTION: Default is DROP** — \`retentionKeepTable: false\` (default) = DROP partitions, \`true\` = detach only (safer). Pass \`retention: null\` to disable retention
265
- - \`pg_partman_undo_partition\`: \`targetTable\` MUST exist before calling. Requires both \`parentTable\` and \`targetTable\`/\`target\`
273
+ - \`pg_partman_undo_partition\`: \`targetTable\` MUST exist before calling. Requires both \`parentTable\` and \`targetTable\`/\`target\`. ⚠️ Parent table and child partitions remain after undo—use \`DROP TABLE parent CASCADE\` to clean up
266
274
  - \`pg_partman_analyze_partition_health\`: Default \`limit: 50\` (use \`0\` for all). Returns \`truncated\` + \`totalCount\` when limited. \`summary.overallHealth\`: 'healthy'|'warnings'|'issues_found'
267
275
  - 📝 **Schema Resolution**: All partman tools auto-prefix \`public.\` when no schema specified in \`parentTable\`
268
276
  - 📝 **Aliases**: \`parentTable\` accepts \`table\`, \`parent\`, \`name\`. \`controlColumn\` accepts \`control\`, \`column\`. \`targetTable\` accepts \`target\`
@@ -271,11 +279,11 @@ Response Structures:
271
279
 
272
280
  Core: \`createExtension()\`, \`queryStats()\`, \`topCpu()\`, \`topIo()\`, \`databaseStats()\`, \`resourceAnalysis()\`, \`reset()\`
273
281
 
274
- - \`pg_kcache_query_stats\`: Default \`limit: 50\` (use \`0\` for all). Returns \`truncated\` + \`totalCount\` when limited. \`orderBy\`: 'total_time' (default), 'cpu_time', 'reads', 'writes'. \`queryPreviewLength\`: chars for query preview (default: 100, max: 500, 0 for full). ⛔ 'calls' NOT valid for orderBy—use \`minCalls\` param
275
- - \`pg_kcache_resource_analysis\`: Default \`limit: 50\` (use \`0\` for all). Returns \`truncated\` + \`totalCount\` when limited. \`minCalls\`, \`queryPreviewLength\` supported. Classifies queries as 'CPU-bound', 'I/O-bound', or 'Balanced'
276
- - \`pg_kcache_top_cpu\`: Top CPU-consuming queries. \`limit\` param (default: 10)
277
- - \`pg_kcache_top_io\`: \`type\`/\`ioType\` (alias): 'reads', 'writes', 'both' (default). \`limit\` param (default: 10)
278
- - \`pg_kcache_database_stats\`: Aggregated CPU/IO stats per database
282
+ - \`pg_kcache_query_stats\`: Default \`limit: 20\` (use \`0\` for all). Returns \`truncated\` + \`totalCount\` when limited. \`orderBy\`: 'total_time' (default), 'cpu_time', 'reads', 'writes'. \`queryPreviewLength\`: chars for query preview (default: 100, max: 500, 0 for full). ⛔ 'calls' NOT valid for orderBy—use \`minCalls\` param
283
+ - \`pg_kcache_resource_analysis\`: Default \`limit: 20\` (use \`0\` for all). Returns \`truncated\` + \`totalCount\` when limited. \`minCalls\`, \`queryPreviewLength\` supported. Classifies queries as 'CPU-bound', 'I/O-bound', or 'Balanced'
284
+ - \`pg_kcache_top_cpu\`: Top CPU-consuming queries. \`limit\` param (default: 10). \`queryPreviewLength\`: chars for query preview (default: 100, max: 500, 0 for full). Returns \`truncated\` + \`totalCount\` when limited
285
+ - \`pg_kcache_top_io\`: \`type\`/\`ioType\` (alias): 'reads', 'writes', 'both' (default). \`limit\` param (default: 10). \`queryPreviewLength\`: chars for query preview (default: 100, max: 500, 0 for full). Returns \`truncated\` + \`totalCount\` when limited
286
+ - \`pg_kcache_database_stats\`: Aggregated CPU/IO stats per database. Optional \`database\` param to filter specific db
279
287
  - \`pg_kcache_reset\`: Resets pg_stat_kcache AND pg_stat_statements statistics
280
288
 
281
289
  ## citext Tools
@@ -304,7 +312,7 @@ Core: \`createExtension()\`, \`query()\`, \`match()\`, \`subpath()\`, \`lca()\`,
304
312
  - \`pg_ltree_convert_column\`: Convert TEXT column to ltree. Supports \`schema.table\` format. \`col\` alias for \`column\`. Returns \`{previousType}\`. ⚠️ When views depend on column, returns \`{success: false, dependentViews, hint}\`—drop/recreate views manually
305
313
  - \`pg_ltree_create_index\`: Create GiST index on ltree column. Supports \`schema.table\` format. Auto-generates index name if \`indexName\` omitted. Returns \`{indexName, indexType: 'gist', alreadyExists?}\`
306
314
 
307
- **Discovery**: \`pg.ltree.help()\` returns \`{methods, aliases, examples}\` object. Top-level aliases available: \`pg.ltreeQuery()\`, \`pg.ltreeMatch()\`, etc.
315
+ **Discovery**: \`pg.ltree.help()\` returns \`{methods, methodAliases, examples}\` object. Top-level aliases available: \`pg.ltreeQuery()\`, \`pg.ltreeMatch()\`, etc.
308
316
 
309
317
  ## PostGIS Tools
310
318
 
@@ -321,7 +329,7 @@ Core: \`createExtension()\`, \`query()\`, \`match()\`, \`subpath()\`, \`lca()\`,
321
329
 
322
330
  **Geometry Operations (Table-based):**
323
331
  - \`pg_buffer\`: Create buffer zone around table geometries. Default limit: 50 rows. Default simplify: 10m (set \`simplify: 0\` to disable). Returns \`truncated: true\` + \`totalCount\` when results are truncated. Use \`limit: 0\` for all rows
324
- - \`pg_geo_transform\`: Transform table geometries between SRIDs. Default limit: 50 rows. Returns \`truncated: true\` + \`totalCount\` when results are truncated. Use \`limit: 0\` for all rows. \`fromSrid\`/\`sourceSrid\` and \`toSrid\`/\`targetSrid\` aliases
332
+ - \`pg_geo_transform\`: Transform table geometries between SRIDs. Default limit: 50 rows. Returns \`truncated: true\` + \`totalCount\` when results are truncated. Use \`limit: 0\` for all rows. Auto-detects \`fromSrid\` from column metadata if not provided (returns \`autoDetectedSrid: true\`). \`fromSrid\`/\`sourceSrid\` and \`toSrid\`/\`targetSrid\` aliases
325
333
  - \`pg_geo_cluster\`: Spatial clustering (DBSCAN/K-Means). K-Means: If \`numClusters\` exceeds row count, automatically clamps to available rows with \`warning\` field. DBSCAN: Returns contextual \`hints\` array explaining parameter effects (e.g., "All points formed single cluster—decrease eps") and \`parameterGuide\` explaining eps/minPoints trade-offs
326
334
 
327
335
  **Geometry Operations (Standalone WKT/GeoJSON):**
@@ -333,7 +341,7 @@ Core: \`createExtension()\`, \`query()\`, \`match()\`, \`subpath()\`, \`lca()\`,
333
341
  - \`pg_postgis_create_extension\`: Enable PostGIS extension (idempotent)
334
342
  - \`pg_geo_index_optimize\`: Analyze spatial indexes. Without \`table\` param, analyzes all spatial indexes
335
343
 
336
- **Code Mode Aliases:** \`pg.postgis.addColumn()\` → \`geometryColumn\`, \`pg.postgis.indexOptimize()\` → \`geoIndexOptimize\`. Note: \`pg.{group}.help()\` returns \`{methods, aliases, examples}\`
344
+ **Code Mode Aliases:** \`pg.postgis.addColumn()\` → \`geometryColumn\`, \`pg.postgis.indexOptimize()\` → \`geoIndexOptimize\`, \`pg.postgis.geoCluster()\` → \`pg_geo_cluster\`, \`pg.postgis.geoTransform()\` → \`pg_geo_transform\`. Note: \`pg.{group}.help()\` returns \`{methods, methodAliases, examples}\`
337
345
 
338
346
  ## Cron Tools (pg_cron)
339
347
 
@@ -344,11 +352,11 @@ Core: \`createExtension()\`, \`schedule()\`, \`scheduleInDatabase()\`, \`unsched
344
352
  - \`pg_cron_unschedule\`: Remove job by \`jobId\` or \`jobName\`. If both provided, \`jobName\` takes precedence (with warning)
345
353
  - \`pg_cron_alter_job\`: Modify existing job. Can change \`schedule\`, \`command\`, \`database\`, \`username\`, \`active\`. ⛔ Non-existent jobId throws error
346
354
  - \`pg_cron_list_jobs\`: List all jobs. Default \`limit: 50\` (use \`0\` for all). Optional \`active\` boolean filter. Returns \`truncated\` + \`totalCount\` when limited. Returns \`hint\` when jobs have no name
347
- - \`pg_cron_job_run_details\`: View execution history. Default \`limit: 100\`. Optional \`jobId\`, \`status\` ('running'|'succeeded'|'failed') filters. Returns \`truncated\` + \`totalCount\` when limited. Returns \`summary\` with counts
355
+ - \`pg_cron_job_run_details\`: View execution history. Default \`limit: 50\`. Optional \`jobId\`, \`status\` ('running'|'succeeded'|'failed') filters. Returns \`truncated\` + \`totalCount\` when limited. Returns \`summary\` with counts
348
356
  - \`pg_cron_cleanup_history\`: Delete old run records. \`olderThanDays\`/\`days\` param (default: 7). Optional \`jobId\` to target specific job
349
357
  - \`pg_cron_create_extension\`: Enable pg_cron extension (idempotent). Requires superuser
350
358
 
351
- **Discovery**: \`pg.cron.help()\` returns \`{methods, aliases, examples}\` object
359
+ **Discovery**: \`pg.cron.help()\` returns \`{methods, methodAliases, examples}\` object
352
360
 
353
361
  ## pgcrypto Tools
354
362
 
@@ -368,12 +376,14 @@ Core: \`createExtension()\`, \`hash()\`, \`hmac()\`, \`encrypt()\`, \`decrypt()\
368
376
 
369
377
  **Top-Level Aliases**: \`pg.pgcryptoHash()\`, \`pg.pgcryptoEncrypt()\`, \`pg.pgcryptoDecrypt()\`, \`pg.pgcryptoGenRandomUuid()\`, etc.
370
378
 
371
- **Discovery**: \`pg.pgcrypto.help()\` returns \`{methods, aliases, examples}\` object
379
+ **Discovery**: \`pg.pgcrypto.help()\` returns \`{methods, methodAliases, examples}\` object
372
380
 
373
381
  ## Code Mode Sandbox
374
382
 
375
383
  No \`setTimeout\`, \`setInterval\`, \`fetch\`, or network access. Use \`pg.core.readQuery()\` for data access.
376
384
 
385
+ 📊 **Metrics Note**: \`memoryUsedMb\` measures heap delta (end - start). Negative values indicate memory freed during execution (e.g., GC ran).
386
+
377
387
  ## Transactions
378
388
 
379
389
  Core: \`begin()\`, \`commit()\`, \`rollback()\`, \`savepoint()\`, \`rollbackTo()\`, \`release()\`, \`execute()\`
@@ -385,7 +395,7 @@ Core: \`begin()\`, \`commit()\`, \`rollback()\`, \`savepoint()\`, \`rollbackTo()
385
395
 
386
396
  **Savepoints:**
387
397
  - \`pg_transaction_savepoint\`: Create savepoint within transaction. \`name\`/\`savepoint\` + \`transactionId\`/\`tx\`/\`txId\`
388
- - \`pg_transaction_rollback_to\`: Rollback to savepoint, undoing changes made after it. ⚠️ Destroys all savepoints created after the target savepoint
398
+ - \`pg_transaction_rollback_to\`: Rollback to savepoint, restoring database state to when the savepoint was created. ⚠️ Undoes ALL work (data changes AND savepoints) created after the target savepoint
389
399
  - \`pg_transaction_release\`: Release savepoint, keeping all changes since it was created. \`name\`/\`savepoint\` aliases
390
400
 
391
401
  **Atomic Execution:**
@@ -1 +1 @@
1
- {"version":3,"file":"ServerInstructions.js","sourceRoot":"","sources":["../../src/constants/ServerInstructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yFAwYsD,CAAC"}
1
+ {"version":3,"file":"ServerInstructions.js","sourceRoot":"","sources":["../../src/constants/ServerInstructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yFAkZsD,CAAC"}
@@ -3,6 +3,22 @@
3
3
  *
4
4
  * Defines the tool groups and meta-groups used for filtering.
5
5
  * STRICT LIMIT: No shortcut may exceed 50 tools.
6
+ *
7
+ * TOOL COUNT ACCOUNTING:
8
+ * ToolConstants arrays total: 215 tools (sum of all group arrays)
9
+ * Published "specialized tools": 206 (215 - 9 utility tools)
10
+ *
11
+ * The 9 excluded utility tools:
12
+ * - 8 create_extension helpers (one per extension group):
13
+ * pg_vector_create_extension, pg_postgis_create_extension,
14
+ * pg_cron_create_extension, pg_partman_create_extension,
15
+ * pg_kcache_create_extension, pg_citext_create_extension,
16
+ * pg_ltree_create_extension, pg_pgcrypto_create_extension
17
+ * - 1 codemode meta-tool: pg_execute_code
18
+ *
19
+ * When adding new tools: update group sizes, meta-group sums,
20
+ * and the published total in README/DOCKER_README/wiki.
21
+ * The published total = array total - 9 utility tools.
6
22
  */
7
23
  import type { ToolGroup, MetaGroup } from "../types/index.js";
8
24
  /**
@@ -17,24 +33,24 @@ export declare const TOOL_GROUPS: Record<ToolGroup, string[]>;
17
33
  * ALL presets include codemode (pg_execute_code) by default for token efficiency.
18
34
  *
19
35
  * Group sizes:
20
- * core:19, transactions:7, jsonb:19, text:13, performance:20
21
- * admin:10, monitoring:11, backup:9, schema:12, vector:14
36
+ * core:20, transactions:7, jsonb:19, text:13, performance:20,
37
+ * admin:10, monitoring:11, backup:9, schema:12, vector:16
22
38
  * postgis:15, partitioning:6, stats:8, cron:8, partman:10
23
39
  * kcache:7, citext:6, ltree:8, pgcrypto:9, codemode:1
24
40
  *
25
41
  * Tool counts (with codemode):
26
- * starter: 58 (core:19 + transactions:7 + jsonb:19 + schema:12 + codemode:1)
27
- * essential: 46 (core:19 + transactions:7 + jsonb:19 + codemode:1)
28
- * dev-power: 53 (core:19 + transactions:7 + schema:12 + stats:8 + partitioning:6 + codemode:1)
29
- * ai-data: 59 (core:19 + jsonb:19 + text:13 + transactions:7 + codemode:1)
30
- * ai-vector: 47 (core:19 + vector:14 + transactions:7 + partitioning:6 + codemode:1)
31
- * dba-monitor: 58 (core:19 + monitoring:11 + performance:20 + transactions:7 + codemode:1)
32
- * dba-manage: 57 (core:19 + admin:10 + backup:9 + partitioning:6 + schema:12 + codemode:1)
33
- * dba-stats: 56 (core:19 + admin:10 + monitoring:11 + transactions:7 + stats:8 + codemode:1)
34
- * geo: 42 (core:19 + postgis:15 + transactions:7 + codemode:1)
35
- * base-core: 58 (core:19 + jsonb:19 + transactions:7 + schema:12 + codemode:1)
42
+ * starter: 59 (core:20 + transactions:7 + jsonb:19 + schema:12 + codemode:1)
43
+ * essential: 47 (core:20 + transactions:7 + jsonb:19 + codemode:1)
44
+ * dev-power: 54 (core:20 + transactions:7 + schema:12 + stats:8 + partitioning:6 + codemode:1)
45
+ * ai-data: 60 (core:20 + jsonb:19 + text:13 + transactions:7 + codemode:1)
46
+ * ai-vector: 50 (core:20 + vector:16 + transactions:7 + partitioning:6 + codemode:1)
47
+ * dba-monitor: 59 (core:20 + monitoring:11 + performance:20 + transactions:7 + codemode:1)
48
+ * dba-manage: 58 (core:20 + admin:10 + backup:9 + partitioning:6 + schema:12 + codemode:1)
49
+ * dba-stats: 57 (core:20 + admin:10 + monitoring:11 + transactions:7 + stats:8 + codemode:1)
50
+ * geo: 43 (core:20 + postgis:15 + transactions:7 + codemode:1)
51
+ * base-core: 59 (core:20 + jsonb:19 + transactions:7 + schema:12 + codemode:1)
36
52
  * base-ops: 51 (admin:10 + monitoring:11 + backup:9 + partitioning:6 + stats:8 + citext:6 + codemode:1)
37
- * ext-ai: 24 (vector:14 + pgcrypto:9 + codemode:1)
53
+ * ext-ai: 26 (vector:16 + pgcrypto:9 + codemode:1)
38
54
  * ext-geo: 24 (postgis:15 + ltree:8 + codemode:1)
39
55
  * ext-schedule: 19 (cron:8 + partman:10 + codemode:1)
40
56
  * ext-perf: 28 (kcache:7 + performance:20 + codemode:1)
@@ -1 +1 @@
1
- {"version":3,"file":"ToolConstants.d.ts","sourceRoot":"","sources":["../../src/filtering/ToolConstants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CA6PnD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,CA8DtD,CAAC"}
1
+ {"version":3,"file":"ToolConstants.d.ts","sourceRoot":"","sources":["../../src/filtering/ToolConstants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CA+PnD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,CA8DtD,CAAC"}
@@ -3,6 +3,22 @@
3
3
  *
4
4
  * Defines the tool groups and meta-groups used for filtering.
5
5
  * STRICT LIMIT: No shortcut may exceed 50 tools.
6
+ *
7
+ * TOOL COUNT ACCOUNTING:
8
+ * ToolConstants arrays total: 215 tools (sum of all group arrays)
9
+ * Published "specialized tools": 206 (215 - 9 utility tools)
10
+ *
11
+ * The 9 excluded utility tools:
12
+ * - 8 create_extension helpers (one per extension group):
13
+ * pg_vector_create_extension, pg_postgis_create_extension,
14
+ * pg_cron_create_extension, pg_partman_create_extension,
15
+ * pg_kcache_create_extension, pg_citext_create_extension,
16
+ * pg_ltree_create_extension, pg_pgcrypto_create_extension
17
+ * - 1 codemode meta-tool: pg_execute_code
18
+ *
19
+ * When adding new tools: update group sizes, meta-group sums,
20
+ * and the published total in README/DOCKER_README/wiki.
21
+ * The published total = array total - 9 utility tools.
6
22
  */
7
23
  /**
8
24
  * Default tool groups and their member tools.
@@ -153,6 +169,7 @@ export const TOOL_GROUPS = {
153
169
  "pg_vector_create_extension",
154
170
  "pg_vector_add_column",
155
171
  "pg_vector_insert",
172
+ "pg_vector_batch_insert",
156
173
  "pg_vector_search",
157
174
  "pg_vector_create_index",
158
175
  "pg_vector_distance",
@@ -164,6 +181,7 @@ export const TOOL_GROUPS = {
164
181
  "pg_vector_performance",
165
182
  "pg_vector_dimension_reduce",
166
183
  "pg_vector_embed",
184
+ "pg_vector_validate",
167
185
  ],
168
186
  postgis: [
169
187
  "pg_postgis_create_extension",
@@ -269,32 +287,32 @@ export const TOOL_GROUPS = {
269
287
  * ALL presets include codemode (pg_execute_code) by default for token efficiency.
270
288
  *
271
289
  * Group sizes:
272
- * core:19, transactions:7, jsonb:19, text:13, performance:20
273
- * admin:10, monitoring:11, backup:9, schema:12, vector:14
290
+ * core:20, transactions:7, jsonb:19, text:13, performance:20,
291
+ * admin:10, monitoring:11, backup:9, schema:12, vector:16
274
292
  * postgis:15, partitioning:6, stats:8, cron:8, partman:10
275
293
  * kcache:7, citext:6, ltree:8, pgcrypto:9, codemode:1
276
294
  *
277
295
  * Tool counts (with codemode):
278
- * starter: 58 (core:19 + transactions:7 + jsonb:19 + schema:12 + codemode:1)
279
- * essential: 46 (core:19 + transactions:7 + jsonb:19 + codemode:1)
280
- * dev-power: 53 (core:19 + transactions:7 + schema:12 + stats:8 + partitioning:6 + codemode:1)
281
- * ai-data: 59 (core:19 + jsonb:19 + text:13 + transactions:7 + codemode:1)
282
- * ai-vector: 47 (core:19 + vector:14 + transactions:7 + partitioning:6 + codemode:1)
283
- * dba-monitor: 58 (core:19 + monitoring:11 + performance:20 + transactions:7 + codemode:1)
284
- * dba-manage: 57 (core:19 + admin:10 + backup:9 + partitioning:6 + schema:12 + codemode:1)
285
- * dba-stats: 56 (core:19 + admin:10 + monitoring:11 + transactions:7 + stats:8 + codemode:1)
286
- * geo: 42 (core:19 + postgis:15 + transactions:7 + codemode:1)
287
- * base-core: 58 (core:19 + jsonb:19 + transactions:7 + schema:12 + codemode:1)
296
+ * starter: 59 (core:20 + transactions:7 + jsonb:19 + schema:12 + codemode:1)
297
+ * essential: 47 (core:20 + transactions:7 + jsonb:19 + codemode:1)
298
+ * dev-power: 54 (core:20 + transactions:7 + schema:12 + stats:8 + partitioning:6 + codemode:1)
299
+ * ai-data: 60 (core:20 + jsonb:19 + text:13 + transactions:7 + codemode:1)
300
+ * ai-vector: 50 (core:20 + vector:16 + transactions:7 + partitioning:6 + codemode:1)
301
+ * dba-monitor: 59 (core:20 + monitoring:11 + performance:20 + transactions:7 + codemode:1)
302
+ * dba-manage: 58 (core:20 + admin:10 + backup:9 + partitioning:6 + schema:12 + codemode:1)
303
+ * dba-stats: 57 (core:20 + admin:10 + monitoring:11 + transactions:7 + stats:8 + codemode:1)
304
+ * geo: 43 (core:20 + postgis:15 + transactions:7 + codemode:1)
305
+ * base-core: 59 (core:20 + jsonb:19 + transactions:7 + schema:12 + codemode:1)
288
306
  * base-ops: 51 (admin:10 + monitoring:11 + backup:9 + partitioning:6 + stats:8 + citext:6 + codemode:1)
289
- * ext-ai: 24 (vector:14 + pgcrypto:9 + codemode:1)
307
+ * ext-ai: 26 (vector:16 + pgcrypto:9 + codemode:1)
290
308
  * ext-geo: 24 (postgis:15 + ltree:8 + codemode:1)
291
309
  * ext-schedule: 19 (cron:8 + partman:10 + codemode:1)
292
310
  * ext-perf: 28 (kcache:7 + performance:20 + codemode:1)
293
311
  */
294
312
  export const META_GROUPS = {
295
313
  // 1. General Use (Recommended) - All include codemode for token efficiency
296
- starter: ["core", "transactions", "jsonb", "schema", "codemode"], // 50
297
- essential: ["core", "transactions", "jsonb", "codemode"], // 40
314
+ starter: ["core", "transactions", "jsonb", "schema", "codemode"], // 59
315
+ essential: ["core", "transactions", "jsonb", "codemode"], // 47
298
316
  "dev-power": [
299
317
  "core",
300
318
  "transactions",
@@ -302,10 +320,10 @@ export const META_GROUPS = {
302
320
  "stats",
303
321
  "partitioning",
304
322
  "codemode",
305
- ], // 45
323
+ ], // 54
306
324
  // 2. AI Workloads
307
- "ai-data": ["core", "jsonb", "text", "transactions", "codemode"], // 51 (over limit, but codemode is essential)
308
- "ai-vector": ["core", "vector", "transactions", "partitioning", "codemode"], // 41
325
+ "ai-data": ["core", "jsonb", "text", "transactions", "codemode"], // 60
326
+ "ai-vector": ["core", "vector", "transactions", "partitioning", "codemode"], // 50
309
327
  // 3. DBA Workloads
310
328
  "dba-monitor": [
311
329
  "core",
@@ -313,7 +331,7 @@ export const META_GROUPS = {
313
331
  "performance",
314
332
  "transactions",
315
333
  "codemode",
316
- ], // 48
334
+ ], // 59
317
335
  "dba-manage": [
318
336
  "core",
319
337
  "admin",
@@ -321,7 +339,7 @@ export const META_GROUPS = {
321
339
  "partitioning",
322
340
  "schema",
323
341
  "codemode",
324
- ], // 49
342
+ ], // 58
325
343
  "dba-stats": [
326
344
  "core",
327
345
  "admin",
@@ -329,11 +347,11 @@ export const META_GROUPS = {
329
347
  "transactions",
330
348
  "stats",
331
349
  "codemode",
332
- ], // 50
350
+ ], // 57
333
351
  // 4. Specialty Workloads
334
- geo: ["core", "postgis", "transactions", "codemode"], // 33
352
+ geo: ["core", "postgis", "transactions", "codemode"], // 43
335
353
  // 5. Base Blocks (Building Blocks for Combining)
336
- "base-core": ["core", "jsonb", "transactions", "schema", "codemode"], // 50
354
+ "base-core": ["core", "jsonb", "transactions", "schema", "codemode"], // 59
337
355
  "base-ops": [
338
356
  "admin",
339
357
  "monitoring",
@@ -342,11 +360,11 @@ export const META_GROUPS = {
342
360
  "stats",
343
361
  "citext",
344
362
  "codemode",
345
- ], // 51 (adjusted)
363
+ ], // 51
346
364
  // 6. Extension Bundles (for adding extension capabilities)
347
- "ext-ai": ["vector", "pgcrypto", "codemode"], // 24
348
- "ext-geo": ["postgis", "ltree", "codemode"], // 21
365
+ "ext-ai": ["vector", "pgcrypto", "codemode"], // 26
366
+ "ext-geo": ["postgis", "ltree", "codemode"], // 24
349
367
  "ext-schedule": ["cron", "partman", "codemode"], // 19
350
- "ext-perf": ["kcache", "performance", "codemode"], // 24
368
+ "ext-perf": ["kcache", "performance", "codemode"], // 28
351
369
  };
352
370
  //# sourceMappingURL=ToolConstants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolConstants.js","sourceRoot":"","sources":["../../src/filtering/ToolConstants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolConstants.js","sourceRoot":"","sources":["../../src/filtering/ToolConstants.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,8 @@ export interface ToolDefinition {
77
77
  tags?: string[];
78
78
  /** Zod schema for input validation */
79
79
  inputSchema: unknown;
80
+ /** Zod schema for output validation (MCP 2025-11-25 structured content) */
81
+ outputSchema?: unknown;
80
82
  /** Required OAuth scopes */
81
83
  requiredScopes?: OAuthScope[];
82
84
  /** MCP Tool Annotations for behavior hints */
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/types/adapters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,IAAI,EAAE,OAAO,CAAC;IAEd,gCAAgC;IAChC,cAAc,EAAE,OAAO,CAAC;IAExB,sDAAsD;IACtD,MAAM,EAAE,OAAO,CAAC;IAEhB,+CAA+C;IAC/C,UAAU,EAAE,OAAO,CAAC;IAEpB,4BAA4B;IAC5B,YAAY,EAAE,OAAO,CAAC;IAEtB,mCAAmC;IACnC,kBAAkB,EAAE,OAAO,CAAC;IAE5B,kCAAkC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAE3B,4BAA4B;IAC5B,YAAY,EAAE,OAAO,CAAC;IAEtB,mCAAmC;IACnC,WAAW,EAAE,OAAO,CAAC;IAErB,kCAAkC;IAClC,GAAG,EAAE,OAAO,CAAC;IAEb,gCAAgC;IAChC,eAAe,EAAE,OAAO,CAAC;IAEzB,kCAAkC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8DAA8D;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IAEpB,+BAA+B;IAC/B,KAAK,EAAE,SAAS,CAAC;IAEjB,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,sCAAsC;IACtC,WAAW,EAAE,OAAO,CAAC;IAErB,4BAA4B;IAC5B,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC;IAE9B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,eAAe,CAAC;IAE9B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEnB,4BAA4B;IAC5B,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACzE;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IAEZ,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;IAEpB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,kDAAkD;IAClD,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAElC,uBAAuB;IACvB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACrE;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IACpC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;IAEpB,2BAA2B;IAC3B,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,EAAE,CAAC;IAEJ,qBAAqB;IACrB,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,EAAE,cAAc,KACpB,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB"}
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/types/adapters.ts"],"names":[],"mappings":"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"}
@@ -61,5 +61,9 @@ export interface RequestContext {
61
61
  timestamp: Date;
62
62
  /** Request ID for tracing */
63
63
  requestId: string;
64
+ /** MCP Server instance for sending notifications */
65
+ server?: unknown;
66
+ /** Progress token from client request _meta */
67
+ progressToken?: string | number;
64
68
  }
65
69
  //# sourceMappingURL=oauth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/types/oauth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IAEjB,+BAA+B;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,MAAM,EAAE,GACd,UAAU,MAAM,EAAE,GAClB,SAAS,MAAM,IAAI,MAAM,EAAE,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IAEZ,qBAAqB;IACrB,MAAM,EAAE,UAAU,EAAE,CAAC;IAErB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IAEZ,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IAEZ,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,wBAAwB;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAEhB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/types/oauth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IAEjB,+BAA+B;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,MAAM,EAAE,GACd,UAAU,MAAM,EAAE,GAClB,SAAS,MAAM,IAAI,MAAM,EAAE,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IAEZ,qBAAqB;IACrB,MAAM,EAAE,UAAU,EAAE,CAAC;IAErB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IAEZ,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IAEZ,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,wBAAwB;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAEhB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAElB,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * postgres-mcp - FTS Configuration Validation
3
+ *
4
+ * Validates PostgreSQL full-text search configuration names
5
+ * to prevent SQL injection via config parameter.
6
+ */
7
+ /**
8
+ * Error thrown when an invalid FTS configuration is provided
9
+ */
10
+ export declare class InvalidFtsConfigError extends Error {
11
+ constructor(config: string);
12
+ }
13
+ /**
14
+ * Validates a PostgreSQL full-text search configuration name.
15
+ *
16
+ * FTS configs must follow PostgreSQL identifier naming rules:
17
+ * - Start with a letter or underscore
18
+ * - Contain only letters, digits, underscores, or dollar signs
19
+ * - Be at most 63 characters long
20
+ *
21
+ * @param config - The configuration name to validate
22
+ * @throws InvalidFtsConfigError if the config name is invalid
23
+ *
24
+ * @example
25
+ * validateFtsConfig("english"); // OK
26
+ * validateFtsConfig("my_custom_config"); // OK
27
+ * validateFtsConfig("english'; DROP"); // Throws InvalidFtsConfigError
28
+ */
29
+ export declare function validateFtsConfig(config: string): void;
30
+ /**
31
+ * Validates and returns a safe FTS configuration name.
32
+ *
33
+ * @param config - The configuration name to sanitize
34
+ * @returns The validated config name (unchanged if valid)
35
+ * @throws InvalidFtsConfigError if the config name is invalid
36
+ */
37
+ export declare function sanitizeFtsConfig(config: string): string;
38
+ //# sourceMappingURL=fts-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fts-config.d.ts","sourceRoot":"","sources":["../../src/utils/fts-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,MAAM,EAAE,MAAM;CAI3B;AAcD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAYtD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxD"}