@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.
- package/README.md +38 -19
- package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
- package/dist/__tests__/mocks/adapter.js.map +1 -1
- package/dist/adapters/DatabaseAdapter.d.ts +5 -6
- package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
- package/dist/adapters/DatabaseAdapter.js +73 -52
- package/dist/adapters/DatabaseAdapter.js.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.d.ts +13 -0
- package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.js +48 -3
- package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
- package/dist/adapters/postgresql/schemas/admin.d.ts +42 -0
- package/dist/adapters/postgresql/schemas/admin.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/admin.js +61 -0
- package/dist/adapters/postgresql/schemas/admin.js.map +1 -1
- package/dist/adapters/postgresql/schemas/backup.d.ts +119 -0
- package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/backup.js +169 -0
- package/dist/adapters/postgresql/schemas/backup.js.map +1 -1
- package/dist/adapters/postgresql/schemas/core.d.ts +27 -0
- package/dist/adapters/postgresql/schemas/core.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/core.js +62 -0
- package/dist/adapters/postgresql/schemas/core.js.map +1 -1
- package/dist/adapters/postgresql/schemas/cron.d.ts +117 -0
- package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/cron.js +148 -1
- package/dist/adapters/postgresql/schemas/cron.js.map +1 -1
- package/dist/adapters/postgresql/schemas/extensions.d.ts +335 -0
- package/dist/adapters/postgresql/schemas/extensions.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/extensions.js +453 -0
- package/dist/adapters/postgresql/schemas/extensions.js.map +1 -1
- package/dist/adapters/postgresql/schemas/index.d.ts +15 -15
- package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/index.js +56 -16
- package/dist/adapters/postgresql/schemas/index.js.map +1 -1
- package/dist/adapters/postgresql/schemas/jsonb.d.ts +408 -21
- package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/jsonb.js +544 -23
- package/dist/adapters/postgresql/schemas/jsonb.js.map +1 -1
- package/dist/adapters/postgresql/schemas/monitoring.d.ts +179 -0
- package/dist/adapters/postgresql/schemas/monitoring.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/monitoring.js +240 -0
- package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -1
- package/dist/adapters/postgresql/schemas/partitioning.d.ts +57 -0
- package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/partitioning.js +84 -0
- package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -1
- package/dist/adapters/postgresql/schemas/partman.d.ts +156 -0
- package/dist/adapters/postgresql/schemas/partman.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/partman.js +203 -0
- package/dist/adapters/postgresql/schemas/partman.js.map +1 -1
- package/dist/adapters/postgresql/schemas/performance.d.ts +123 -0
- package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/performance.js +221 -0
- package/dist/adapters/postgresql/schemas/performance.js.map +1 -1
- package/dist/adapters/postgresql/schemas/postgis.d.ts +173 -0
- package/dist/adapters/postgresql/schemas/postgis.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/postgis.js +279 -0
- package/dist/adapters/postgresql/schemas/postgis.js.map +1 -1
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +100 -0
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/schema-mgmt.js +133 -0
- package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -1
- package/dist/adapters/postgresql/schemas/stats.d.ts +248 -4
- package/dist/adapters/postgresql/schemas/stats.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/stats.js +362 -0
- package/dist/adapters/postgresql/schemas/stats.js.map +1 -1
- package/dist/adapters/postgresql/schemas/text-search.d.ts +47 -0
- package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/text-search.js +62 -0
- package/dist/adapters/postgresql/schemas/text-search.js.map +1 -1
- package/dist/adapters/postgresql/schemas/vector.d.ts +252 -0
- package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/vector.js +373 -0
- package/dist/adapters/postgresql/schemas/vector.js.map +1 -1
- package/dist/adapters/postgresql/tools/admin.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/admin.js +37 -7
- package/dist/adapters/postgresql/tools/admin.js.map +1 -1
- package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/backup/dump.js +14 -2
- package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -1
- package/dist/adapters/postgresql/tools/backup/planning.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/backup/planning.js +6 -0
- package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -1
- package/dist/adapters/postgresql/tools/citext.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/citext.js +9 -1
- package/dist/adapters/postgresql/tools/citext.js.map +1 -1
- package/dist/adapters/postgresql/tools/codemode/index.d.ts +11 -0
- package/dist/adapters/postgresql/tools/codemode/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/codemode/index.js +33 -0
- package/dist/adapters/postgresql/tools/codemode/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/convenience.js +6 -0
- package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/health.js +7 -2
- package/dist/adapters/postgresql/tools/core/health.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/indexes.js +4 -0
- package/dist/adapters/postgresql/tools/core/indexes.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/objects.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/objects.js +4 -1
- package/dist/adapters/postgresql/tools/core/objects.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/query.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/query.js +3 -0
- package/dist/adapters/postgresql/tools/core/query.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/schemas.d.ts +164 -0
- package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/schemas.js +238 -0
- package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/tables.js +5 -0
- package/dist/adapters/postgresql/tools/core/tables.js.map +1 -1
- package/dist/adapters/postgresql/tools/cron.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/cron.js +12 -2
- package/dist/adapters/postgresql/tools/cron.js.map +1 -1
- package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/jsonb/advanced.js +56 -46
- package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/jsonb/basic.js +114 -72
- package/dist/adapters/postgresql/tools/jsonb/basic.js.map +1 -1
- package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/kcache.js +10 -1
- package/dist/adapters/postgresql/tools/kcache.js.map +1 -1
- package/dist/adapters/postgresql/tools/ltree.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/ltree.js +11 -1
- package/dist/adapters/postgresql/tools/ltree.js.map +1 -1
- package/dist/adapters/postgresql/tools/monitoring.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/monitoring.js +14 -1
- package/dist/adapters/postgresql/tools/monitoring.js.map +1 -1
- package/dist/adapters/postgresql/tools/partitioning.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/partitioning.js +9 -1
- package/dist/adapters/postgresql/tools/partitioning.js.map +1 -1
- package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/partman/management.js +8 -1
- package/dist/adapters/postgresql/tools/partman/management.js.map +1 -1
- package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/partman/operations.js +8 -1
- package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/analysis.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/analysis.js +4 -0
- package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/explain.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/explain.js +4 -1
- package/dist/adapters/postgresql/tools/performance/explain.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/monitoring.js +10 -8
- package/dist/adapters/postgresql/tools/performance/monitoring.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/optimization.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/optimization.js +4 -0
- package/dist/adapters/postgresql/tools/performance/optimization.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/stats.js +9 -0
- package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -1
- package/dist/adapters/postgresql/tools/pgcrypto.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/pgcrypto.js +12 -3
- package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/advanced.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/advanced.js +7 -1
- package/dist/adapters/postgresql/tools/postgis/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/basic.js +11 -1
- package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/standalone.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/standalone.js +6 -1
- package/dist/adapters/postgresql/tools/postgis/standalone.js.map +1 -1
- package/dist/adapters/postgresql/tools/schema.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/schema.js +15 -1
- package/dist/adapters/postgresql/tools/schema.js.map +1 -1
- package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/stats/advanced.js +59 -20
- package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/stats/basic.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/stats/basic.js +35 -13
- package/dist/adapters/postgresql/tools/stats/basic.js.map +1 -1
- package/dist/adapters/postgresql/tools/text.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/text.js +43 -26
- package/dist/adapters/postgresql/tools/text.js.map +1 -1
- package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/transactions.js +10 -1
- package/dist/adapters/postgresql/tools/transactions.js.map +1 -1
- package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/vector/advanced.js +29 -5
- package/dist/adapters/postgresql/tools/vector/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/vector/basic.js +81 -28
- package/dist/adapters/postgresql/tools/vector/basic.js.map +1 -1
- package/dist/codemode/api.d.ts.map +1 -1
- package/dist/codemode/api.js +4 -0
- package/dist/codemode/api.js.map +1 -1
- package/dist/constants/ServerInstructions.d.ts +1 -1
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +13 -7
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/filtering/ToolConstants.d.ts +3 -3
- package/dist/filtering/ToolConstants.d.ts.map +1 -1
- package/dist/filtering/ToolConstants.js +4 -3
- package/dist/filtering/ToolConstants.js.map +1 -1
- package/dist/types/adapters.d.ts +2 -0
- package/dist/types/adapters.d.ts.map +1 -1
- package/dist/types/oauth.d.ts +4 -0
- package/dist/types/oauth.d.ts.map +1 -1
- package/dist/utils/fts-config.d.ts +38 -0
- package/dist/utils/fts-config.d.ts.map +1 -0
- package/dist/utils/fts-config.js +64 -0
- package/dist/utils/fts-config.js.map +1 -0
- package/dist/utils/identifiers.d.ts +21 -0
- package/dist/utils/identifiers.d.ts.map +1 -1
- package/dist/utils/identifiers.js +48 -0
- package/dist/utils/identifiers.js.map +1 -1
- package/dist/utils/logger.d.ts +22 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +71 -14
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/progress-utils.d.ts +44 -0
- package/dist/utils/progress-utils.d.ts.map +1 -0
- package/dist/utils/progress-utils.js +75 -0
- package/dist/utils/progress-utils.js.map +1 -0
- package/dist/utils/where-clause.d.ts +39 -0
- package/dist/utils/where-clause.d.ts.map +1 -0
- package/dist/utils/where-clause.js +123 -0
- package/dist/utils/where-clause.js.map +1 -0
- package/package.json +5 -5
|
@@ -9,7 +9,9 @@ import {
|
|
|
9
9
|
// Base schemas for MCP visibility
|
|
10
10
|
StatsDescriptiveSchemaBase, StatsPercentilesSchemaBase, StatsCorrelationSchemaBase, StatsRegressionSchemaBase,
|
|
11
11
|
// Preprocessed schemas for handler parsing
|
|
12
|
-
StatsDescriptiveSchema, StatsPercentilesSchema, StatsCorrelationSchema, StatsRegressionSchema,
|
|
12
|
+
StatsDescriptiveSchema, StatsPercentilesSchema, StatsCorrelationSchema, StatsRegressionSchema,
|
|
13
|
+
// Output schemas for MCP structured content
|
|
14
|
+
DescriptiveOutputSchema, PercentilesOutputSchema, CorrelationOutputSchema, RegressionOutputSchema, } from "../../schemas/index.js";
|
|
13
15
|
// =============================================================================
|
|
14
16
|
// Tool Implementations
|
|
15
17
|
// =============================================================================
|
|
@@ -22,10 +24,11 @@ export function createStatsDescriptiveTool(adapter) {
|
|
|
22
24
|
description: "Calculate descriptive statistics (count, min, max, avg, stddev, variance, sum) for a numeric column. Use groupBy to get statistics per category.",
|
|
23
25
|
group: "stats",
|
|
24
26
|
inputSchema: StatsDescriptiveSchemaBase, // Base schema for MCP visibility
|
|
27
|
+
outputSchema: DescriptiveOutputSchema,
|
|
25
28
|
annotations: readOnly("Descriptive Statistics"),
|
|
26
29
|
icons: getToolIcons("stats", readOnly("Descriptive Statistics")),
|
|
27
30
|
handler: async (params, _context) => {
|
|
28
|
-
const { table, column, schema, where, groupBy } = StatsDescriptiveSchema.parse(params);
|
|
31
|
+
const { table, column, schema, where, params: queryParams, groupBy, } = StatsDescriptiveSchema.parse(params);
|
|
29
32
|
const schemaPrefix = schema ? `"${schema}".` : "";
|
|
30
33
|
const whereClause = where ? `WHERE ${where}` : "";
|
|
31
34
|
// Validate column is numeric type
|
|
@@ -94,7 +97,9 @@ export function createStatsDescriptiveTool(adapter) {
|
|
|
94
97
|
GROUP BY "${groupBy}"
|
|
95
98
|
ORDER BY "${groupBy}"
|
|
96
99
|
`;
|
|
97
|
-
const result = await adapter.executeQuery(sql
|
|
100
|
+
const result = await adapter.executeQuery(sql, ...(queryParams !== undefined && queryParams.length > 0
|
|
101
|
+
? [queryParams]
|
|
102
|
+
: []));
|
|
98
103
|
const rows = result.rows ?? [];
|
|
99
104
|
const groups = rows.map((row) => ({
|
|
100
105
|
groupKey: row["group_key"],
|
|
@@ -122,7 +127,9 @@ export function createStatsDescriptiveTool(adapter) {
|
|
|
122
127
|
FROM ${schemaPrefix}"${table}"
|
|
123
128
|
${whereClause}
|
|
124
129
|
`;
|
|
125
|
-
const result = await adapter.executeQuery(sql
|
|
130
|
+
const result = await adapter.executeQuery(sql, ...(queryParams !== undefined && queryParams.length > 0
|
|
131
|
+
? [queryParams]
|
|
132
|
+
: []));
|
|
126
133
|
const stats = result.rows?.[0];
|
|
127
134
|
if (!stats)
|
|
128
135
|
throw new Error("No stats found");
|
|
@@ -183,11 +190,12 @@ export function createStatsPercentilesTool(adapter) {
|
|
|
183
190
|
description: "Calculate percentiles (quartiles, custom percentiles) for a numeric column. Use groupBy to get percentiles per category.",
|
|
184
191
|
group: "stats",
|
|
185
192
|
inputSchema: StatsPercentilesSchemaBase, // Base schema for MCP visibility
|
|
193
|
+
outputSchema: PercentilesOutputSchema,
|
|
186
194
|
annotations: readOnly("Percentiles"),
|
|
187
195
|
icons: getToolIcons("stats", readOnly("Percentiles")),
|
|
188
196
|
handler: async (params, _context) => {
|
|
189
197
|
const parsed = StatsPercentilesSchema.parse(params);
|
|
190
|
-
const { table, column, percentiles, schema, where, groupBy, _percentileScaleWarning, } = parsed;
|
|
198
|
+
const { table, column, percentiles, schema, where, params: queryParams, groupBy, _percentileScaleWarning, } = parsed;
|
|
191
199
|
const schemaName = schema ?? "public";
|
|
192
200
|
// Validate column exists and is numeric
|
|
193
201
|
await validateNumericColumn(adapter, table, column, schemaName);
|
|
@@ -220,7 +228,9 @@ export function createStatsPercentilesTool(adapter) {
|
|
|
220
228
|
GROUP BY "${groupBy}"
|
|
221
229
|
ORDER BY "${groupBy}"
|
|
222
230
|
`;
|
|
223
|
-
const result = await adapter.executeQuery(sql
|
|
231
|
+
const result = await adapter.executeQuery(sql, ...(queryParams !== undefined && queryParams.length > 0
|
|
232
|
+
? [queryParams]
|
|
233
|
+
: []));
|
|
224
234
|
const rows = result.rows ?? [];
|
|
225
235
|
const groups = rows.map((row) => ({
|
|
226
236
|
groupKey: row["group_key"],
|
|
@@ -246,7 +256,9 @@ export function createStatsPercentilesTool(adapter) {
|
|
|
246
256
|
FROM ${schemaPrefix}"${table}"
|
|
247
257
|
${whereClause}
|
|
248
258
|
`;
|
|
249
|
-
const result = await adapter.executeQuery(sql
|
|
259
|
+
const result = await adapter.executeQuery(sql, ...(queryParams !== undefined && queryParams.length > 0
|
|
260
|
+
? [queryParams]
|
|
261
|
+
: []));
|
|
250
262
|
const row = result.rows?.[0] ?? {};
|
|
251
263
|
const response = {
|
|
252
264
|
table: `${schema ?? "public"}.${table}`,
|
|
@@ -270,11 +282,12 @@ export function createStatsCorrelationTool(adapter) {
|
|
|
270
282
|
description: "Calculate Pearson correlation coefficient between two numeric columns. Use groupBy to get correlation per category.",
|
|
271
283
|
group: "stats",
|
|
272
284
|
inputSchema: StatsCorrelationSchemaBase, // Base schema for MCP visibility
|
|
285
|
+
outputSchema: CorrelationOutputSchema,
|
|
273
286
|
annotations: readOnly("Correlation Analysis"),
|
|
274
287
|
icons: getToolIcons("stats", readOnly("Correlation Analysis")),
|
|
275
288
|
handler: async (params, _context) => {
|
|
276
289
|
const parsed = StatsCorrelationSchema.parse(params);
|
|
277
|
-
const { table, column1, column2, schema, where, groupBy } = parsed;
|
|
290
|
+
const { table, column1, column2, schema, where, params: queryParams, groupBy, } = parsed;
|
|
278
291
|
const schemaPrefix = schema ? `"${schema}".` : "";
|
|
279
292
|
const whereClause = where ? `WHERE ${where}` : "";
|
|
280
293
|
// Validate both columns are numeric types
|
|
@@ -353,7 +366,9 @@ export function createStatsCorrelationTool(adapter) {
|
|
|
353
366
|
GROUP BY "${groupBy}"
|
|
354
367
|
ORDER BY "${groupBy}"
|
|
355
368
|
`;
|
|
356
|
-
const result = await adapter.executeQuery(sql
|
|
369
|
+
const result = await adapter.executeQuery(sql, ...(queryParams !== undefined && queryParams.length > 0
|
|
370
|
+
? [queryParams]
|
|
371
|
+
: []));
|
|
357
372
|
const rows = result.rows ?? [];
|
|
358
373
|
const groups = rows.map((row) => ({
|
|
359
374
|
groupKey: row["group_key"],
|
|
@@ -377,7 +392,9 @@ export function createStatsCorrelationTool(adapter) {
|
|
|
377
392
|
FROM ${schemaPrefix}"${table}"
|
|
378
393
|
${whereClause}
|
|
379
394
|
`;
|
|
380
|
-
const result = await adapter.executeQuery(sql
|
|
395
|
+
const result = await adapter.executeQuery(sql, ...(queryParams !== undefined && queryParams.length > 0
|
|
396
|
+
? [queryParams]
|
|
397
|
+
: []));
|
|
381
398
|
const row = result.rows?.[0];
|
|
382
399
|
if (!row)
|
|
383
400
|
throw new Error("No correlation data found");
|
|
@@ -403,11 +420,12 @@ export function createStatsRegressionTool(adapter) {
|
|
|
403
420
|
description: "Perform linear regression analysis (y = mx + b) between two columns. Use groupBy to get regression per category.",
|
|
404
421
|
group: "stats",
|
|
405
422
|
inputSchema: StatsRegressionSchemaBase, // Base schema for MCP visibility
|
|
423
|
+
outputSchema: RegressionOutputSchema,
|
|
406
424
|
annotations: readOnly("Linear Regression"),
|
|
407
425
|
icons: getToolIcons("stats", readOnly("Linear Regression")),
|
|
408
426
|
handler: async (params, _context) => {
|
|
409
427
|
const parsed = StatsRegressionSchema.parse(params);
|
|
410
|
-
const { table, xColumn, yColumn, schema, where, groupBy } = parsed;
|
|
428
|
+
const { table, xColumn, yColumn, schema, where, params: queryParams, groupBy, } = parsed;
|
|
411
429
|
const schemaName = schema ?? "public";
|
|
412
430
|
const schemaPrefix = schema ? `"${schema}".` : "";
|
|
413
431
|
const whereClause = where ? `WHERE ${where}` : "";
|
|
@@ -450,7 +468,9 @@ export function createStatsRegressionTool(adapter) {
|
|
|
450
468
|
GROUP BY "${groupBy}"
|
|
451
469
|
ORDER BY "${groupBy}"
|
|
452
470
|
`;
|
|
453
|
-
const result = await adapter.executeQuery(sql
|
|
471
|
+
const result = await adapter.executeQuery(sql, ...(queryParams !== undefined && queryParams.length > 0
|
|
472
|
+
? [queryParams]
|
|
473
|
+
: []));
|
|
454
474
|
const rows = result.rows ?? [];
|
|
455
475
|
const groups = rows.map((row) => ({
|
|
456
476
|
groupKey: row["group_key"],
|
|
@@ -480,7 +500,9 @@ export function createStatsRegressionTool(adapter) {
|
|
|
480
500
|
FROM ${schemaPrefix}"${table}"
|
|
481
501
|
${whereClause}
|
|
482
502
|
`;
|
|
483
|
-
const result = await adapter.executeQuery(sql
|
|
503
|
+
const result = await adapter.executeQuery(sql, ...(queryParams !== undefined && queryParams.length > 0
|
|
504
|
+
? [queryParams]
|
|
505
|
+
: []));
|
|
484
506
|
const row = result.rows?.[0];
|
|
485
507
|
if (!row)
|
|
486
508
|
return { error: "No regression data found" };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/stats/basic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/stats/basic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/tools/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/tools/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,yBAAyB,CAAC;AAmC9E;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,EAAE,CAgBvE"}
|
|
@@ -7,8 +7,12 @@
|
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import { readOnly, write } from "../../../utils/annotations.js";
|
|
9
9
|
import { getToolIcons } from "../../../utils/icons.js";
|
|
10
|
-
import { sanitizeIdentifier, sanitizeIdentifiers, } from "../../../utils/identifiers.js";
|
|
11
|
-
import {
|
|
10
|
+
import { sanitizeIdentifier, sanitizeIdentifiers, sanitizeTableName, } from "../../../utils/identifiers.js";
|
|
11
|
+
import { sanitizeFtsConfig } from "../../../utils/fts-config.js";
|
|
12
|
+
import { sanitizeWhereClause } from "../../../utils/where-clause.js";
|
|
13
|
+
import { TextSearchSchema, TextSearchSchemaBase, TrigramSimilaritySchema, TrigramSimilaritySchemaBase, RegexpMatchSchema, RegexpMatchSchemaBase, preprocessTextParams,
|
|
14
|
+
// Output schemas
|
|
15
|
+
TextRowsOutputSchema, FtsIndexOutputSchema, TextNormalizeOutputSchema, TextSentimentOutputSchema, TextToVectorOutputSchema, TextToQueryOutputSchema, TextSearchConfigOutputSchema, } from "../schemas/index.js";
|
|
12
16
|
/**
|
|
13
17
|
* Get all text processing tools
|
|
14
18
|
*/
|
|
@@ -35,11 +39,12 @@ function createTextSearchTool(adapter) {
|
|
|
35
39
|
description: "Full-text search using tsvector and tsquery.",
|
|
36
40
|
group: "text",
|
|
37
41
|
inputSchema: TextSearchSchemaBase, // Base schema for MCP visibility
|
|
42
|
+
outputSchema: TextRowsOutputSchema,
|
|
38
43
|
annotations: readOnly("Full-Text Search"),
|
|
39
44
|
icons: getToolIcons("text", readOnly("Full-Text Search")),
|
|
40
45
|
handler: async (params, _context) => {
|
|
41
46
|
const parsed = TextSearchSchema.parse(params);
|
|
42
|
-
const cfg = parsed.config ?? "english";
|
|
47
|
+
const cfg = sanitizeFtsConfig(parsed.config ?? "english");
|
|
43
48
|
// Handle both column (string) and columns (array) parameters
|
|
44
49
|
// The preprocessor converts column → columns, but we handle both for safety
|
|
45
50
|
let cols;
|
|
@@ -54,12 +59,11 @@ function createTextSearchTool(adapter) {
|
|
|
54
59
|
}
|
|
55
60
|
// Build qualified table name with schema support
|
|
56
61
|
// The preprocessor guarantees table is set (converts tableName → table)
|
|
57
|
-
const schemaPrefix = parsed.schema ? `"${parsed.schema}".` : "";
|
|
58
62
|
const resolvedTable = parsed.table ?? parsed.tableName;
|
|
59
63
|
if (!resolvedTable) {
|
|
60
64
|
throw new Error("Either 'table' or 'tableName' is required");
|
|
61
65
|
}
|
|
62
|
-
const tableName =
|
|
66
|
+
const tableName = sanitizeTableName(resolvedTable, parsed.schema);
|
|
63
67
|
const sanitizedCols = sanitizeIdentifiers(cols);
|
|
64
68
|
const selectCols = parsed.select !== undefined && parsed.select.length > 0
|
|
65
69
|
? sanitizeIdentifiers(parsed.select).join(", ")
|
|
@@ -107,11 +111,12 @@ function createTextRankTool(adapter) {
|
|
|
107
111
|
description: "Get relevance ranking for full-text search results. Returns matching rows only with rank score.",
|
|
108
112
|
group: "text",
|
|
109
113
|
inputSchema: TextRankSchemaBase, // Base schema for MCP visibility
|
|
114
|
+
outputSchema: TextRowsOutputSchema,
|
|
110
115
|
annotations: readOnly("Text Rank"),
|
|
111
116
|
icons: getToolIcons("text", readOnly("Text Rank")),
|
|
112
117
|
handler: async (params, _context) => {
|
|
113
118
|
const parsed = TextRankSchema.parse(params);
|
|
114
|
-
const cfg = parsed.config ?? "english";
|
|
119
|
+
const cfg = sanitizeFtsConfig(parsed.config ?? "english");
|
|
115
120
|
const norm = parsed.normalization ?? 0;
|
|
116
121
|
// Handle both column (string) and columns (array) parameters
|
|
117
122
|
let cols;
|
|
@@ -125,12 +130,11 @@ function createTextRankTool(adapter) {
|
|
|
125
130
|
throw new Error("Either column or columns parameter is required");
|
|
126
131
|
}
|
|
127
132
|
// The preprocessor guarantees table is set (converts tableName → table)
|
|
128
|
-
const schemaPrefix = parsed.schema ? `"${parsed.schema}".` : "";
|
|
129
133
|
const resolvedTable = parsed.table ?? parsed.tableName;
|
|
130
134
|
if (!resolvedTable) {
|
|
131
135
|
throw new Error("Either 'table' or 'tableName' is required");
|
|
132
136
|
}
|
|
133
|
-
const tableName =
|
|
137
|
+
const tableName = sanitizeTableName(resolvedTable, parsed.schema);
|
|
134
138
|
const sanitizedCols = sanitizeIdentifiers(cols);
|
|
135
139
|
const selectCols = parsed.select !== undefined && parsed.select.length > 0
|
|
136
140
|
? sanitizeIdentifiers(parsed.select).join(", ")
|
|
@@ -156,6 +160,7 @@ function createTrigramSimilarityTool(adapter) {
|
|
|
156
160
|
description: "Find similar strings using pg_trgm trigram matching. Returns similarity score (0-1). Default threshold 0.3; use lower (e.g., 0.1) for partial matches.",
|
|
157
161
|
group: "text",
|
|
158
162
|
inputSchema: TrigramSimilaritySchemaBase, // Base schema for MCP visibility
|
|
163
|
+
outputSchema: TextRowsOutputSchema,
|
|
159
164
|
annotations: readOnly("Trigram Similarity"),
|
|
160
165
|
icons: getToolIcons("text", readOnly("Trigram Similarity")),
|
|
161
166
|
handler: async (params, _context) => {
|
|
@@ -164,17 +169,18 @@ function createTrigramSimilarityTool(adapter) {
|
|
|
164
169
|
// Default limit to 100 to prevent large payloads
|
|
165
170
|
const limitVal = parsed.limit !== undefined && parsed.limit > 0 ? parsed.limit : 100;
|
|
166
171
|
// The preprocessor guarantees table is set (converts tableName → table)
|
|
167
|
-
const schemaPrefix = parsed.schema ? `"${parsed.schema}".` : "";
|
|
168
172
|
const resolvedTable = parsed.table ?? parsed.tableName;
|
|
169
173
|
if (!resolvedTable) {
|
|
170
174
|
throw new Error("Either 'table' or 'tableName' is required");
|
|
171
175
|
}
|
|
172
|
-
const tableName =
|
|
176
|
+
const tableName = sanitizeTableName(resolvedTable, parsed.schema);
|
|
173
177
|
const columnName = sanitizeIdentifier(parsed.column);
|
|
174
178
|
const selectCols = parsed.select !== undefined && parsed.select.length > 0
|
|
175
179
|
? sanitizeIdentifiers(parsed.select).join(", ")
|
|
176
180
|
: "*";
|
|
177
|
-
const additionalWhere = parsed.where
|
|
181
|
+
const additionalWhere = parsed.where
|
|
182
|
+
? ` AND (${sanitizeWhereClause(parsed.where)})`
|
|
183
|
+
: "";
|
|
178
184
|
const sql = `SELECT ${selectCols}, similarity(${columnName}, $1) as similarity
|
|
179
185
|
FROM ${tableName}
|
|
180
186
|
WHERE similarity(${columnName}, $1) > ${String(thresh)}${additionalWhere}
|
|
@@ -215,6 +221,7 @@ function createFuzzyMatchTool(adapter) {
|
|
|
215
221
|
description: "Fuzzy string matching using fuzzystrmatch extension. Levenshtein (default): returns distance; use maxDistance=5+ for longer strings. Soundex/metaphone: returns phonetic code for exact matches only.",
|
|
216
222
|
group: "text",
|
|
217
223
|
inputSchema: FuzzyMatchSchemaBase, // Base schema for MCP visibility
|
|
224
|
+
outputSchema: TextRowsOutputSchema,
|
|
218
225
|
annotations: readOnly("Fuzzy Match"),
|
|
219
226
|
icons: getToolIcons("text", readOnly("Fuzzy Match")),
|
|
220
227
|
handler: async (params, _context) => {
|
|
@@ -225,17 +232,18 @@ function createFuzzyMatchTool(adapter) {
|
|
|
225
232
|
// Default limit to 100 to prevent large payloads
|
|
226
233
|
const limitVal = parsed.limit !== undefined && parsed.limit > 0 ? parsed.limit : 100;
|
|
227
234
|
// The preprocessor guarantees table is set (converts tableName → table)
|
|
228
|
-
const schemaPrefix = parsed.schema ? `"${parsed.schema}".` : "";
|
|
229
235
|
const resolvedTable = parsed.table ?? parsed.tableName;
|
|
230
236
|
if (!resolvedTable) {
|
|
231
237
|
throw new Error("Either 'table' or 'tableName' is required");
|
|
232
238
|
}
|
|
233
|
-
const tableName =
|
|
239
|
+
const tableName = sanitizeTableName(resolvedTable, parsed.schema);
|
|
234
240
|
const columnName = sanitizeIdentifier(parsed.column);
|
|
235
241
|
const selectCols = parsed.select !== undefined && parsed.select.length > 0
|
|
236
242
|
? sanitizeIdentifiers(parsed.select).join(", ")
|
|
237
243
|
: "*";
|
|
238
|
-
const additionalWhere = parsed.where
|
|
244
|
+
const additionalWhere = parsed.where
|
|
245
|
+
? ` AND (${sanitizeWhereClause(parsed.where)})`
|
|
246
|
+
: "";
|
|
239
247
|
let sql;
|
|
240
248
|
if (method === "soundex") {
|
|
241
249
|
sql = `SELECT ${selectCols}, soundex(${columnName}) as code FROM ${tableName} WHERE soundex(${columnName}) = soundex($1)${additionalWhere} LIMIT ${String(limitVal)}`;
|
|
@@ -257,23 +265,25 @@ function createRegexpMatchTool(adapter) {
|
|
|
257
265
|
description: "Match text using POSIX regular expressions.",
|
|
258
266
|
group: "text",
|
|
259
267
|
inputSchema: RegexpMatchSchemaBase, // Base schema for MCP visibility
|
|
268
|
+
outputSchema: TextRowsOutputSchema,
|
|
260
269
|
annotations: readOnly("Regexp Match"),
|
|
261
270
|
icons: getToolIcons("text", readOnly("Regexp Match")),
|
|
262
271
|
handler: async (params, _context) => {
|
|
263
272
|
const parsed = RegexpMatchSchema.parse(params);
|
|
264
273
|
// The preprocessor guarantees table is set (converts tableName → table)
|
|
265
|
-
const schemaPrefix = parsed.schema ? `"${parsed.schema}".` : "";
|
|
266
274
|
const resolvedTable = parsed.table ?? parsed.tableName;
|
|
267
275
|
if (!resolvedTable) {
|
|
268
276
|
throw new Error("Either 'table' or 'tableName' is required");
|
|
269
277
|
}
|
|
270
|
-
const tableName =
|
|
278
|
+
const tableName = sanitizeTableName(resolvedTable, parsed.schema);
|
|
271
279
|
const columnName = sanitizeIdentifier(parsed.column);
|
|
272
280
|
const selectCols = parsed.select !== undefined && parsed.select.length > 0
|
|
273
281
|
? sanitizeIdentifiers(parsed.select).join(", ")
|
|
274
282
|
: "*";
|
|
275
283
|
const op = parsed.flags?.includes("i") ? "~*" : "~";
|
|
276
|
-
const additionalWhere = parsed.where
|
|
284
|
+
const additionalWhere = parsed.where
|
|
285
|
+
? ` AND (${sanitizeWhereClause(parsed.where)})`
|
|
286
|
+
: "";
|
|
277
287
|
const limitClause = parsed.limit !== undefined ? ` LIMIT ${String(parsed.limit)}` : "";
|
|
278
288
|
const sql = `SELECT ${selectCols} FROM ${tableName} WHERE ${columnName} ${op} $1${additionalWhere}${limitClause}`;
|
|
279
289
|
const result = await adapter.executeQuery(sql, [parsed.pattern]);
|
|
@@ -308,23 +318,25 @@ function createLikeSearchTool(adapter) {
|
|
|
308
318
|
description: "Search text using LIKE patterns. Case-insensitive (ILIKE) by default.",
|
|
309
319
|
group: "text",
|
|
310
320
|
inputSchema: LikeSearchSchemaBase, // Base schema for MCP visibility
|
|
321
|
+
outputSchema: TextRowsOutputSchema,
|
|
311
322
|
annotations: readOnly("LIKE Search"),
|
|
312
323
|
icons: getToolIcons("text", readOnly("LIKE Search")),
|
|
313
324
|
handler: async (params, _context) => {
|
|
314
325
|
const parsed = LikeSearchSchema.parse(params);
|
|
315
326
|
// The preprocessor guarantees table is set (converts tableName → table)
|
|
316
|
-
const schemaPrefix = parsed.schema ? `"${parsed.schema}".` : "";
|
|
317
327
|
const resolvedTable = parsed.table ?? parsed.tableName;
|
|
318
328
|
if (!resolvedTable) {
|
|
319
329
|
throw new Error("Either 'table' or 'tableName' is required");
|
|
320
330
|
}
|
|
321
|
-
const tableName =
|
|
331
|
+
const tableName = sanitizeTableName(resolvedTable, parsed.schema);
|
|
322
332
|
const columnName = sanitizeIdentifier(parsed.column);
|
|
323
333
|
const selectCols = parsed.select !== undefined && parsed.select.length > 0
|
|
324
334
|
? sanitizeIdentifiers(parsed.select).join(", ")
|
|
325
335
|
: "*";
|
|
326
336
|
const op = parsed.caseSensitive === true ? "LIKE" : "ILIKE";
|
|
327
|
-
const additionalWhere = parsed.where
|
|
337
|
+
const additionalWhere = parsed.where
|
|
338
|
+
? ` AND (${sanitizeWhereClause(parsed.where)})`
|
|
339
|
+
: "";
|
|
328
340
|
const limitClause = parsed.limit !== undefined && parsed.limit > 0
|
|
329
341
|
? ` LIMIT ${String(parsed.limit)}`
|
|
330
342
|
: "";
|
|
@@ -374,11 +386,12 @@ function createTextHeadlineTool(adapter) {
|
|
|
374
386
|
description: "Generate highlighted snippets from full-text search matches. Use select param for stable row identification (e.g., primary key).",
|
|
375
387
|
group: "text",
|
|
376
388
|
inputSchema: HeadlineSchemaBase, // Base schema for MCP visibility
|
|
389
|
+
outputSchema: TextRowsOutputSchema,
|
|
377
390
|
annotations: readOnly("Text Headline"),
|
|
378
391
|
icons: getToolIcons("text", readOnly("Text Headline")),
|
|
379
392
|
handler: async (params, _context) => {
|
|
380
393
|
const parsed = HeadlineSchema.parse(params);
|
|
381
|
-
const cfg = parsed.config ?? "english";
|
|
394
|
+
const cfg = sanitizeFtsConfig(parsed.config ?? "english");
|
|
382
395
|
// Build options string from individual params or use provided options
|
|
383
396
|
let opts;
|
|
384
397
|
if (parsed.options) {
|
|
@@ -393,12 +406,11 @@ function createTextHeadlineTool(adapter) {
|
|
|
393
406
|
opts = optParts.join(", ");
|
|
394
407
|
}
|
|
395
408
|
// The preprocessor guarantees table is set (converts tableName → table)
|
|
396
|
-
const schemaPrefix = parsed.schema ? `"${parsed.schema}".` : "";
|
|
397
409
|
const resolvedTable = parsed.table ?? parsed.tableName;
|
|
398
410
|
if (!resolvedTable) {
|
|
399
411
|
throw new Error("Either 'table' or 'tableName' is required");
|
|
400
412
|
}
|
|
401
|
-
const tableName =
|
|
413
|
+
const tableName = sanitizeTableName(resolvedTable, parsed.schema);
|
|
402
414
|
const columnName = sanitizeIdentifier(parsed.column);
|
|
403
415
|
// Use provided select columns, or default to * (user should specify PK for stable identification)
|
|
404
416
|
const selectCols = parsed.select !== undefined && parsed.select.length > 0
|
|
@@ -440,11 +452,12 @@ function createFtsIndexTool(adapter) {
|
|
|
440
452
|
description: "Create a GIN index for full-text search on a column.",
|
|
441
453
|
group: "text",
|
|
442
454
|
inputSchema: FtsIndexSchemaBase, // Base schema for MCP visibility
|
|
455
|
+
outputSchema: FtsIndexOutputSchema,
|
|
443
456
|
annotations: write("Create FTS Index"),
|
|
444
457
|
icons: getToolIcons("text", write("Create FTS Index")),
|
|
445
458
|
handler: async (params, _context) => {
|
|
446
459
|
const parsed = FtsIndexSchema.parse(params);
|
|
447
|
-
const cfg = parsed.config ?? "english";
|
|
460
|
+
const cfg = sanitizeFtsConfig(parsed.config ?? "english");
|
|
448
461
|
// The preprocessor guarantees table is set (converts tableName → table)
|
|
449
462
|
const resolvedTable = parsed.table ?? parsed.tableName;
|
|
450
463
|
if (!resolvedTable) {
|
|
@@ -457,8 +470,7 @@ function createFtsIndexTool(adapter) {
|
|
|
457
470
|
const useIfNotExists = parsed.ifNotExists !== false;
|
|
458
471
|
const ifNotExists = useIfNotExists ? "IF NOT EXISTS " : "";
|
|
459
472
|
// Build qualified table name with schema support
|
|
460
|
-
const
|
|
461
|
-
const tableName = `${schemaPrefix}"${resolvedTable}"`;
|
|
473
|
+
const tableName = sanitizeTableName(resolvedTable, parsed.schema);
|
|
462
474
|
const columnName = sanitizeIdentifier(parsed.column);
|
|
463
475
|
// Check if index exists before creation (to accurately report 'skipped')
|
|
464
476
|
let existedBefore = false;
|
|
@@ -486,6 +498,7 @@ function createTextNormalizeTool(adapter) {
|
|
|
486
498
|
description: "Remove accent marks (diacritics) from text using PostgreSQL unaccent extension. Note: Does NOT lowercase or trim—use LOWER()/TRIM() in a query for those operations.",
|
|
487
499
|
group: "text",
|
|
488
500
|
inputSchema: NormalizeSchema,
|
|
501
|
+
outputSchema: TextNormalizeOutputSchema,
|
|
489
502
|
annotations: readOnly("Text Normalize"),
|
|
490
503
|
icons: getToolIcons("text", readOnly("Text Normalize")),
|
|
491
504
|
handler: async (params, _context) => {
|
|
@@ -513,6 +526,7 @@ function createTextSentimentTool(_adapter) {
|
|
|
513
526
|
description: "Perform basic sentiment analysis on text using keyword matching.",
|
|
514
527
|
group: "text",
|
|
515
528
|
inputSchema: SentimentSchema,
|
|
529
|
+
outputSchema: TextSentimentOutputSchema,
|
|
516
530
|
annotations: readOnly("Text Sentiment"),
|
|
517
531
|
icons: getToolIcons("text", readOnly("Text Sentiment")),
|
|
518
532
|
// eslint-disable-next-line @typescript-eslint/require-await
|
|
@@ -625,6 +639,7 @@ function createTextToVectorTool(adapter) {
|
|
|
625
639
|
description: "Convert text to tsvector representation for full-text search operations.",
|
|
626
640
|
group: "text",
|
|
627
641
|
inputSchema: ToVectorSchema,
|
|
642
|
+
outputSchema: TextToVectorOutputSchema,
|
|
628
643
|
annotations: readOnly("Text to Vector"),
|
|
629
644
|
icons: getToolIcons("text", readOnly("Text to Vector")),
|
|
630
645
|
handler: async (params, _context) => {
|
|
@@ -655,6 +670,7 @@ function createTextToQueryTool(adapter) {
|
|
|
655
670
|
description: "Convert text to tsquery for full-text search. Modes: plain (default), phrase (proximity matching), websearch (Google-like syntax with AND/OR/-).",
|
|
656
671
|
group: "text",
|
|
657
672
|
inputSchema: ToQuerySchema,
|
|
673
|
+
outputSchema: TextToQueryOutputSchema,
|
|
658
674
|
annotations: readOnly("Text to Query"),
|
|
659
675
|
icons: getToolIcons("text", readOnly("Text to Query")),
|
|
660
676
|
handler: async (params, _context) => {
|
|
@@ -686,6 +702,7 @@ function createTextSearchConfigTool(adapter) {
|
|
|
686
702
|
description: "List available full-text search configurations (e.g., english, german, simple).",
|
|
687
703
|
group: "text",
|
|
688
704
|
inputSchema: z.object({}).default({}),
|
|
705
|
+
outputSchema: TextSearchConfigOutputSchema,
|
|
689
706
|
annotations: readOnly("Search Configurations"),
|
|
690
707
|
icons: getToolIcons("text", readOnly("Search Configurations")),
|
|
691
708
|
handler: async (_params, _context) => {
|