@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
|
@@ -6,7 +6,15 @@
|
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
import { readOnly, write } from "../../../../utils/annotations.js";
|
|
8
8
|
import { getToolIcons } from "../../../../utils/icons.js";
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
// Base schemas (for MCP inputSchema visibility)
|
|
11
|
+
JsonbExtractSchemaBase, JsonbSetSchemaBase, JsonbContainsSchemaBase, JsonbPathQuerySchemaBase, JsonbInsertSchemaBase, JsonbDeleteSchemaBase, JsonbTypeofSchemaBase, JsonbKeysSchemaBase, JsonbStripNullsSchemaBase, JsonbAggSchemaBase,
|
|
12
|
+
// Full schemas (for handler parsing - with preprocess)
|
|
13
|
+
JsonbExtractSchema, JsonbSetSchema, JsonbContainsSchema, JsonbPathQuerySchema, JsonbInsertSchema, JsonbDeleteSchema, JsonbTypeofSchema, JsonbKeysSchema, JsonbStripNullsSchema, JsonbAggSchema,
|
|
14
|
+
// Path utilities
|
|
15
|
+
normalizePathToArray, normalizePathForInsert, parseJsonbValue,
|
|
16
|
+
// Output schemas
|
|
17
|
+
JsonbExtractOutputSchema, JsonbSetOutputSchema, JsonbInsertOutputSchema, JsonbDeleteOutputSchema, JsonbContainsOutputSchema, JsonbPathQueryOutputSchema, JsonbAggOutputSchema, JsonbObjectOutputSchema, JsonbArrayOutputSchema, JsonbKeysOutputSchema, JsonbStripNullsOutputSchema, JsonbTypeofOutputSchema, } from "../../schemas/index.js";
|
|
10
18
|
/**
|
|
11
19
|
* Convert value to a valid JSON string for PostgreSQL's ::jsonb cast
|
|
12
20
|
* Always uses JSON.stringify to ensure proper encoding
|
|
@@ -19,7 +27,8 @@ export function createJsonbExtractTool(adapter) {
|
|
|
19
27
|
name: "pg_jsonb_extract",
|
|
20
28
|
description: "Extract value from JSONB at specified path. Returns null if path does not exist in data structure. Use select param to include identifying columns.",
|
|
21
29
|
group: "jsonb",
|
|
22
|
-
inputSchema:
|
|
30
|
+
inputSchema: JsonbExtractSchemaBase,
|
|
31
|
+
outputSchema: JsonbExtractOutputSchema,
|
|
23
32
|
annotations: readOnly("JSONB Extract"),
|
|
24
33
|
icons: getToolIcons("jsonb", readOnly("JSONB Extract")),
|
|
25
34
|
handler: async (params, _context) => {
|
|
@@ -28,8 +37,14 @@ export function createJsonbExtractTool(adapter) {
|
|
|
28
37
|
const limitClause = parsed.limit !== undefined ? ` LIMIT ${String(parsed.limit)}` : "";
|
|
29
38
|
// Use normalizePathToArray for PostgreSQL #> operator
|
|
30
39
|
const pathArray = normalizePathToArray(parsed.path);
|
|
40
|
+
// After preprocess and refine, table and column are guaranteed set
|
|
41
|
+
const table = parsed.table ?? parsed.tableName;
|
|
42
|
+
const column = parsed.column ?? parsed.col;
|
|
43
|
+
if (!table || !column) {
|
|
44
|
+
throw new Error("table and column are required");
|
|
45
|
+
}
|
|
31
46
|
// Build select expression with optional additional columns
|
|
32
|
-
let selectExpr = `"${
|
|
47
|
+
let selectExpr = `"${column}" #> $1 as extracted_value`;
|
|
33
48
|
if (parsed.select !== undefined && parsed.select.length > 0) {
|
|
34
49
|
const additionalCols = parsed.select
|
|
35
50
|
.map((c) => {
|
|
@@ -43,7 +58,7 @@ export function createJsonbExtractTool(adapter) {
|
|
|
43
58
|
.join(", ");
|
|
44
59
|
selectExpr = `${additionalCols}, ${selectExpr}`;
|
|
45
60
|
}
|
|
46
|
-
const sql = `SELECT ${selectExpr} FROM "${
|
|
61
|
+
const sql = `SELECT ${selectExpr} FROM "${table}"${whereClause}${limitClause}`;
|
|
47
62
|
const result = await adapter.executeQuery(sql, [pathArray]);
|
|
48
63
|
// If select columns were provided, return full row objects
|
|
49
64
|
if (parsed.select !== undefined && parsed.select.length > 0) {
|
|
@@ -93,12 +108,19 @@ export function createJsonbSetTool(adapter) {
|
|
|
93
108
|
name: "pg_jsonb_set",
|
|
94
109
|
description: "Set value in JSONB at path. Uses dot-notation by default; for literal dots in keys use array format [\"key.with.dots\"]. Use empty path ('' or []) to replace entire column value.",
|
|
95
110
|
group: "jsonb",
|
|
96
|
-
inputSchema:
|
|
111
|
+
inputSchema: JsonbSetSchemaBase,
|
|
112
|
+
outputSchema: JsonbSetOutputSchema,
|
|
97
113
|
annotations: write("JSONB Set"),
|
|
98
114
|
icons: getToolIcons("jsonb", write("JSONB Set")),
|
|
99
115
|
handler: async (params, _context) => {
|
|
100
116
|
const parsed = JsonbSetSchema.parse(params);
|
|
101
|
-
|
|
117
|
+
// Resolve table/column from optional aliases
|
|
118
|
+
const table = parsed.table ?? parsed.tableName;
|
|
119
|
+
const column = parsed.column ?? parsed.col;
|
|
120
|
+
if (!table || !column) {
|
|
121
|
+
throw new Error("table and column are required");
|
|
122
|
+
}
|
|
123
|
+
const { value, where, createMissing } = parsed;
|
|
102
124
|
// Normalize path to array format
|
|
103
125
|
const path = normalizePathToArray(parsed.path);
|
|
104
126
|
// Validate required 'where' parameter
|
|
@@ -165,11 +187,18 @@ export function createJsonbInsertTool(adapter) {
|
|
|
165
187
|
name: "pg_jsonb_insert",
|
|
166
188
|
description: "Insert value into JSONB array. Index -1 inserts BEFORE last element; use insertAfter:true with -1 to append at end.",
|
|
167
189
|
group: "jsonb",
|
|
168
|
-
inputSchema:
|
|
190
|
+
inputSchema: JsonbInsertSchemaBase,
|
|
191
|
+
outputSchema: JsonbInsertOutputSchema,
|
|
169
192
|
annotations: write("JSONB Insert"),
|
|
170
193
|
icons: getToolIcons("jsonb", write("JSONB Insert")),
|
|
171
194
|
handler: async (params, _context) => {
|
|
172
195
|
const parsed = JsonbInsertSchema.parse(params);
|
|
196
|
+
// Resolve table/column from optional aliases
|
|
197
|
+
const table = parsed.table ?? parsed.tableName;
|
|
198
|
+
const column = parsed.column ?? parsed.col;
|
|
199
|
+
if (!table || !column) {
|
|
200
|
+
throw new Error("table and column are required");
|
|
201
|
+
}
|
|
173
202
|
// Normalize path - convert numeric segments to numbers for PostgreSQL
|
|
174
203
|
const path = normalizePathForInsert(parsed.path);
|
|
175
204
|
// Validate required 'where' parameter
|
|
@@ -177,18 +206,18 @@ export function createJsonbInsertTool(adapter) {
|
|
|
177
206
|
throw new Error('pg_jsonb_insert requires a WHERE clause to identify rows to update. Example: where: "id = 1"');
|
|
178
207
|
}
|
|
179
208
|
// Check for NULL columns first - jsonb_insert requires existing array context
|
|
180
|
-
const checkSql = `SELECT COUNT(*) as null_count FROM "${
|
|
209
|
+
const checkSql = `SELECT COUNT(*) as null_count FROM "${table}" WHERE ${parsed.where} AND "${column}" IS NULL`;
|
|
181
210
|
const checkResult = await adapter.executeQuery(checkSql);
|
|
182
211
|
const nullCount = Number(checkResult.rows?.[0]?.["null_count"] ?? 0);
|
|
183
212
|
if (nullCount > 0) {
|
|
184
|
-
throw new Error(`pg_jsonb_insert cannot operate on NULL columns. Use pg_jsonb_set to initialize the column first: pg_jsonb_set({table: "${
|
|
213
|
+
throw new Error(`pg_jsonb_insert cannot operate on NULL columns. Use pg_jsonb_set to initialize the column first: pg_jsonb_set({table: "${table}", column: "${column}", path: "myarray", value: [], where: "..."})`);
|
|
185
214
|
}
|
|
186
215
|
// Validate target path points to an array, not an object
|
|
187
216
|
// Get the parent path (one level up from where we're inserting)
|
|
188
217
|
const parentPath = path.slice(0, -1);
|
|
189
218
|
if (parentPath.length === 0) {
|
|
190
219
|
// Inserting at root level - check column type
|
|
191
|
-
const typeCheckSql = `SELECT jsonb_typeof("${
|
|
220
|
+
const typeCheckSql = `SELECT jsonb_typeof("${column}") as type FROM "${table}" WHERE ${parsed.where} LIMIT 1`;
|
|
192
221
|
const typeResult = await adapter.executeQuery(typeCheckSql);
|
|
193
222
|
const columnType = typeResult.rows?.[0]?.["type"];
|
|
194
223
|
if (columnType && columnType !== "array") {
|
|
@@ -197,7 +226,7 @@ export function createJsonbInsertTool(adapter) {
|
|
|
197
226
|
}
|
|
198
227
|
else {
|
|
199
228
|
// Check the parent path type
|
|
200
|
-
const typeCheckSql = `SELECT jsonb_typeof("${
|
|
229
|
+
const typeCheckSql = `SELECT jsonb_typeof("${column}" #> $1) as type FROM "${table}" WHERE ${parsed.where} LIMIT 1`;
|
|
201
230
|
const parentPathStrings = parentPath.map((p) => String(p));
|
|
202
231
|
const typeResult = await adapter.executeQuery(typeCheckSql, [
|
|
203
232
|
parentPathStrings,
|
|
@@ -207,7 +236,7 @@ export function createJsonbInsertTool(adapter) {
|
|
|
207
236
|
throw new Error(`pg_jsonb_insert requires an array target. Path '${parentPathStrings.join(".")}' contains '${targetType}'. Use pg_jsonb_set for objects.`);
|
|
208
237
|
}
|
|
209
238
|
}
|
|
210
|
-
const sql = `UPDATE "${
|
|
239
|
+
const sql = `UPDATE "${table}" SET "${column}" = jsonb_insert("${column}", $1, $2::jsonb, $3) WHERE ${parsed.where}`;
|
|
211
240
|
try {
|
|
212
241
|
const result = await adapter.executeQuery(sql, [
|
|
213
242
|
path,
|
|
@@ -236,11 +265,18 @@ export function createJsonbDeleteTool(adapter) {
|
|
|
236
265
|
name: "pg_jsonb_delete",
|
|
237
266
|
description: "Delete a key or array element from a JSONB column. Accepts path as string or array. Note: rowsAffected reflects matched rows, not whether key existed.",
|
|
238
267
|
group: "jsonb",
|
|
239
|
-
inputSchema:
|
|
268
|
+
inputSchema: JsonbDeleteSchemaBase,
|
|
269
|
+
outputSchema: JsonbDeleteOutputSchema,
|
|
240
270
|
annotations: write("JSONB Delete"),
|
|
241
271
|
icons: getToolIcons("jsonb", write("JSONB Delete")),
|
|
242
272
|
handler: async (params, _context) => {
|
|
243
273
|
const parsed = JsonbDeleteSchema.parse(params);
|
|
274
|
+
// Resolve table/column from optional aliases
|
|
275
|
+
const table = parsed.table ?? parsed.tableName;
|
|
276
|
+
const column = parsed.column ?? parsed.col;
|
|
277
|
+
if (!table || !column) {
|
|
278
|
+
throw new Error("table and column are required");
|
|
279
|
+
}
|
|
244
280
|
// Validate required 'where' parameter
|
|
245
281
|
if (!parsed.where || parsed.where.trim() === "") {
|
|
246
282
|
throw new Error('pg_jsonb_delete requires a WHERE clause to identify rows to update. Example: where: "id = 1"');
|
|
@@ -284,7 +320,7 @@ export function createJsonbDeleteTool(adapter) {
|
|
|
284
320
|
useArrayOperator = false;
|
|
285
321
|
}
|
|
286
322
|
const pathExpr = useArrayOperator ? `#- $1` : `- $1`;
|
|
287
|
-
const sql = `UPDATE "${
|
|
323
|
+
const sql = `UPDATE "${table}" SET "${column}" = "${column}" ${pathExpr} WHERE ${parsed.where}`;
|
|
288
324
|
const result = await adapter.executeQuery(sql, [pathForPostgres]);
|
|
289
325
|
return {
|
|
290
326
|
rowsAffected: result.rowsAffected,
|
|
@@ -298,12 +334,19 @@ export function createJsonbContainsTool(adapter) {
|
|
|
298
334
|
name: "pg_jsonb_contains",
|
|
299
335
|
description: "Find rows where JSONB column contains the specified value. Note: Empty object {} matches all rows.",
|
|
300
336
|
group: "jsonb",
|
|
301
|
-
inputSchema:
|
|
337
|
+
inputSchema: JsonbContainsSchemaBase,
|
|
338
|
+
outputSchema: JsonbContainsOutputSchema,
|
|
302
339
|
annotations: readOnly("JSONB Contains"),
|
|
303
340
|
icons: getToolIcons("jsonb", readOnly("JSONB Contains")),
|
|
304
341
|
handler: async (params, _context) => {
|
|
305
342
|
const parsed = JsonbContainsSchema.parse(params);
|
|
306
|
-
|
|
343
|
+
// Resolve table/column from optional aliases
|
|
344
|
+
const table = parsed.table ?? parsed.tableName;
|
|
345
|
+
const column = parsed.column ?? parsed.col;
|
|
346
|
+
if (!table || !column) {
|
|
347
|
+
throw new Error("table and column are required");
|
|
348
|
+
}
|
|
349
|
+
const { select, where } = parsed;
|
|
307
350
|
// Parse JSON string values from MCP clients
|
|
308
351
|
const value = parseJsonbValue(parsed.value);
|
|
309
352
|
const selectCols = select !== undefined && select.length > 0
|
|
@@ -336,11 +379,19 @@ export function createJsonbPathQueryTool(adapter) {
|
|
|
336
379
|
name: "pg_jsonb_path_query",
|
|
337
380
|
description: "Query JSONB using SQL/JSON path expressions (PostgreSQL 12+). Note: Recursive descent (..) syntax is not supported by PostgreSQL.",
|
|
338
381
|
group: "jsonb",
|
|
339
|
-
inputSchema:
|
|
382
|
+
inputSchema: JsonbPathQuerySchemaBase,
|
|
383
|
+
outputSchema: JsonbPathQueryOutputSchema,
|
|
340
384
|
annotations: readOnly("JSONB Path Query"),
|
|
341
385
|
icons: getToolIcons("jsonb", readOnly("JSONB Path Query")),
|
|
342
386
|
handler: async (params, _context) => {
|
|
343
|
-
const
|
|
387
|
+
const parsed = JsonbPathQuerySchema.parse(params);
|
|
388
|
+
// Resolve table/column from optional aliases
|
|
389
|
+
const table = parsed.table ?? parsed.tableName;
|
|
390
|
+
const column = parsed.column ?? parsed.col;
|
|
391
|
+
if (!table || !column) {
|
|
392
|
+
throw new Error("table and column are required");
|
|
393
|
+
}
|
|
394
|
+
const { path, vars, where } = parsed;
|
|
344
395
|
const whereClause = where ? ` WHERE ${where}` : "";
|
|
345
396
|
const varsJson = vars ? JSON.stringify(vars) : "{}";
|
|
346
397
|
const sql = `SELECT jsonb_path_query("${column}", $1::jsonpath, $2::jsonb) as result FROM "${table}"${whereClause}`;
|
|
@@ -377,30 +428,17 @@ export function createJsonbAggTool(adapter) {
|
|
|
377
428
|
name: "pg_jsonb_agg",
|
|
378
429
|
description: "Aggregate rows into a JSONB array. With groupBy, returns all groups with their aggregated items.",
|
|
379
430
|
group: "jsonb",
|
|
380
|
-
inputSchema:
|
|
381
|
-
|
|
382
|
-
select: z
|
|
383
|
-
.array(z.string())
|
|
384
|
-
.optional()
|
|
385
|
-
.describe('Columns or expressions to include. Supports AS aliases: ["id", "metadata->\'name\' AS name"]'),
|
|
386
|
-
where: z.string().optional(),
|
|
387
|
-
groupBy: z
|
|
388
|
-
.string()
|
|
389
|
-
.optional()
|
|
390
|
-
.describe("Column or expression to group by. Returns {result: [{group_key, items}], count, grouped: true}"),
|
|
391
|
-
orderBy: z
|
|
392
|
-
.string()
|
|
393
|
-
.optional()
|
|
394
|
-
.describe('ORDER BY clause (e.g., "id DESC", "name ASC")'),
|
|
395
|
-
limit: z
|
|
396
|
-
.number()
|
|
397
|
-
.optional()
|
|
398
|
-
.describe("Maximum number of rows to aggregate"),
|
|
399
|
-
}),
|
|
431
|
+
inputSchema: JsonbAggSchemaBase,
|
|
432
|
+
outputSchema: JsonbAggOutputSchema,
|
|
400
433
|
annotations: readOnly("JSONB Aggregate"),
|
|
401
434
|
icons: getToolIcons("jsonb", readOnly("JSONB Aggregate")),
|
|
402
435
|
handler: async (params, _context) => {
|
|
403
|
-
|
|
436
|
+
// Parse with preprocess schema to resolve aliases (tableName→table, filter→where)
|
|
437
|
+
const parsed = JsonbAggSchema.parse(params);
|
|
438
|
+
const table = parsed.table;
|
|
439
|
+
if (!table) {
|
|
440
|
+
throw new Error("table is required");
|
|
441
|
+
}
|
|
404
442
|
// Build select expression with proper alias handling
|
|
405
443
|
let selectExpr;
|
|
406
444
|
if (parsed.select !== undefined && parsed.select.length > 0) {
|
|
@@ -434,7 +472,7 @@ export function createJsonbAggTool(adapter) {
|
|
|
434
472
|
const groupClause = ` GROUP BY ${groupExpr}`;
|
|
435
473
|
// Apply ordering within each group using ORDER BY inside jsonb_agg
|
|
436
474
|
const aggOrderBy = parsed.orderBy ? ` ORDER BY ${parsed.orderBy}` : "";
|
|
437
|
-
const sql = `SELECT ${groupExpr} as group_key, jsonb_agg(${selectExpr}${aggOrderBy}) as items FROM "${
|
|
475
|
+
const sql = `SELECT ${groupExpr} as group_key, jsonb_agg(${selectExpr}${aggOrderBy}) as items FROM "${table}" t${whereClause}${groupClause}${limitClause}`;
|
|
438
476
|
const result = await adapter.executeQuery(sql);
|
|
439
477
|
// Return grouped result with group_key and items per group
|
|
440
478
|
return {
|
|
@@ -445,7 +483,7 @@ export function createJsonbAggTool(adapter) {
|
|
|
445
483
|
}
|
|
446
484
|
else {
|
|
447
485
|
// For non-grouped, use subquery to apply limit/order before aggregation
|
|
448
|
-
const innerSql = `SELECT * FROM "${
|
|
486
|
+
const innerSql = `SELECT * FROM "${table}" t${whereClause}${orderByClause}${limitClause}`;
|
|
449
487
|
const sql = `SELECT jsonb_agg(${selectExpr.replace(/\bt\./g, "sub.")}) as result FROM (${innerSql}) sub`;
|
|
450
488
|
const result = await adapter.executeQuery(sql);
|
|
451
489
|
const arr = result.rows?.[0]?.["result"] ?? [];
|
|
@@ -484,6 +522,7 @@ export function createJsonbObjectTool(adapter) {
|
|
|
484
522
|
description: 'Build a JSONB object. Use data: {name: "John", age: 30} or object: {name: "John"}. Returns {object: {...}}.',
|
|
485
523
|
group: "jsonb",
|
|
486
524
|
inputSchema: JsonbObjectSchema,
|
|
525
|
+
outputSchema: JsonbObjectOutputSchema,
|
|
487
526
|
annotations: readOnly("JSONB Object"),
|
|
488
527
|
icons: getToolIcons("jsonb", readOnly("JSONB Object")),
|
|
489
528
|
handler: async (params, _context) => {
|
|
@@ -524,6 +563,7 @@ export function createJsonbArrayTool(adapter) {
|
|
|
524
563
|
description: "Build a JSONB array from values. Accepts {values: [...]} or {elements: [...]}. Returns {array: [...]}.",
|
|
525
564
|
group: "jsonb",
|
|
526
565
|
inputSchema: JsonbArraySchema,
|
|
566
|
+
outputSchema: JsonbArrayOutputSchema,
|
|
527
567
|
annotations: readOnly("JSONB Array"),
|
|
528
568
|
icons: getToolIcons("jsonb", readOnly("JSONB Array")),
|
|
529
569
|
handler: async (params, _context) => {
|
|
@@ -547,17 +587,20 @@ export function createJsonbKeysTool(adapter) {
|
|
|
547
587
|
name: "pg_jsonb_keys",
|
|
548
588
|
description: "Get all unique keys from a JSONB object column (deduplicated across rows).",
|
|
549
589
|
group: "jsonb",
|
|
550
|
-
inputSchema:
|
|
551
|
-
|
|
552
|
-
column: z.string(),
|
|
553
|
-
where: z.string().optional(),
|
|
554
|
-
}),
|
|
590
|
+
inputSchema: JsonbKeysSchemaBase,
|
|
591
|
+
outputSchema: JsonbKeysOutputSchema,
|
|
555
592
|
annotations: readOnly("JSONB Keys"),
|
|
556
593
|
icons: getToolIcons("jsonb", readOnly("JSONB Keys")),
|
|
557
594
|
handler: async (params, _context) => {
|
|
558
|
-
|
|
595
|
+
// Parse with preprocess schema to resolve aliases (tableName→table, col→column, filter→where)
|
|
596
|
+
const parsed = JsonbKeysSchema.parse(params);
|
|
597
|
+
const table = parsed.table;
|
|
598
|
+
const column = parsed.column;
|
|
599
|
+
if (!table || !column) {
|
|
600
|
+
throw new Error("table and column are required");
|
|
601
|
+
}
|
|
559
602
|
const whereClause = parsed.where ? ` WHERE ${parsed.where}` : "";
|
|
560
|
-
const sql = `SELECT DISTINCT jsonb_object_keys("${
|
|
603
|
+
const sql = `SELECT DISTINCT jsonb_object_keys("${column}") as key FROM "${table}"${whereClause}`;
|
|
561
604
|
try {
|
|
562
605
|
const result = await adapter.executeQuery(sql);
|
|
563
606
|
const keys = result.rows?.map((r) => r["key"]);
|
|
@@ -583,26 +626,26 @@ export function createJsonbStripNullsTool(adapter) {
|
|
|
583
626
|
name: "pg_jsonb_strip_nulls",
|
|
584
627
|
description: "Remove null values from a JSONB column. Use preview=true to see changes without modifying data.",
|
|
585
628
|
group: "jsonb",
|
|
586
|
-
inputSchema:
|
|
587
|
-
|
|
588
|
-
column: z.string(),
|
|
589
|
-
where: z.string(),
|
|
590
|
-
preview: z
|
|
591
|
-
.boolean()
|
|
592
|
-
.optional()
|
|
593
|
-
.describe("Preview what would be stripped without modifying data"),
|
|
594
|
-
}),
|
|
629
|
+
inputSchema: JsonbStripNullsSchemaBase,
|
|
630
|
+
outputSchema: JsonbStripNullsOutputSchema,
|
|
595
631
|
annotations: write("JSONB Strip Nulls"),
|
|
596
632
|
icons: getToolIcons("jsonb", write("JSONB Strip Nulls")),
|
|
597
633
|
handler: async (params, _context) => {
|
|
598
|
-
|
|
634
|
+
// Parse with preprocess schema to resolve aliases (tableName→table, col→column, filter→where)
|
|
635
|
+
const parsed = JsonbStripNullsSchema.parse(params);
|
|
636
|
+
const table = parsed.table;
|
|
637
|
+
const column = parsed.column;
|
|
638
|
+
const whereClause = parsed.where;
|
|
639
|
+
if (!table || !column) {
|
|
640
|
+
throw new Error("table and column are required");
|
|
641
|
+
}
|
|
599
642
|
// Validate required 'where' parameter before SQL execution
|
|
600
|
-
if (!
|
|
643
|
+
if (!whereClause || whereClause.trim() === "") {
|
|
601
644
|
throw new Error('pg_jsonb_strip_nulls requires a WHERE clause to identify rows to update. Example: where: "id = 1"');
|
|
602
645
|
}
|
|
603
646
|
if (parsed.preview === true) {
|
|
604
647
|
// Preview mode - show before/after without modifying
|
|
605
|
-
const previewSql = `SELECT "${
|
|
648
|
+
const previewSql = `SELECT "${column}" as before, jsonb_strip_nulls("${column}") as after FROM "${table}" WHERE ${whereClause}`;
|
|
606
649
|
const result = await adapter.executeQuery(previewSql);
|
|
607
650
|
return {
|
|
608
651
|
preview: true,
|
|
@@ -611,7 +654,7 @@ export function createJsonbStripNullsTool(adapter) {
|
|
|
611
654
|
hint: "No changes made - preview only",
|
|
612
655
|
};
|
|
613
656
|
}
|
|
614
|
-
const sql = `UPDATE "${
|
|
657
|
+
const sql = `UPDATE "${table}" SET "${column}" = jsonb_strip_nulls("${column}") WHERE ${whereClause}`;
|
|
615
658
|
const result = await adapter.executeQuery(sql);
|
|
616
659
|
return { rowsAffected: result.rowsAffected };
|
|
617
660
|
},
|
|
@@ -622,19 +665,18 @@ export function createJsonbTypeofTool(adapter) {
|
|
|
622
665
|
name: "pg_jsonb_typeof",
|
|
623
666
|
description: "Get JSONB type at path. Uses dot-notation (a.b.c), not JSONPath ($). Response includes columnNull to distinguish NULL columns.",
|
|
624
667
|
group: "jsonb",
|
|
625
|
-
inputSchema:
|
|
626
|
-
|
|
627
|
-
column: z.string(),
|
|
628
|
-
path: z
|
|
629
|
-
.union([z.string(), z.array(z.union([z.string(), z.number()]))])
|
|
630
|
-
.optional()
|
|
631
|
-
.describe("Path to check type of nested value (string or array format)"),
|
|
632
|
-
where: z.string().optional(),
|
|
633
|
-
}),
|
|
668
|
+
inputSchema: JsonbTypeofSchemaBase,
|
|
669
|
+
outputSchema: JsonbTypeofOutputSchema,
|
|
634
670
|
annotations: readOnly("JSONB Typeof"),
|
|
635
671
|
icons: getToolIcons("jsonb", readOnly("JSONB Typeof")),
|
|
636
672
|
handler: async (params, _context) => {
|
|
637
|
-
|
|
673
|
+
// Parse with preprocess schema to resolve aliases (tableName→table, col→column, filter→where)
|
|
674
|
+
const parsed = JsonbTypeofSchema.parse(params);
|
|
675
|
+
const table = parsed.table;
|
|
676
|
+
const column = parsed.column;
|
|
677
|
+
if (!table || !column) {
|
|
678
|
+
throw new Error("table and column are required");
|
|
679
|
+
}
|
|
638
680
|
const whereClause = parsed.where ? ` WHERE ${parsed.where}` : "";
|
|
639
681
|
// Normalize path to array format (accepts both string and array)
|
|
640
682
|
const pathArray = parsed.path !== undefined
|
|
@@ -642,7 +684,7 @@ export function createJsonbTypeofTool(adapter) {
|
|
|
642
684
|
: undefined;
|
|
643
685
|
const pathExpr = pathArray !== undefined ? ` #> $1` : "";
|
|
644
686
|
// Include column IS NULL check to disambiguate NULL column vs null path result
|
|
645
|
-
const sql = `SELECT jsonb_typeof("${
|
|
687
|
+
const sql = `SELECT jsonb_typeof("${column}"${pathExpr}) as type, ("${column}" IS NULL) as column_null FROM "${table}"${whereClause}`;
|
|
646
688
|
const queryParams = pathArray ? [pathArray] : [];
|
|
647
689
|
const result = await adapter.executeQuery(sql, queryParams);
|
|
648
690
|
const types = result.rows?.map((r) => r["type"]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/jsonb/basic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/jsonb/basic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kcache.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/tools/kcache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"kcache.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/tools/kcache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,yBAAyB,CAAC;AAoE9E;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,EAAE,CAUzE"}
|
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
import { z } from "zod";
|
|
15
15
|
import { readOnly, write, destructive } from "../../../utils/annotations.js";
|
|
16
16
|
import { getToolIcons } from "../../../utils/icons.js";
|
|
17
|
-
import { KcacheQueryStatsSchema, KcacheDatabaseStatsSchema, KcacheResourceAnalysisSchema,
|
|
17
|
+
import { KcacheQueryStatsSchema, KcacheDatabaseStatsSchema, KcacheResourceAnalysisSchema,
|
|
18
|
+
// Output schemas
|
|
19
|
+
KcacheCreateExtensionOutputSchema, KcacheQueryStatsOutputSchema, KcacheTopCpuOutputSchema, KcacheTopIoOutputSchema, KcacheDatabaseStatsOutputSchema, KcacheResourceAnalysisOutputSchema, KcacheResetOutputSchema, } from "../schemas/index.js";
|
|
18
20
|
// Helper to handle undefined params (allows tools to be called without {})
|
|
19
21
|
const defaultToEmpty = (val) => val ?? {};
|
|
20
22
|
async function getKcacheColumnNames(adapter) {
|
|
@@ -66,6 +68,7 @@ function createKcacheExtensionTool(adapter) {
|
|
|
66
68
|
Requires pg_stat_statements to be installed first. Both extensions must be in shared_preload_libraries.`,
|
|
67
69
|
group: "kcache",
|
|
68
70
|
inputSchema: z.object({}),
|
|
71
|
+
outputSchema: KcacheCreateExtensionOutputSchema,
|
|
69
72
|
annotations: write("Create Kcache Extension"),
|
|
70
73
|
icons: getToolIcons("kcache", write("Create Kcache Extension")),
|
|
71
74
|
handler: async (_params, _context) => {
|
|
@@ -103,6 +106,7 @@ Joins pg_stat_statements with pg_stat_kcache to show what SQL did AND what syste
|
|
|
103
106
|
orderBy options: 'total_time' (default), 'cpu_time', 'reads', 'writes'. Use minCalls parameter to filter by call count.`,
|
|
104
107
|
group: "kcache",
|
|
105
108
|
inputSchema: KcacheQueryStatsSchema,
|
|
109
|
+
outputSchema: KcacheQueryStatsOutputSchema,
|
|
106
110
|
annotations: readOnly("Kcache Query Stats"),
|
|
107
111
|
icons: getToolIcons("kcache", readOnly("Kcache Query Stats")),
|
|
108
112
|
handler: async (params, _context) => {
|
|
@@ -195,6 +199,7 @@ in user CPU (application code) vs system CPU (kernel operations).`,
|
|
|
195
199
|
.optional()
|
|
196
200
|
.describe("Number of top queries to return (default: 10)"),
|
|
197
201
|
})),
|
|
202
|
+
outputSchema: KcacheTopCpuOutputSchema,
|
|
198
203
|
annotations: readOnly("Kcache Top CPU"),
|
|
199
204
|
icons: getToolIcons("kcache", readOnly("Kcache Top CPU")),
|
|
200
205
|
handler: async (params, _context) => {
|
|
@@ -288,6 +293,7 @@ which represent actual disk access (not just shared buffer hits).`,
|
|
|
288
293
|
.optional()
|
|
289
294
|
.describe("Number of top queries to return (default: 10)"),
|
|
290
295
|
})),
|
|
296
|
+
outputSchema: KcacheTopIoOutputSchema,
|
|
291
297
|
annotations: readOnly("Kcache Top IO"),
|
|
292
298
|
icons: getToolIcons("kcache", readOnly("Kcache Top IO")),
|
|
293
299
|
handler: async (params, _context) => {
|
|
@@ -371,6 +377,7 @@ function createKcacheDatabaseStatsTool(adapter) {
|
|
|
371
377
|
Shows total CPU time, I/O, and page faults across all queries.`,
|
|
372
378
|
group: "kcache",
|
|
373
379
|
inputSchema: KcacheDatabaseStatsSchema,
|
|
380
|
+
outputSchema: KcacheDatabaseStatsOutputSchema,
|
|
374
381
|
annotations: readOnly("Kcache Database Stats"),
|
|
375
382
|
icons: getToolIcons("kcache", readOnly("Kcache Database Stats")),
|
|
376
383
|
handler: async (params, _context) => {
|
|
@@ -436,6 +443,7 @@ function createKcacheResourceAnalysisTool(adapter) {
|
|
|
436
443
|
Helps identify the root cause of performance issues - is the query computation-heavy or disk-heavy?`,
|
|
437
444
|
group: "kcache",
|
|
438
445
|
inputSchema: KcacheResourceAnalysisSchema,
|
|
446
|
+
outputSchema: KcacheResourceAnalysisOutputSchema,
|
|
439
447
|
annotations: readOnly("Kcache Resource Analysis"),
|
|
440
448
|
icons: getToolIcons("kcache", readOnly("Kcache Resource Analysis")),
|
|
441
449
|
handler: async (params, _context) => {
|
|
@@ -559,6 +567,7 @@ function createKcacheResetTool(adapter) {
|
|
|
559
567
|
Note: This also resets pg_stat_statements statistics.`,
|
|
560
568
|
group: "kcache",
|
|
561
569
|
inputSchema: z.object({}),
|
|
570
|
+
outputSchema: KcacheResetOutputSchema,
|
|
562
571
|
annotations: destructive("Reset Kcache Stats"),
|
|
563
572
|
icons: getToolIcons("kcache", destructive("Reset Kcache Stats")),
|
|
564
573
|
handler: async (_params, _context) => {
|