@neverinfamous/postgres-mcp 1.0.2 → 1.1.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 (224) hide show
  1. package/README.md +38 -19
  2. package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
  3. package/dist/__tests__/mocks/adapter.js.map +1 -1
  4. package/dist/adapters/DatabaseAdapter.d.ts +5 -6
  5. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
  6. package/dist/adapters/DatabaseAdapter.js +73 -52
  7. package/dist/adapters/DatabaseAdapter.js.map +1 -1
  8. package/dist/adapters/postgresql/PostgresAdapter.d.ts +13 -0
  9. package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
  10. package/dist/adapters/postgresql/PostgresAdapter.js +48 -3
  11. package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
  12. package/dist/adapters/postgresql/schemas/admin.d.ts +42 -0
  13. package/dist/adapters/postgresql/schemas/admin.d.ts.map +1 -1
  14. package/dist/adapters/postgresql/schemas/admin.js +61 -0
  15. package/dist/adapters/postgresql/schemas/admin.js.map +1 -1
  16. package/dist/adapters/postgresql/schemas/backup.d.ts +119 -0
  17. package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -1
  18. package/dist/adapters/postgresql/schemas/backup.js +169 -0
  19. package/dist/adapters/postgresql/schemas/backup.js.map +1 -1
  20. package/dist/adapters/postgresql/schemas/core.d.ts +27 -0
  21. package/dist/adapters/postgresql/schemas/core.d.ts.map +1 -1
  22. package/dist/adapters/postgresql/schemas/core.js +62 -0
  23. package/dist/adapters/postgresql/schemas/core.js.map +1 -1
  24. package/dist/adapters/postgresql/schemas/cron.d.ts +117 -0
  25. package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -1
  26. package/dist/adapters/postgresql/schemas/cron.js +148 -1
  27. package/dist/adapters/postgresql/schemas/cron.js.map +1 -1
  28. package/dist/adapters/postgresql/schemas/extensions.d.ts +335 -0
  29. package/dist/adapters/postgresql/schemas/extensions.d.ts.map +1 -1
  30. package/dist/adapters/postgresql/schemas/extensions.js +453 -0
  31. package/dist/adapters/postgresql/schemas/extensions.js.map +1 -1
  32. package/dist/adapters/postgresql/schemas/index.d.ts +15 -15
  33. package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
  34. package/dist/adapters/postgresql/schemas/index.js +56 -16
  35. package/dist/adapters/postgresql/schemas/index.js.map +1 -1
  36. package/dist/adapters/postgresql/schemas/jsonb.d.ts +408 -21
  37. package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +1 -1
  38. package/dist/adapters/postgresql/schemas/jsonb.js +544 -23
  39. package/dist/adapters/postgresql/schemas/jsonb.js.map +1 -1
  40. package/dist/adapters/postgresql/schemas/monitoring.d.ts +179 -0
  41. package/dist/adapters/postgresql/schemas/monitoring.d.ts.map +1 -1
  42. package/dist/adapters/postgresql/schemas/monitoring.js +240 -0
  43. package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -1
  44. package/dist/adapters/postgresql/schemas/partitioning.d.ts +57 -0
  45. package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -1
  46. package/dist/adapters/postgresql/schemas/partitioning.js +84 -0
  47. package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -1
  48. package/dist/adapters/postgresql/schemas/partman.d.ts +156 -0
  49. package/dist/adapters/postgresql/schemas/partman.d.ts.map +1 -1
  50. package/dist/adapters/postgresql/schemas/partman.js +203 -0
  51. package/dist/adapters/postgresql/schemas/partman.js.map +1 -1
  52. package/dist/adapters/postgresql/schemas/performance.d.ts +123 -0
  53. package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -1
  54. package/dist/adapters/postgresql/schemas/performance.js +221 -0
  55. package/dist/adapters/postgresql/schemas/performance.js.map +1 -1
  56. package/dist/adapters/postgresql/schemas/postgis.d.ts +173 -0
  57. package/dist/adapters/postgresql/schemas/postgis.d.ts.map +1 -1
  58. package/dist/adapters/postgresql/schemas/postgis.js +279 -0
  59. package/dist/adapters/postgresql/schemas/postgis.js.map +1 -1
  60. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +100 -0
  61. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -1
  62. package/dist/adapters/postgresql/schemas/schema-mgmt.js +133 -0
  63. package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -1
  64. package/dist/adapters/postgresql/schemas/stats.d.ts +248 -4
  65. package/dist/adapters/postgresql/schemas/stats.d.ts.map +1 -1
  66. package/dist/adapters/postgresql/schemas/stats.js +362 -0
  67. package/dist/adapters/postgresql/schemas/stats.js.map +1 -1
  68. package/dist/adapters/postgresql/schemas/text-search.d.ts +47 -0
  69. package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -1
  70. package/dist/adapters/postgresql/schemas/text-search.js +62 -0
  71. package/dist/adapters/postgresql/schemas/text-search.js.map +1 -1
  72. package/dist/adapters/postgresql/schemas/vector.d.ts +252 -0
  73. package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -1
  74. package/dist/adapters/postgresql/schemas/vector.js +373 -0
  75. package/dist/adapters/postgresql/schemas/vector.js.map +1 -1
  76. package/dist/adapters/postgresql/tools/admin.d.ts.map +1 -1
  77. package/dist/adapters/postgresql/tools/admin.js +37 -7
  78. package/dist/adapters/postgresql/tools/admin.js.map +1 -1
  79. package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -1
  80. package/dist/adapters/postgresql/tools/backup/dump.js +14 -2
  81. package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -1
  82. package/dist/adapters/postgresql/tools/backup/planning.d.ts.map +1 -1
  83. package/dist/adapters/postgresql/tools/backup/planning.js +6 -0
  84. package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -1
  85. package/dist/adapters/postgresql/tools/citext.d.ts.map +1 -1
  86. package/dist/adapters/postgresql/tools/citext.js +9 -1
  87. package/dist/adapters/postgresql/tools/citext.js.map +1 -1
  88. package/dist/adapters/postgresql/tools/codemode/index.d.ts +11 -0
  89. package/dist/adapters/postgresql/tools/codemode/index.d.ts.map +1 -1
  90. package/dist/adapters/postgresql/tools/codemode/index.js +33 -0
  91. package/dist/adapters/postgresql/tools/codemode/index.js.map +1 -1
  92. package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -1
  93. package/dist/adapters/postgresql/tools/core/convenience.js +6 -0
  94. package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -1
  95. package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -1
  96. package/dist/adapters/postgresql/tools/core/health.js +7 -2
  97. package/dist/adapters/postgresql/tools/core/health.js.map +1 -1
  98. package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -1
  99. package/dist/adapters/postgresql/tools/core/indexes.js +4 -0
  100. package/dist/adapters/postgresql/tools/core/indexes.js.map +1 -1
  101. package/dist/adapters/postgresql/tools/core/objects.d.ts.map +1 -1
  102. package/dist/adapters/postgresql/tools/core/objects.js +4 -1
  103. package/dist/adapters/postgresql/tools/core/objects.js.map +1 -1
  104. package/dist/adapters/postgresql/tools/core/query.d.ts.map +1 -1
  105. package/dist/adapters/postgresql/tools/core/query.js +3 -0
  106. package/dist/adapters/postgresql/tools/core/query.js.map +1 -1
  107. package/dist/adapters/postgresql/tools/core/schemas.d.ts +164 -0
  108. package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -1
  109. package/dist/adapters/postgresql/tools/core/schemas.js +238 -0
  110. package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -1
  111. package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -1
  112. package/dist/adapters/postgresql/tools/core/tables.js +5 -0
  113. package/dist/adapters/postgresql/tools/core/tables.js.map +1 -1
  114. package/dist/adapters/postgresql/tools/cron.d.ts.map +1 -1
  115. package/dist/adapters/postgresql/tools/cron.js +12 -2
  116. package/dist/adapters/postgresql/tools/cron.js.map +1 -1
  117. package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +1 -1
  118. package/dist/adapters/postgresql/tools/jsonb/advanced.js +56 -46
  119. package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +1 -1
  120. package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +1 -1
  121. package/dist/adapters/postgresql/tools/jsonb/basic.js +114 -72
  122. package/dist/adapters/postgresql/tools/jsonb/basic.js.map +1 -1
  123. package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -1
  124. package/dist/adapters/postgresql/tools/kcache.js +10 -1
  125. package/dist/adapters/postgresql/tools/kcache.js.map +1 -1
  126. package/dist/adapters/postgresql/tools/ltree.d.ts.map +1 -1
  127. package/dist/adapters/postgresql/tools/ltree.js +11 -1
  128. package/dist/adapters/postgresql/tools/ltree.js.map +1 -1
  129. package/dist/adapters/postgresql/tools/monitoring.d.ts.map +1 -1
  130. package/dist/adapters/postgresql/tools/monitoring.js +14 -1
  131. package/dist/adapters/postgresql/tools/monitoring.js.map +1 -1
  132. package/dist/adapters/postgresql/tools/partitioning.d.ts.map +1 -1
  133. package/dist/adapters/postgresql/tools/partitioning.js +9 -1
  134. package/dist/adapters/postgresql/tools/partitioning.js.map +1 -1
  135. package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -1
  136. package/dist/adapters/postgresql/tools/partman/management.js +8 -1
  137. package/dist/adapters/postgresql/tools/partman/management.js.map +1 -1
  138. package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -1
  139. package/dist/adapters/postgresql/tools/partman/operations.js +8 -1
  140. package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -1
  141. package/dist/adapters/postgresql/tools/performance/analysis.d.ts.map +1 -1
  142. package/dist/adapters/postgresql/tools/performance/analysis.js +4 -0
  143. package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -1
  144. package/dist/adapters/postgresql/tools/performance/explain.d.ts.map +1 -1
  145. package/dist/adapters/postgresql/tools/performance/explain.js +4 -1
  146. package/dist/adapters/postgresql/tools/performance/explain.js.map +1 -1
  147. package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -1
  148. package/dist/adapters/postgresql/tools/performance/monitoring.js +10 -8
  149. package/dist/adapters/postgresql/tools/performance/monitoring.js.map +1 -1
  150. package/dist/adapters/postgresql/tools/performance/optimization.d.ts.map +1 -1
  151. package/dist/adapters/postgresql/tools/performance/optimization.js +4 -0
  152. package/dist/adapters/postgresql/tools/performance/optimization.js.map +1 -1
  153. package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -1
  154. package/dist/adapters/postgresql/tools/performance/stats.js +9 -0
  155. package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -1
  156. package/dist/adapters/postgresql/tools/pgcrypto.d.ts.map +1 -1
  157. package/dist/adapters/postgresql/tools/pgcrypto.js +12 -3
  158. package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -1
  159. package/dist/adapters/postgresql/tools/postgis/advanced.d.ts.map +1 -1
  160. package/dist/adapters/postgresql/tools/postgis/advanced.js +7 -1
  161. package/dist/adapters/postgresql/tools/postgis/advanced.js.map +1 -1
  162. package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -1
  163. package/dist/adapters/postgresql/tools/postgis/basic.js +11 -1
  164. package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -1
  165. package/dist/adapters/postgresql/tools/postgis/standalone.d.ts.map +1 -1
  166. package/dist/adapters/postgresql/tools/postgis/standalone.js +6 -1
  167. package/dist/adapters/postgresql/tools/postgis/standalone.js.map +1 -1
  168. package/dist/adapters/postgresql/tools/schema.d.ts.map +1 -1
  169. package/dist/adapters/postgresql/tools/schema.js +15 -1
  170. package/dist/adapters/postgresql/tools/schema.js.map +1 -1
  171. package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -1
  172. package/dist/adapters/postgresql/tools/stats/advanced.js +59 -20
  173. package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -1
  174. package/dist/adapters/postgresql/tools/stats/basic.d.ts.map +1 -1
  175. package/dist/adapters/postgresql/tools/stats/basic.js +35 -13
  176. package/dist/adapters/postgresql/tools/stats/basic.js.map +1 -1
  177. package/dist/adapters/postgresql/tools/text.d.ts.map +1 -1
  178. package/dist/adapters/postgresql/tools/text.js +43 -26
  179. package/dist/adapters/postgresql/tools/text.js.map +1 -1
  180. package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -1
  181. package/dist/adapters/postgresql/tools/transactions.js +10 -1
  182. package/dist/adapters/postgresql/tools/transactions.js.map +1 -1
  183. package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +1 -1
  184. package/dist/adapters/postgresql/tools/vector/advanced.js +29 -5
  185. package/dist/adapters/postgresql/tools/vector/advanced.js.map +1 -1
  186. package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +1 -1
  187. package/dist/adapters/postgresql/tools/vector/basic.js +81 -28
  188. package/dist/adapters/postgresql/tools/vector/basic.js.map +1 -1
  189. package/dist/codemode/api.d.ts.map +1 -1
  190. package/dist/codemode/api.js +4 -0
  191. package/dist/codemode/api.js.map +1 -1
  192. package/dist/constants/ServerInstructions.d.ts +1 -1
  193. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  194. package/dist/constants/ServerInstructions.js +13 -7
  195. package/dist/constants/ServerInstructions.js.map +1 -1
  196. package/dist/filtering/ToolConstants.d.ts +3 -3
  197. package/dist/filtering/ToolConstants.d.ts.map +1 -1
  198. package/dist/filtering/ToolConstants.js +4 -3
  199. package/dist/filtering/ToolConstants.js.map +1 -1
  200. package/dist/types/adapters.d.ts +2 -0
  201. package/dist/types/adapters.d.ts.map +1 -1
  202. package/dist/types/oauth.d.ts +4 -0
  203. package/dist/types/oauth.d.ts.map +1 -1
  204. package/dist/utils/fts-config.d.ts +38 -0
  205. package/dist/utils/fts-config.d.ts.map +1 -0
  206. package/dist/utils/fts-config.js +64 -0
  207. package/dist/utils/fts-config.js.map +1 -0
  208. package/dist/utils/identifiers.d.ts +21 -0
  209. package/dist/utils/identifiers.d.ts.map +1 -1
  210. package/dist/utils/identifiers.js +48 -0
  211. package/dist/utils/identifiers.js.map +1 -1
  212. package/dist/utils/logger.d.ts +22 -1
  213. package/dist/utils/logger.d.ts.map +1 -1
  214. package/dist/utils/logger.js +71 -14
  215. package/dist/utils/logger.js.map +1 -1
  216. package/dist/utils/progress-utils.d.ts +44 -0
  217. package/dist/utils/progress-utils.d.ts.map +1 -0
  218. package/dist/utils/progress-utils.js +75 -0
  219. package/dist/utils/progress-utils.js.map +1 -0
  220. package/dist/utils/where-clause.d.ts +39 -0
  221. package/dist/utils/where-clause.d.ts.map +1 -0
  222. package/dist/utils/where-clause.js +123 -0
  223. package/dist/utils/where-clause.js.map +1 -0
  224. package/package.json +5 -5
@@ -120,4 +120,377 @@ export const VectorCreateIndexSchema = VectorCreateIndexSchemaBase.transform((da
120
120
  schema: data.schema,
121
121
  };
122
122
  });
123
+ // ============================================================================
124
+ // OUTPUT SCHEMAS - For MCP 2025-11-25 structured content compliance
125
+ // ============================================================================
126
+ /**
127
+ * Output schema for pg_vector_create_extension
128
+ */
129
+ export const VectorCreateExtensionOutputSchema = z
130
+ .object({
131
+ success: z.boolean().describe("Whether extension was enabled"),
132
+ message: z.string().describe("Status message"),
133
+ })
134
+ .describe("Vector extension creation result");
135
+ /**
136
+ * Output schema for pg_vector_add_column
137
+ */
138
+ export const VectorAddColumnOutputSchema = z
139
+ .object({
140
+ success: z.boolean().describe("Whether operation succeeded"),
141
+ table: z.string().optional().describe("Table name"),
142
+ column: z.string().optional().describe("Column name"),
143
+ dimensions: z.number().optional().describe("Vector dimensions"),
144
+ ifNotExists: z.boolean().optional().describe("If NOT EXISTS was used"),
145
+ alreadyExists: z.boolean().optional().describe("Column already existed"),
146
+ message: z.string().optional().describe("Status message"),
147
+ error: z.string().optional().describe("Error message"),
148
+ requiredParams: z
149
+ .array(z.string())
150
+ .optional()
151
+ .describe("Required parameters"),
152
+ })
153
+ .describe("Vector column addition result");
154
+ /**
155
+ * Output schema for pg_vector_insert
156
+ */
157
+ export const VectorInsertOutputSchema = z
158
+ .object({
159
+ success: z.boolean().describe("Whether insert succeeded"),
160
+ rowsAffected: z.number().optional().describe("Number of rows affected"),
161
+ mode: z
162
+ .enum(["insert", "update"])
163
+ .optional()
164
+ .describe("Operation mode used"),
165
+ columnsUpdated: z
166
+ .number()
167
+ .optional()
168
+ .describe("Number of columns updated (update mode)"),
169
+ error: z.string().optional().describe("Error message"),
170
+ expectedDimensions: z.number().optional().describe("Expected dimensions"),
171
+ providedDimensions: z.number().optional().describe("Provided dimensions"),
172
+ suggestion: z.string().optional().describe("Helpful suggestion"),
173
+ requiredParams: z
174
+ .array(z.string())
175
+ .optional()
176
+ .describe("Required parameters"),
177
+ rawError: z.string().optional().describe("Raw database error"),
178
+ example: z.string().optional().describe("Example usage"),
179
+ })
180
+ .describe("Vector insert/update result");
181
+ /**
182
+ * Output schema for pg_vector_search
183
+ */
184
+ export const VectorSearchOutputSchema = z
185
+ .object({
186
+ success: z.boolean().optional().describe("Whether search succeeded"),
187
+ results: z
188
+ .array(z.record(z.string(), z.unknown()))
189
+ .optional()
190
+ .describe("Search results with distance"),
191
+ count: z.number().optional().describe("Number of results"),
192
+ metric: z.string().optional().describe("Distance metric used"),
193
+ hint: z.string().optional().describe("Helpful hint"),
194
+ note: z.string().optional().describe("Additional note"),
195
+ error: z.string().optional().describe("Error message"),
196
+ expectedDimensions: z.number().optional().describe("Expected dimensions"),
197
+ providedDimensions: z.number().optional().describe("Provided dimensions"),
198
+ suggestion: z.string().optional().describe("Helpful suggestion"),
199
+ requiredParams: z
200
+ .array(z.string())
201
+ .optional()
202
+ .describe("Required parameters"),
203
+ })
204
+ .describe("Vector search result");
205
+ /**
206
+ * Output schema for pg_vector_create_index
207
+ */
208
+ export const VectorCreateIndexOutputSchema = z
209
+ .object({
210
+ success: z.boolean().describe("Whether index creation succeeded"),
211
+ index: z.string().optional().describe("Index name"),
212
+ type: z.string().optional().describe("Index type (ivfflat/hnsw)"),
213
+ metric: z.string().optional().describe("Distance metric"),
214
+ table: z.string().optional().describe("Table name"),
215
+ column: z.string().optional().describe("Column name"),
216
+ appliedParams: z
217
+ .record(z.string(), z.number())
218
+ .optional()
219
+ .describe("Applied index parameters"),
220
+ ifNotExists: z.boolean().optional().describe("If NOT EXISTS was used"),
221
+ alreadyExists: z.boolean().optional().describe("Index already existed"),
222
+ message: z.string().optional().describe("Status message"),
223
+ error: z.string().optional().describe("Error message"),
224
+ requiredParams: z
225
+ .array(z.string())
226
+ .optional()
227
+ .describe("Required parameters"),
228
+ })
229
+ .describe("Vector index creation result");
230
+ /**
231
+ * Output schema for pg_vector_distance
232
+ */
233
+ export const VectorDistanceOutputSchema = z
234
+ .object({
235
+ success: z.boolean().optional().describe("Whether calculation succeeded"),
236
+ distance: z.number().nullable().optional().describe("Calculated distance"),
237
+ metric: z.string().optional().describe("Distance metric used"),
238
+ error: z.string().optional().describe("Error message"),
239
+ suggestion: z.string().optional().describe("Helpful suggestion"),
240
+ })
241
+ .describe("Vector distance calculation result");
242
+ /**
243
+ * Output schema for pg_vector_normalize
244
+ */
245
+ export const VectorNormalizeOutputSchema = z
246
+ .object({
247
+ success: z.boolean().optional().describe("Whether normalization succeeded"),
248
+ normalized: z
249
+ .array(z.number())
250
+ .optional()
251
+ .describe("Normalized vector (unit length)"),
252
+ magnitude: z.number().optional().describe("Original vector magnitude"),
253
+ error: z.string().optional().describe("Error message"),
254
+ suggestion: z.string().optional().describe("Helpful suggestion"),
255
+ })
256
+ .describe("Vector normalization result");
257
+ /**
258
+ * Output schema for pg_vector_aggregate
259
+ */
260
+ export const VectorAggregateOutputSchema = z
261
+ .object({
262
+ success: z.boolean().optional().describe("Whether aggregation succeeded"),
263
+ table: z.string().optional().describe("Table name"),
264
+ column: z.string().optional().describe("Column name"),
265
+ count: z.number().optional().describe("Number of vectors aggregated"),
266
+ average_vector: z
267
+ .object({
268
+ preview: z.array(z.number()).nullable().describe("Vector preview"),
269
+ dimensions: z.number().describe("Vector dimensions"),
270
+ truncated: z.boolean().describe("Whether vector is truncated"),
271
+ })
272
+ .optional()
273
+ .describe("Average vector"),
274
+ groups: z
275
+ .array(z.object({
276
+ group_key: z.unknown().describe("Group key value"),
277
+ count: z.number().describe("Count in group"),
278
+ average_vector: z.object({
279
+ preview: z.array(z.number()).nullable().describe("Vector preview"),
280
+ dimensions: z.number().describe("Vector dimensions"),
281
+ truncated: z.boolean().describe("Whether vector is truncated"),
282
+ }),
283
+ }))
284
+ .optional()
285
+ .describe("Grouped aggregation results"),
286
+ note: z.string().optional().describe("Additional note"),
287
+ error: z.string().optional().describe("Error message"),
288
+ requiredParams: z
289
+ .array(z.string())
290
+ .optional()
291
+ .describe("Required parameters"),
292
+ })
293
+ .describe("Vector aggregation result");
294
+ /**
295
+ * Output schema for pg_vector_cluster
296
+ */
297
+ export const VectorClusterOutputSchema = z
298
+ .object({
299
+ success: z.boolean().optional().describe("Whether clustering succeeded"),
300
+ k: z.number().optional().describe("Number of clusters"),
301
+ iterations: z.number().optional().describe("Maximum iterations"),
302
+ sampleSize: z.number().optional().describe("Sample size used"),
303
+ centroids: z
304
+ .array(z.object({
305
+ vector: z.array(z.number()).optional().describe("Full centroid"),
306
+ preview: z.array(z.number()).optional().describe("Centroid preview"),
307
+ dimensions: z.number().optional().describe("Dimensions"),
308
+ truncated: z.boolean().optional().describe("Truncated flag"),
309
+ }))
310
+ .optional()
311
+ .describe("Cluster centroids"),
312
+ note: z.string().optional().describe("Additional note"),
313
+ error: z.string().optional().describe("Error message"),
314
+ availableDataPoints: z
315
+ .number()
316
+ .optional()
317
+ .describe("Available data points"),
318
+ suggestion: z.string().optional().describe("Helpful suggestion"),
319
+ })
320
+ .describe("Vector clustering result");
321
+ /**
322
+ * Output schema for pg_vector_index_optimize
323
+ */
324
+ export const VectorIndexOptimizeOutputSchema = z
325
+ .object({
326
+ success: z.boolean().optional().describe("Whether analysis succeeded"),
327
+ table: z.string().optional().describe("Table name"),
328
+ column: z.string().optional().describe("Column name"),
329
+ dimensions: z.number().nullable().optional().describe("Vector dimensions"),
330
+ estimatedRows: z.number().optional().describe("Estimated row count"),
331
+ tableSize: z.string().optional().describe("Table size"),
332
+ existingIndexes: z
333
+ .array(z.object({
334
+ indexname: z.string().describe("Index name"),
335
+ indexdef: z.string().describe("Index definition"),
336
+ }))
337
+ .optional()
338
+ .describe("Existing vector indexes"),
339
+ recommendations: z
340
+ .array(z.object({
341
+ type: z.string().describe("Index type recommendation"),
342
+ lists: z.number().optional().describe("IVFFlat lists parameter"),
343
+ m: z.number().optional().describe("HNSW m parameter"),
344
+ efConstruction: z
345
+ .number()
346
+ .optional()
347
+ .describe("HNSW ef_construction"),
348
+ reason: z.string().describe("Recommendation reason"),
349
+ }))
350
+ .optional()
351
+ .describe("Index recommendations"),
352
+ error: z.string().optional().describe("Error message"),
353
+ suggestion: z.string().optional().describe("Helpful suggestion"),
354
+ })
355
+ .describe("Vector index optimization result");
356
+ /**
357
+ * Output schema for pg_hybrid_search
358
+ */
359
+ export const HybridSearchOutputSchema = z
360
+ .object({
361
+ success: z.boolean().optional().describe("Whether search succeeded"),
362
+ results: z
363
+ .array(z.record(z.string(), z.unknown()))
364
+ .optional()
365
+ .describe("Hybrid search results"),
366
+ count: z.number().optional().describe("Number of results"),
367
+ vectorWeight: z.number().optional().describe("Vector score weight"),
368
+ textWeight: z.number().optional().describe("Text score weight"),
369
+ error: z.string().optional().describe("Error message"),
370
+ expectedDimensions: z.number().optional().describe("Expected dimensions"),
371
+ providedDimensions: z.number().optional().describe("Provided dimensions"),
372
+ suggestion: z.string().optional().describe("Helpful suggestion"),
373
+ parameterWithIssue: z.string().optional().describe("Parameter with error"),
374
+ columnType: z.string().optional().describe("Actual column type"),
375
+ requiredParams: z
376
+ .array(z.string())
377
+ .optional()
378
+ .describe("Required parameters"),
379
+ details: z.string().optional().describe("Error details"),
380
+ })
381
+ .describe("Hybrid search result");
382
+ /**
383
+ * Output schema for pg_vector_performance
384
+ */
385
+ export const VectorPerformanceOutputSchema = z
386
+ .object({
387
+ success: z.boolean().optional().describe("Whether analysis succeeded"),
388
+ table: z.string().optional().describe("Table name"),
389
+ column: z.string().optional().describe("Column name"),
390
+ tableSize: z.string().optional().describe("Table size"),
391
+ estimatedRows: z.number().optional().describe("Estimated row count"),
392
+ indexes: z
393
+ .array(z.object({
394
+ indexname: z.string().describe("Index name"),
395
+ indexdef: z.string().describe("Index definition"),
396
+ index_size: z.string().describe("Index size"),
397
+ idx_scan: z.number().nullable().describe("Index scans"),
398
+ idx_tup_read: z.number().nullable().describe("Tuples read"),
399
+ }))
400
+ .optional()
401
+ .describe("Vector indexes"),
402
+ benchmark: z
403
+ .array(z.record(z.string(), z.unknown()))
404
+ .nullable()
405
+ .optional()
406
+ .describe("EXPLAIN ANALYZE output"),
407
+ recommendations: z
408
+ .array(z.string())
409
+ .optional()
410
+ .describe("Performance recommendations"),
411
+ testVectorSource: z.string().optional().describe("Test vector source"),
412
+ hint: z.string().optional().describe("Helpful hint"),
413
+ error: z.string().optional().describe("Error message"),
414
+ suggestion: z.string().optional().describe("Helpful suggestion"),
415
+ requiredParams: z
416
+ .array(z.string())
417
+ .optional()
418
+ .describe("Required parameters"),
419
+ })
420
+ .describe("Vector performance analysis result");
421
+ /**
422
+ * Output schema for pg_vector_dimension_reduce
423
+ */
424
+ export const VectorDimensionReduceOutputSchema = z
425
+ .object({
426
+ success: z.boolean().optional().describe("Whether reduction succeeded"),
427
+ // Direct mode
428
+ originalDimensions: z.number().optional().describe("Original dimensions"),
429
+ targetDimensions: z.number().optional().describe("Target dimensions"),
430
+ reducedVector: z
431
+ .array(z.number())
432
+ .optional()
433
+ .describe("Reduced vector (direct mode)"),
434
+ seed: z.number().optional().describe("Random seed used"),
435
+ note: z.string().optional().describe("Additional note"),
436
+ // Table mode
437
+ table: z.string().optional().describe("Table name"),
438
+ column: z.string().optional().describe("Column name"),
439
+ results: z
440
+ .array(z.object({
441
+ id: z.unknown().optional().describe("Row ID"),
442
+ preview: z.array(z.number()).optional().describe("Vector preview"),
443
+ dimensions: z.number().optional().describe("Dimensions"),
444
+ truncated: z.boolean().optional().describe("Truncated flag"),
445
+ }))
446
+ .optional()
447
+ .describe("Reduced vectors (table mode)"),
448
+ rowsProcessed: z.number().optional().describe("Rows processed"),
449
+ // Errors
450
+ error: z.string().optional().describe("Error message"),
451
+ suggestion: z.string().optional().describe("Helpful suggestion"),
452
+ })
453
+ .describe("Vector dimension reduction result");
454
+ /**
455
+ * Output schema for pg_vector_embed
456
+ */
457
+ export const VectorEmbedOutputSchema = z
458
+ .object({
459
+ success: z.boolean().optional().describe("Whether embedding succeeded"),
460
+ text: z.string().optional().describe("Input text"),
461
+ dimensions: z.number().optional().describe("Embedding dimensions"),
462
+ embedding: z
463
+ .object({
464
+ preview: z.array(z.number()).nullable().describe("Embedding preview"),
465
+ dimensions: z.number().describe("Full dimensions"),
466
+ truncated: z.boolean().describe("Whether truncated"),
467
+ })
468
+ .optional()
469
+ .describe("Generated embedding"),
470
+ note: z.string().optional().describe("Production usage note"),
471
+ error: z.string().optional().describe("Error message"),
472
+ })
473
+ .describe("Vector embedding result");
474
+ /**
475
+ * Output schema for pg_vector_validate
476
+ */
477
+ export const VectorValidateOutputSchema = z
478
+ .object({
479
+ valid: z.boolean().describe("Whether validation passed"),
480
+ vectorDimensions: z
481
+ .number()
482
+ .optional()
483
+ .describe("Dimensions of provided vector"),
484
+ columnDimensions: z
485
+ .number()
486
+ .optional()
487
+ .describe("Dimensions expected by column"),
488
+ expectedDimensions: z
489
+ .number()
490
+ .optional()
491
+ .describe("Expected dimensions (from column or param)"),
492
+ error: z.string().optional().describe("Error message"),
493
+ suggestion: z.string().optional().describe("Helpful suggestion"),
494
+ })
495
+ .describe("Vector validation result");
123
496
  //# sourceMappingURL=vector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/schemas/vector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACjB,WAAW,CAAC,CAAC,GAAa,EAAE,GAAG,EAAE,EAAE;IAClC,MAAM,cAAc,GAAa,GAAG;SACjC,GAAG,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5D,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAG,cAAc;aACjC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAClC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,2CAA2C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,aAAa,yDAAyD;SACzJ,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,+DAA+D;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC5D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC5D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACvD,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC;IAClD,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;SACvC,QAAQ,EAAE;SACV,QAAQ,CAAC,iBAAiB,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC1D,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACzD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACzD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC3E,WAAW,EAAE,CAAC;SACX,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;CAC/D,CAAC,CAAC;AAEH,oEAAoE;AACpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;IAC1E,wFAAwF;IACxF,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;IACvD,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC;QACrD,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC;IAC5C,CAAC;IAED,OAAO;QACL,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE;QACrC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;QAChC,MAAM,EAAE,cAAc;QACtB,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,+BAA+B;AAC/B,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC5D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC5D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACvD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACnE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACzE,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;SACvC,QAAQ,EAAE;SACV,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,WAAW,EAAE,CAAC;SACX,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACpE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACrD,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAC5E,CAAC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,2BAA2B,CAAC,SAAS,CAC1E,CAAC,IAAI,EAAE,EAAE;IACP,yCAAyC;IACzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;IAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC;YACnB;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,oCAAoC;aAC9C;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE;QACzC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE;QACrC,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/schemas/vector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/tools/admin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,yBAAyB,CAAC;AAiB9E;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,EAAE,CAaxE"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/tools/admin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,yBAAyB,CAAC;AA2B9E;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,EAAE,CAaxE"}
@@ -7,7 +7,8 @@
7
7
  import { z } from "zod";
8
8
  import { admin, destructive } from "../../../utils/annotations.js";
9
9
  import { getToolIcons } from "../../../utils/icons.js";
10
- import { VacuumSchema, VacuumSchemaBase, AnalyzeSchema, AnalyzeSchemaBase, ReindexSchema, ReindexSchemaBase, TerminateBackendSchema, TerminateBackendSchemaBase, CancelBackendSchema, CancelBackendSchemaBase, } from "../schemas/index.js";
10
+ import { buildProgressContext, sendProgress, } from "../../../utils/progress-utils.js";
11
+ import { VacuumSchema, VacuumSchemaBase, VacuumOutputSchema, AnalyzeSchema, AnalyzeSchemaBase, AnalyzeOutputSchema, ReindexSchema, ReindexSchemaBase, ReindexOutputSchema, ClusterOutputSchema, TerminateBackendSchema, TerminateBackendSchemaBase, CancelBackendSchema, CancelBackendSchemaBase, BackendOutputSchema, ConfigOutputSchema, } from "../schemas/index.js";
11
12
  /**
12
13
  * Get all admin tools
13
14
  */
@@ -31,9 +32,12 @@ function createVacuumTool(adapter) {
31
32
  description: "Run VACUUM to reclaim storage and update visibility map. Use analyze: true to also update statistics. Verbose output goes to PostgreSQL server logs.",
32
33
  group: "admin",
33
34
  inputSchema: VacuumSchemaBase,
35
+ outputSchema: VacuumOutputSchema,
34
36
  annotations: admin("Vacuum"),
35
37
  icons: getToolIcons("admin", admin("Vacuum")),
36
- handler: async (params, _context) => {
38
+ handler: async (params, context) => {
39
+ const progress = buildProgressContext(context);
40
+ await sendProgress(progress, 1, 2, "Starting VACUUM...");
37
41
  const { table, schema, full, verbose, analyze } = VacuumSchema.parse(params);
38
42
  const fullClause = full === true ? "FULL " : "";
39
43
  const verboseClause = verbose === true ? "VERBOSE " : "";
@@ -45,6 +49,7 @@ function createVacuumTool(adapter) {
45
49
  : "";
46
50
  const sql = `VACUUM ${fullClause}${verboseClause}${analyzeClause}${target}`;
47
51
  await adapter.executeQuery(sql);
52
+ await sendProgress(progress, 2, 2, "VACUUM complete");
48
53
  // Build accurate message reflecting all options used
49
54
  const parts = ["VACUUM"];
50
55
  if (full === true)
@@ -70,9 +75,12 @@ function createVacuumAnalyzeTool(adapter) {
70
75
  description: "Run VACUUM and ANALYZE together for optimal performance. Verbose output goes to PostgreSQL server logs.",
71
76
  group: "admin",
72
77
  inputSchema: VacuumSchemaBase,
78
+ outputSchema: VacuumOutputSchema,
73
79
  annotations: admin("Vacuum Analyze"),
74
80
  icons: getToolIcons("admin", admin("Vacuum Analyze")),
75
- handler: async (params, _context) => {
81
+ handler: async (params, context) => {
82
+ const progress = buildProgressContext(context);
83
+ await sendProgress(progress, 1, 2, "Starting VACUUM ANALYZE...");
76
84
  const { table, schema, verbose, full } = VacuumSchema.parse(params);
77
85
  const fullClause = full === true ? "FULL " : "";
78
86
  const verboseClause = verbose === true ? "VERBOSE " : "";
@@ -83,6 +91,7 @@ function createVacuumAnalyzeTool(adapter) {
83
91
  : "";
84
92
  const sql = `VACUUM ${fullClause}${verboseClause}ANALYZE ${target}`;
85
93
  await adapter.executeQuery(sql);
94
+ await sendProgress(progress, 2, 2, "VACUUM ANALYZE complete");
86
95
  // Build accurate message
87
96
  const message = full === true
88
97
  ? "VACUUM FULL ANALYZE completed"
@@ -105,9 +114,12 @@ function createAnalyzeTool(adapter) {
105
114
  description: "Update table statistics for the query planner.",
106
115
  group: "admin",
107
116
  inputSchema: AnalyzeSchemaBase,
117
+ outputSchema: AnalyzeOutputSchema,
108
118
  annotations: admin("Analyze"),
109
119
  icons: getToolIcons("admin", admin("Analyze")),
110
- handler: async (params, _context) => {
120
+ handler: async (params, context) => {
121
+ const progress = buildProgressContext(context);
122
+ await sendProgress(progress, 1, 2, "Starting ANALYZE...");
111
123
  const { table, schema, columns } = AnalyzeSchema.parse(params);
112
124
  // Validate: columns requires table
113
125
  if (columns !== undefined && columns.length > 0 && table === undefined) {
@@ -123,6 +135,7 @@ function createAnalyzeTool(adapter) {
123
135
  : "";
124
136
  const sql = `ANALYZE ${target}${columnClause}`;
125
137
  await adapter.executeQuery(sql);
138
+ await sendProgress(progress, 2, 2, "ANALYZE complete");
126
139
  return {
127
140
  success: true,
128
141
  message: "ANALYZE completed",
@@ -139,9 +152,12 @@ function createReindexTool(adapter) {
139
152
  description: "Rebuild indexes to improve performance. For target: database, name defaults to the current database if omitted.",
140
153
  group: "admin",
141
154
  inputSchema: ReindexSchemaBase,
155
+ outputSchema: ReindexOutputSchema,
142
156
  annotations: admin("Reindex"),
143
157
  icons: getToolIcons("admin", admin("Reindex")),
144
- handler: async (params, _context) => {
158
+ handler: async (params, context) => {
159
+ const progress = buildProgressContext(context);
160
+ await sendProgress(progress, 1, 3, "Starting REINDEX...");
145
161
  const parsed = ReindexSchema.parse(params);
146
162
  const concurrentlyClause = parsed.concurrently === true ? "CONCURRENTLY " : "";
147
163
  // Auto-default to current database when target is 'database' and name is not provided
@@ -151,12 +167,14 @@ function createReindexTool(adapter) {
151
167
  const dbName = dbResult.rows?.[0]?.["current_database"];
152
168
  effectiveName = typeof dbName === "string" ? dbName : "";
153
169
  }
170
+ await sendProgress(progress, 2, 3, `Reindexing ${parsed.target}...`);
154
171
  // name should always be defined at this point (refine ensures it for non-database targets)
155
172
  if (effectiveName === undefined) {
156
173
  throw new Error("name is required");
157
174
  }
158
175
  const sql = `REINDEX ${parsed.target.toUpperCase()} ${concurrentlyClause}"${effectiveName}"`;
159
176
  await adapter.executeQuery(sql);
177
+ await sendProgress(progress, 3, 3, "REINDEX complete");
160
178
  return {
161
179
  success: true,
162
180
  message: `Reindexed ${parsed.target}: ${effectiveName}`,
@@ -170,6 +188,7 @@ function createTerminateBackendTool(adapter) {
170
188
  description: "Terminate a database connection (forceful, use with caution).",
171
189
  group: "admin",
172
190
  inputSchema: TerminateBackendSchemaBase,
191
+ outputSchema: BackendOutputSchema,
173
192
  annotations: destructive("Terminate Backend"),
174
193
  icons: getToolIcons("admin", destructive("Terminate Backend")),
175
194
  handler: async (params, _context) => {
@@ -191,6 +210,7 @@ function createCancelBackendTool(adapter) {
191
210
  description: "Cancel a running query (graceful, preferred over terminate).",
192
211
  group: "admin",
193
212
  inputSchema: CancelBackendSchemaBase,
213
+ outputSchema: BackendOutputSchema,
194
214
  annotations: admin("Cancel Backend"),
195
215
  icons: getToolIcons("admin", admin("Cancel Backend")),
196
216
  handler: async (params, _context) => {
@@ -212,6 +232,7 @@ function createReloadConfTool(adapter) {
212
232
  description: "Reload PostgreSQL configuration without restart.",
213
233
  group: "admin",
214
234
  inputSchema: z.object({}),
235
+ outputSchema: ConfigOutputSchema,
215
236
  annotations: admin("Reload Configuration"),
216
237
  icons: getToolIcons("admin", admin("Reload Configuration")),
217
238
  handler: async (_params, _context) => {
@@ -266,6 +287,7 @@ function createSetConfigTool(adapter) {
266
287
  description: "Set a configuration parameter for the current session.",
267
288
  group: "admin",
268
289
  inputSchema: SetConfigSchemaBase,
290
+ outputSchema: ConfigOutputSchema,
269
291
  annotations: admin("Set Configuration"),
270
292
  icons: getToolIcons("admin", admin("Set Configuration")),
271
293
  handler: async (params, _context) => {
@@ -277,10 +299,12 @@ function createSetConfigTool(adapter) {
277
299
  parsed.value,
278
300
  local,
279
301
  ]);
302
+ const actualValue = result.rows?.[0]?.["set_config"];
280
303
  return {
281
304
  success: true,
305
+ message: `Set ${parsed.name} = ${actualValue}`,
282
306
  parameter: parsed.name,
283
- value: result.rows?.[0]?.["set_config"],
307
+ value: actualValue,
284
308
  };
285
309
  },
286
310
  };
@@ -303,6 +327,7 @@ function createResetStatsTool(adapter) {
303
327
  description: "Reset statistics counters (requires superuser).",
304
328
  group: "admin",
305
329
  inputSchema: ResetStatsSchema,
330
+ outputSchema: ConfigOutputSchema,
306
331
  annotations: admin("Reset Statistics"),
307
332
  icons: getToolIcons("admin", admin("Reset Statistics")),
308
333
  handler: async (params, _context) => {
@@ -383,13 +408,17 @@ function createClusterTool(adapter) {
383
408
  description: "Physically reorder table data based on an index. Call with no args to re-cluster all previously-clustered tables.",
384
409
  group: "admin",
385
410
  inputSchema: ClusterSchemaBase,
411
+ outputSchema: ClusterOutputSchema,
386
412
  annotations: admin("Cluster Table"),
387
413
  icons: getToolIcons("admin", admin("Cluster Table")),
388
- handler: async (params, _context) => {
414
+ handler: async (params, context) => {
415
+ const progress = buildProgressContext(context);
416
+ await sendProgress(progress, 1, 2, "Starting CLUSTER...");
389
417
  const parsed = ClusterSchema.parse(params);
390
418
  // Database-wide CLUSTER (all previously clustered tables)
391
419
  if (parsed.table === undefined) {
392
420
  await adapter.executeQuery("CLUSTER");
421
+ await sendProgress(progress, 2, 2, "CLUSTER complete");
393
422
  return {
394
423
  success: true,
395
424
  message: "Re-clustered all previously-clustered tables",
@@ -405,6 +434,7 @@ function createClusterTool(adapter) {
405
434
  : `"${parsed.table}"`;
406
435
  const sql = `CLUSTER ${tableName} USING "${parsed.index}"`;
407
436
  await adapter.executeQuery(sql);
437
+ await sendProgress(progress, 2, 2, "CLUSTER complete");
408
438
  return {
409
439
  success: true,
410
440
  message: `Clustered ${parsed.table} using index ${parsed.index}`,