@neverinfamous/postgres-mcp 1.1.0 → 1.3.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 +95 -81
- package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
- package/dist/__tests__/mocks/adapter.js +0 -1
- package/dist/__tests__/mocks/adapter.js.map +1 -1
- package/dist/__tests__/mocks/pool.d.ts.map +1 -1
- package/dist/__tests__/mocks/pool.js +0 -1
- package/dist/__tests__/mocks/pool.js.map +1 -1
- package/dist/adapters/DatabaseAdapter.js +1 -1
- package/dist/adapters/DatabaseAdapter.js.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.js +78 -8
- package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
- package/dist/adapters/postgresql/prompts/backup.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/backup.js +2 -3
- package/dist/adapters/postgresql/prompts/backup.js.map +1 -1
- package/dist/adapters/postgresql/prompts/citext.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/citext.js +3 -4
- package/dist/adapters/postgresql/prompts/citext.js.map +1 -1
- package/dist/adapters/postgresql/prompts/extensionSetup.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/extensionSetup.js +2 -3
- package/dist/adapters/postgresql/prompts/extensionSetup.js.map +1 -1
- package/dist/adapters/postgresql/prompts/health.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/health.js +2 -3
- package/dist/adapters/postgresql/prompts/health.js.map +1 -1
- package/dist/adapters/postgresql/prompts/index.js +20 -27
- package/dist/adapters/postgresql/prompts/index.js.map +1 -1
- package/dist/adapters/postgresql/prompts/indexTuning.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/indexTuning.js +2 -3
- package/dist/adapters/postgresql/prompts/indexTuning.js.map +1 -1
- package/dist/adapters/postgresql/prompts/kcache.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/kcache.js +3 -4
- package/dist/adapters/postgresql/prompts/kcache.js.map +1 -1
- package/dist/adapters/postgresql/prompts/ltree.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/ltree.js +5 -6
- package/dist/adapters/postgresql/prompts/ltree.js.map +1 -1
- package/dist/adapters/postgresql/prompts/partman.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/partman.js +2 -3
- package/dist/adapters/postgresql/prompts/partman.js.map +1 -1
- package/dist/adapters/postgresql/prompts/pgcron.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/pgcron.js +2 -3
- package/dist/adapters/postgresql/prompts/pgcron.js.map +1 -1
- package/dist/adapters/postgresql/prompts/pgcrypto.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/pgcrypto.js +3 -4
- package/dist/adapters/postgresql/prompts/pgcrypto.js.map +1 -1
- package/dist/adapters/postgresql/prompts/pgvector.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/pgvector.js +3 -4
- package/dist/adapters/postgresql/prompts/pgvector.js.map +1 -1
- package/dist/adapters/postgresql/prompts/postgis.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/postgis.js +2 -3
- package/dist/adapters/postgresql/prompts/postgis.js.map +1 -1
- package/dist/adapters/postgresql/schemas/admin.d.ts +10 -5
- package/dist/adapters/postgresql/schemas/admin.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/admin.js +10 -5
- package/dist/adapters/postgresql/schemas/admin.js.map +1 -1
- package/dist/adapters/postgresql/schemas/backup.d.ts +8 -4
- package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/backup.js +11 -4
- package/dist/adapters/postgresql/schemas/backup.js.map +1 -1
- package/dist/adapters/postgresql/schemas/core.d.ts +54 -19
- package/dist/adapters/postgresql/schemas/core.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/core.js +65 -17
- package/dist/adapters/postgresql/schemas/core.js.map +1 -1
- package/dist/adapters/postgresql/schemas/cron.d.ts +51 -32
- package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/cron.js +64 -44
- package/dist/adapters/postgresql/schemas/cron.js.map +1 -1
- package/dist/adapters/postgresql/schemas/extensions.d.ts +168 -73
- package/dist/adapters/postgresql/schemas/extensions.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/extensions.js +179 -62
- package/dist/adapters/postgresql/schemas/extensions.js.map +1 -1
- package/dist/adapters/postgresql/schemas/index.d.ts +5 -5
- package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/index.js +9 -7
- package/dist/adapters/postgresql/schemas/index.js.map +1 -1
- package/dist/adapters/postgresql/schemas/jsonb.d.ts +94 -42
- package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/jsonb.js +101 -30
- package/dist/adapters/postgresql/schemas/jsonb.js.map +1 -1
- package/dist/adapters/postgresql/schemas/monitoring.d.ts +28 -11
- package/dist/adapters/postgresql/schemas/monitoring.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/monitoring.js +49 -24
- package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -1
- package/dist/adapters/postgresql/schemas/partitioning.d.ts +15 -11
- package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/partitioning.js +17 -13
- package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -1
- package/dist/adapters/postgresql/schemas/performance.d.ts +62 -31
- package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/performance.js +86 -24
- package/dist/adapters/postgresql/schemas/performance.js.map +1 -1
- package/dist/adapters/postgresql/schemas/postgis.d.ts +20 -0
- package/dist/adapters/postgresql/schemas/postgis.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/postgis.js +20 -3
- package/dist/adapters/postgresql/schemas/postgis.js.map +1 -1
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +35 -23
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/schema-mgmt.js +69 -26
- package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -1
- package/dist/adapters/postgresql/schemas/stats.d.ts +33 -20
- package/dist/adapters/postgresql/schemas/stats.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/stats.js +36 -20
- package/dist/adapters/postgresql/schemas/stats.js.map +1 -1
- package/dist/adapters/postgresql/schemas/text-search.d.ts +8 -5
- package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/text-search.js +15 -5
- package/dist/adapters/postgresql/schemas/text-search.js.map +1 -1
- package/dist/adapters/postgresql/tools/admin.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/admin.js +211 -140
- 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 +410 -387
- 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 +175 -172
- 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 +221 -163
- package/dist/adapters/postgresql/tools/citext.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/convenience.d.ts +9 -1
- package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/convenience.js +96 -9
- package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/error-helpers.d.ts +48 -0
- package/dist/adapters/postgresql/tools/core/error-helpers.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/error-helpers.js +256 -0
- package/dist/adapters/postgresql/tools/core/error-helpers.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/health.js +23 -6
- 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 +45 -4
- 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 +104 -85
- 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 +100 -42
- package/dist/adapters/postgresql/tools/core/query.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/schemas.d.ts +52 -25
- package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/schemas.js +55 -25
- 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 +74 -30
- 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 +274 -179
- 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 +372 -284
- 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 +617 -398
- 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 +282 -220
- 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 +126 -35
- 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 +59 -40
- 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 +150 -15
- 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 +12 -5
- 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 +135 -22
- 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 +264 -160
- 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 +61 -21
- 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 +44 -7
- 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 +92 -81
- 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 +128 -37
- 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 +242 -87
- 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 +293 -201
- 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 +359 -249
- 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 +135 -51
- 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 +515 -226
- 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 +515 -476
- 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 +302 -293
- 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 +398 -220
- 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 +157 -50
- 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 +70 -38
- package/dist/adapters/postgresql/tools/vector/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/vector/basic.d.ts +8 -0
- package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/vector/basic.js +194 -82
- package/dist/adapters/postgresql/tools/vector/basic.js.map +1 -1
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +15 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli.js +7 -6
- package/dist/cli.js.map +1 -1
- package/dist/codemode/api.d.ts.map +1 -1
- package/dist/codemode/api.js +4 -3
- 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 +76 -34
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/filtering/ToolConstants.d.ts +29 -13
- package/dist/filtering/ToolConstants.d.ts.map +1 -1
- package/dist/filtering/ToolConstants.js +44 -27
- package/dist/filtering/ToolConstants.js.map +1 -1
- package/dist/utils/logger.js +2 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/progress-utils.js +1 -1
- package/dist/utils/progress-utils.js.map +1 -1
- package/package.json +13 -9
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Advanced spatial tools: geocode, geo_transform, geo_index_optimize, geo_cluster.
|
|
5
5
|
*/
|
|
6
|
-
import { z } from "zod";
|
|
6
|
+
import { z, ZodError } from "zod";
|
|
7
7
|
import { readOnly } from "../../../../utils/annotations.js";
|
|
8
8
|
import { getToolIcons } from "../../../../utils/icons.js";
|
|
9
|
+
import { formatPostgresError } from "../core/error-helpers.js";
|
|
9
10
|
import { GeocodeSchemaBase, GeocodeSchema, GeoTransformSchemaBase, GeoTransformSchema, GeoClusterSchemaBase, GeoClusterSchema,
|
|
10
11
|
// Output schemas
|
|
11
12
|
GeocodeOutputSchema, GeoTransformOutputSchema, GeoIndexOptimizeOutputSchema, GeoClusterOutputSchema, } from "../../schemas/index.js";
|
|
@@ -19,27 +20,41 @@ export function createGeocodeTool(adapter) {
|
|
|
19
20
|
annotations: readOnly("Geocode"),
|
|
20
21
|
icons: getToolIcons("postgis", readOnly("Geocode")),
|
|
21
22
|
handler: async (params, _context) => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
try {
|
|
24
|
+
const parsed = GeocodeSchema.parse(params ?? {});
|
|
25
|
+
const srid = parsed.srid ?? 4326;
|
|
26
|
+
const sql = `SELECT
|
|
25
27
|
ST_AsGeoJSON(ST_SetSRID(ST_MakePoint($1, $2), $3)) as geojson,
|
|
26
28
|
ST_AsText(ST_SetSRID(ST_MakePoint($1, $2), $3)) as wkt`;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
29
|
+
const result = await adapter.executeQuery(sql, [
|
|
30
|
+
parsed.lng,
|
|
31
|
+
parsed.lat,
|
|
32
|
+
srid,
|
|
33
|
+
]);
|
|
34
|
+
// Add note about SRID for non-4326 cases
|
|
35
|
+
const row = result.rows?.[0];
|
|
36
|
+
if (row === undefined) {
|
|
37
|
+
return {};
|
|
38
|
+
}
|
|
39
|
+
const response = { ...row };
|
|
40
|
+
if (srid !== 4326) {
|
|
41
|
+
response["note"] =
|
|
42
|
+
`Coordinates are WGS84 lat/lng with SRID ${String(srid)} metadata. Use pg_geo_transform to convert to target CRS.`;
|
|
43
|
+
}
|
|
44
|
+
return response;
|
|
36
45
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (error instanceof ZodError) {
|
|
48
|
+
return {
|
|
49
|
+
success: false,
|
|
50
|
+
error: error.issues.map((i) => i.message).join("; "),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
success: false,
|
|
55
|
+
error: formatPostgresError(error, { tool: "pg_geocode" }),
|
|
56
|
+
};
|
|
41
57
|
}
|
|
42
|
-
return response;
|
|
43
58
|
},
|
|
44
59
|
};
|
|
45
60
|
}
|
|
@@ -56,55 +71,114 @@ export function createGeoTransformTool(adapter) {
|
|
|
56
71
|
annotations: readOnly("Transform Geometry"),
|
|
57
72
|
icons: getToolIcons("postgis", readOnly("Transform Geometry")),
|
|
58
73
|
handler: async (params, _context) => {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
74
|
+
try {
|
|
75
|
+
const parsed = GeoTransformSchema.parse(params ?? {});
|
|
76
|
+
const schemaName = parsed.schema ?? "public";
|
|
77
|
+
const qualifiedTable = schemaName !== "public"
|
|
78
|
+
? `"${schemaName}"."${parsed.table}"`
|
|
79
|
+
: `"${parsed.table}"`;
|
|
80
|
+
const columnName = `"${parsed.column}"`;
|
|
81
|
+
// Auto-detect fromSrid from column metadata if not provided
|
|
82
|
+
let fromSrid = parsed.fromSrid;
|
|
83
|
+
if (fromSrid === 0) {
|
|
84
|
+
// Check if table exists before attempting SRID auto-detection
|
|
85
|
+
const tableCheckSql = `SELECT 1 FROM information_schema.tables WHERE table_schema = $1 AND table_name = $2`;
|
|
86
|
+
const tableCheckResult = await adapter.executeQuery(tableCheckSql, [
|
|
87
|
+
schemaName,
|
|
88
|
+
parsed.table,
|
|
89
|
+
]);
|
|
90
|
+
if ((tableCheckResult.rows?.length ?? 0) === 0) {
|
|
91
|
+
return {
|
|
92
|
+
success: false,
|
|
93
|
+
error: `Table or view '${parsed.table}' not found. Use pg_list_tables to see available tables.`,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
const sridQuery = `
|
|
97
|
+
SELECT srid FROM geometry_columns
|
|
98
|
+
WHERE f_table_schema = $1 AND f_table_name = $2 AND f_geometry_column = $3
|
|
99
|
+
UNION
|
|
100
|
+
SELECT srid FROM geography_columns
|
|
101
|
+
WHERE f_table_schema = $1 AND f_table_name = $2 AND f_geography_column = $3
|
|
102
|
+
LIMIT 1
|
|
103
|
+
`;
|
|
104
|
+
const sridResult = await adapter.executeQuery(sridQuery, [
|
|
105
|
+
schemaName,
|
|
106
|
+
parsed.table,
|
|
107
|
+
parsed.column,
|
|
108
|
+
]);
|
|
109
|
+
const sridValue = sridResult.rows?.[0]?.["srid"];
|
|
110
|
+
if (sridValue !== undefined && sridValue !== null) {
|
|
111
|
+
fromSrid = Number(sridValue);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
return {
|
|
115
|
+
success: false,
|
|
116
|
+
error: `Could not auto-detect SRID for column "${parsed.column}" on table "${parsed.table}". Provide fromSrid (or sourceSrid) explicitly.`,
|
|
117
|
+
suggestion: `Use fromSrid: 4326 for WGS84/GPS coordinates, or fromSrid: 3857 for Web Mercator`,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
105
120
|
}
|
|
121
|
+
const whereClause = parsed.where !== undefined ? `WHERE ${parsed.where}` : "";
|
|
122
|
+
// Default limit of 50 to prevent large payloads, use limit: 0 for all
|
|
123
|
+
const effectiveLimit = parsed.limit ?? 50;
|
|
124
|
+
const limitClause = effectiveLimit > 0 ? `LIMIT ${String(effectiveLimit)}` : "";
|
|
125
|
+
// Get non-geometry columns to avoid returning raw WKB
|
|
126
|
+
const colQuery = `
|
|
127
|
+
SELECT column_name FROM information_schema.columns
|
|
128
|
+
WHERE table_schema = $1 AND table_name = $2
|
|
129
|
+
AND udt_name NOT IN ('geometry', 'geography')
|
|
130
|
+
ORDER BY ordinal_position
|
|
131
|
+
`;
|
|
132
|
+
const colResult = await adapter.executeQuery(colQuery, [
|
|
133
|
+
schemaName,
|
|
134
|
+
parsed.table,
|
|
135
|
+
]);
|
|
136
|
+
const nonGeomCols = (colResult.rows ?? [])
|
|
137
|
+
.map((row) => `"${String(row["column_name"])}"`)
|
|
138
|
+
.join(", ");
|
|
139
|
+
// Select non-geometry columns + transformed geometry representations
|
|
140
|
+
const selectCols = nonGeomCols.length > 0
|
|
141
|
+
? `${nonGeomCols}, ST_AsGeoJSON(ST_Transform(ST_SetSRID(${columnName}, ${String(fromSrid)}), ${String(parsed.toSrid)})) as transformed_geojson, ST_AsText(ST_Transform(ST_SetSRID(${columnName}, ${String(fromSrid)}), ${String(parsed.toSrid)})) as transformed_wkt, ${String(parsed.toSrid)} as output_srid`
|
|
142
|
+
: `ST_AsGeoJSON(ST_Transform(ST_SetSRID(${columnName}, ${String(fromSrid)}), ${String(parsed.toSrid)})) as transformed_geojson, ST_AsText(ST_Transform(ST_SetSRID(${columnName}, ${String(fromSrid)}), ${String(parsed.toSrid)})) as transformed_wkt, ${String(parsed.toSrid)} as output_srid`;
|
|
143
|
+
const sql = `SELECT ${selectCols} FROM ${qualifiedTable} ${whereClause} ${limitClause}`;
|
|
144
|
+
const result = await adapter.executeQuery(sql);
|
|
145
|
+
// Build response with truncation indicators if default limit was applied
|
|
146
|
+
const response = {
|
|
147
|
+
results: result.rows,
|
|
148
|
+
count: result.rows?.length ?? 0,
|
|
149
|
+
fromSrid: fromSrid,
|
|
150
|
+
toSrid: parsed.toSrid,
|
|
151
|
+
...(parsed.fromSrid === 0 && { autoDetectedSrid: true }),
|
|
152
|
+
};
|
|
153
|
+
// Check if results were truncated (works for both default and explicit limits)
|
|
154
|
+
if (effectiveLimit > 0) {
|
|
155
|
+
const countSql = `SELECT COUNT(*) as cnt FROM ${qualifiedTable} ${whereClause}`;
|
|
156
|
+
const countResult = await adapter.executeQuery(countSql);
|
|
157
|
+
const totalCount = Number(countResult.rows?.[0]?.["cnt"] ?? 0);
|
|
158
|
+
if (totalCount > effectiveLimit) {
|
|
159
|
+
response["truncated"] = true;
|
|
160
|
+
response["totalCount"] = totalCount;
|
|
161
|
+
response["limit"] = effectiveLimit;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return response;
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
if (error instanceof ZodError) {
|
|
168
|
+
return {
|
|
169
|
+
success: false,
|
|
170
|
+
error: error.issues.map((i) => i.message).join("; "),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
success: false,
|
|
175
|
+
error: formatPostgresError(error, {
|
|
176
|
+
tool: "pg_geo_transform",
|
|
177
|
+
table: params?.["table"] ??
|
|
178
|
+
undefined,
|
|
179
|
+
}),
|
|
180
|
+
};
|
|
106
181
|
}
|
|
107
|
-
return response;
|
|
108
182
|
},
|
|
109
183
|
};
|
|
110
184
|
}
|
|
@@ -238,151 +312,169 @@ export function createGeoClusterTool(adapter) {
|
|
|
238
312
|
annotations: readOnly("Geo Cluster"),
|
|
239
313
|
icons: getToolIcons("postgis", readOnly("Geo Cluster")),
|
|
240
314
|
handler: async (params, _context) => {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
315
|
+
try {
|
|
316
|
+
const parsed = GeoClusterSchema.parse(params ?? {});
|
|
317
|
+
const method = parsed.method ?? "dbscan";
|
|
318
|
+
const schemaName = parsed.schema ?? "public";
|
|
319
|
+
const qualifiedTable = schemaName !== "public"
|
|
320
|
+
? `"${schemaName}"."${parsed.table}"`
|
|
321
|
+
: `"${parsed.table}"`;
|
|
322
|
+
const whereClause = parsed.where !== undefined ? `WHERE ${parsed.where}` : "";
|
|
323
|
+
const limitClause = parsed.limit !== undefined && parsed.limit > 0
|
|
324
|
+
? `LIMIT ${String(parsed.limit)}`
|
|
325
|
+
: "";
|
|
326
|
+
// Track warning if K > N
|
|
327
|
+
let warning;
|
|
328
|
+
// For K-Means, validate and adjust numClusters
|
|
329
|
+
let effectiveNumClusters = parsed.numClusters ?? 5;
|
|
330
|
+
let rowCount;
|
|
331
|
+
if (method === "kmeans") {
|
|
332
|
+
// Validate numClusters > 0
|
|
333
|
+
if (effectiveNumClusters <= 0) {
|
|
334
|
+
return {
|
|
335
|
+
error: `numClusters must be greater than 0 (received: ${String(effectiveNumClusters)}).`,
|
|
336
|
+
method,
|
|
337
|
+
table: parsed.table,
|
|
338
|
+
numClusters: effectiveNumClusters,
|
|
339
|
+
suggestion: "Provide a positive integer for numClusters (e.g., numClusters: 3)",
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
const countResult = await adapter.executeQuery(`SELECT COUNT(*) as cnt FROM ${qualifiedTable} ${whereClause}`);
|
|
343
|
+
rowCount = Number(countResult.rows?.[0]?.["cnt"] ?? 0);
|
|
344
|
+
if (rowCount === 0) {
|
|
345
|
+
return {
|
|
346
|
+
error: `No rows found in table ${parsed.table}${whereClause !== "" ? " matching filter" : ""}. K-Means requires at least 1 row.`,
|
|
347
|
+
method,
|
|
348
|
+
table: parsed.table,
|
|
349
|
+
rowCount: 0,
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
// Clamp K to row count and warn if exceeded
|
|
353
|
+
if (effectiveNumClusters > rowCount) {
|
|
354
|
+
warning = `Requested ${String(parsed.numClusters)} clusters but only ${String(rowCount)} rows available. Using ${String(rowCount)} clusters instead.`;
|
|
355
|
+
effectiveNumClusters = rowCount;
|
|
356
|
+
}
|
|
266
357
|
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
return {
|
|
271
|
-
error: `No rows found in table ${parsed.table}${whereClause !== "" ? " matching filter" : ""}. K-Means requires at least 1 row.`,
|
|
272
|
-
method,
|
|
273
|
-
table: parsed.table,
|
|
274
|
-
rowCount: 0,
|
|
275
|
-
};
|
|
358
|
+
let clusterFunction;
|
|
359
|
+
if (method === "kmeans") {
|
|
360
|
+
clusterFunction = `ST_ClusterKMeans("${parsed.column}", ${String(effectiveNumClusters)}) OVER ()`;
|
|
276
361
|
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
362
|
+
else {
|
|
363
|
+
const eps = parsed.eps ?? 100;
|
|
364
|
+
const minPoints = parsed.minPoints ?? 3;
|
|
365
|
+
clusterFunction = `ST_ClusterDBSCAN("${parsed.column}", ${String(eps)}, ${String(minPoints)}) OVER ()`;
|
|
281
366
|
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
? { numClusters: effectiveNumClusters }
|
|
343
|
-
: { eps: parsed.eps ?? 100, minPoints: parsed.minPoints ?? 3 },
|
|
344
|
-
summary: normalizedSummary,
|
|
345
|
-
clusters: normalizedClusters,
|
|
346
|
-
};
|
|
347
|
-
// Add warning if K was clamped
|
|
348
|
-
if (warning !== undefined) {
|
|
349
|
-
response["warning"] = warning;
|
|
350
|
-
response["requestedClusters"] = parsed.numClusters;
|
|
351
|
-
response["actualClusters"] = effectiveNumClusters;
|
|
352
|
-
}
|
|
353
|
-
// Add contextual hints based on method and results
|
|
354
|
-
const numClusters = normalizedSummary.num_clusters;
|
|
355
|
-
const noisePoints = normalizedSummary.noise_points;
|
|
356
|
-
const totalPoints = normalizedSummary.total_points;
|
|
357
|
-
if (method === "dbscan") {
|
|
358
|
-
const eps = parsed.eps ?? 100;
|
|
359
|
-
const minPoints = parsed.minPoints ?? 3;
|
|
360
|
-
// Provide hints about DBSCAN parameter trade-offs
|
|
361
|
-
const hints = [];
|
|
362
|
-
if (numClusters === 1 && totalPoints > 1) {
|
|
363
|
-
hints.push(`All ${String(totalPoints)} points formed a single cluster. Consider decreasing eps (currently ${String(eps)}m) to create more distinct clusters.`);
|
|
367
|
+
const sql = `
|
|
368
|
+
WITH clustered AS (
|
|
369
|
+
SELECT
|
|
370
|
+
*,
|
|
371
|
+
${clusterFunction} as cluster_id
|
|
372
|
+
FROM ${qualifiedTable}
|
|
373
|
+
${whereClause}
|
|
374
|
+
)
|
|
375
|
+
SELECT
|
|
376
|
+
cluster_id,
|
|
377
|
+
COUNT(*) as point_count,
|
|
378
|
+
ST_AsGeoJSON(ST_Centroid(ST_Collect("${parsed.column}"))) as centroid,
|
|
379
|
+
ST_AsGeoJSON(ST_ConvexHull(ST_Collect("${parsed.column}"))) as hull
|
|
380
|
+
FROM clustered
|
|
381
|
+
WHERE cluster_id IS NOT NULL
|
|
382
|
+
GROUP BY cluster_id
|
|
383
|
+
ORDER BY point_count DESC
|
|
384
|
+
${limitClause}
|
|
385
|
+
`;
|
|
386
|
+
const [clustersResult, summaryResult] = await Promise.all([
|
|
387
|
+
adapter.executeQuery(sql),
|
|
388
|
+
adapter.executeQuery(`
|
|
389
|
+
WITH clustered AS (
|
|
390
|
+
SELECT ${clusterFunction} as cluster_id
|
|
391
|
+
FROM ${qualifiedTable}
|
|
392
|
+
${whereClause}
|
|
393
|
+
)
|
|
394
|
+
SELECT
|
|
395
|
+
COUNT(DISTINCT cluster_id) as num_clusters,
|
|
396
|
+
COUNT(*) FILTER (WHERE cluster_id IS NULL) as noise_points,
|
|
397
|
+
COUNT(*) as total_points
|
|
398
|
+
FROM clustered
|
|
399
|
+
`),
|
|
400
|
+
]);
|
|
401
|
+
// Normalize cluster point_count to numbers
|
|
402
|
+
const normalizedClusters = (clustersResult.rows ?? []).map((row) => ({
|
|
403
|
+
...row,
|
|
404
|
+
point_count: Number(row["point_count"]),
|
|
405
|
+
}));
|
|
406
|
+
// Normalize summary values to numbers for consistency
|
|
407
|
+
const rawSummary = summaryResult.rows?.[0] ?? {};
|
|
408
|
+
const normalizedSummary = {
|
|
409
|
+
num_clusters: Number(rawSummary["num_clusters"] ?? 0),
|
|
410
|
+
noise_points: Number(rawSummary["noise_points"] ?? 0),
|
|
411
|
+
total_points: Number(rawSummary["total_points"] ?? 0),
|
|
412
|
+
};
|
|
413
|
+
// Build response
|
|
414
|
+
const response = {
|
|
415
|
+
method,
|
|
416
|
+
parameters: method === "kmeans"
|
|
417
|
+
? { numClusters: effectiveNumClusters }
|
|
418
|
+
: { eps: parsed.eps ?? 100, minPoints: parsed.minPoints ?? 3 },
|
|
419
|
+
summary: normalizedSummary,
|
|
420
|
+
clusters: normalizedClusters,
|
|
421
|
+
};
|
|
422
|
+
// Add warning if K was clamped
|
|
423
|
+
if (warning !== undefined) {
|
|
424
|
+
response["warning"] = warning;
|
|
425
|
+
response["requestedClusters"] = parsed.numClusters;
|
|
426
|
+
response["actualClusters"] = effectiveNumClusters;
|
|
364
427
|
}
|
|
365
|
-
|
|
366
|
-
|
|
428
|
+
// Add contextual hints based on method and results
|
|
429
|
+
const numClusters = normalizedSummary.num_clusters;
|
|
430
|
+
const noisePoints = normalizedSummary.noise_points;
|
|
431
|
+
const totalPoints = normalizedSummary.total_points;
|
|
432
|
+
if (method === "dbscan") {
|
|
433
|
+
const eps = parsed.eps ?? 100;
|
|
434
|
+
const minPoints = parsed.minPoints ?? 3;
|
|
435
|
+
// Provide hints about DBSCAN parameter trade-offs
|
|
436
|
+
const hints = [];
|
|
437
|
+
if (numClusters === 1 && totalPoints > 1) {
|
|
438
|
+
hints.push(`All ${String(totalPoints)} points formed a single cluster. Consider decreasing eps (currently ${String(eps)}m) to create more distinct clusters.`);
|
|
439
|
+
}
|
|
440
|
+
if (noisePoints > 0 && noisePoints > totalPoints * 0.5) {
|
|
441
|
+
hints.push(`${String(noisePoints)} of ${String(totalPoints)} points (${String(Math.round((noisePoints / totalPoints) * 100))}%) are noise. Consider increasing eps or decreasing minPoints (currently ${String(minPoints)}).`);
|
|
442
|
+
}
|
|
443
|
+
if (numClusters === 0 && totalPoints > 0) {
|
|
444
|
+
hints.push(`No clusters formed - all points are noise. Try increasing eps (currently ${String(eps)}m) or decreasing minPoints (currently ${String(minPoints)}).`);
|
|
445
|
+
}
|
|
446
|
+
response["notes"] =
|
|
447
|
+
"Noise points (cluster_id = NULL) are points not belonging to any cluster";
|
|
448
|
+
if (hints.length > 0) {
|
|
449
|
+
response["hints"] = hints;
|
|
450
|
+
}
|
|
451
|
+
response["parameterGuide"] = {
|
|
452
|
+
eps: `Distance threshold in meters. Larger values group more distant points together.`,
|
|
453
|
+
minPoints: `Minimum points required to form a cluster. Higher values create fewer, denser clusters.`,
|
|
454
|
+
};
|
|
367
455
|
}
|
|
368
|
-
|
|
369
|
-
|
|
456
|
+
else {
|
|
457
|
+
response["notes"] =
|
|
458
|
+
"K-Means will always assign all points to a cluster";
|
|
370
459
|
}
|
|
371
|
-
response
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
460
|
+
return response;
|
|
461
|
+
}
|
|
462
|
+
catch (error) {
|
|
463
|
+
if (error instanceof ZodError) {
|
|
464
|
+
return {
|
|
465
|
+
success: false,
|
|
466
|
+
error: error.issues.map((i) => i.message).join("; "),
|
|
467
|
+
};
|
|
375
468
|
}
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
469
|
+
return {
|
|
470
|
+
success: false,
|
|
471
|
+
error: formatPostgresError(error, {
|
|
472
|
+
tool: "pg_geo_cluster",
|
|
473
|
+
table: params?.["table"] ??
|
|
474
|
+
undefined,
|
|
475
|
+
}),
|
|
379
476
|
};
|
|
380
477
|
}
|
|
381
|
-
else {
|
|
382
|
-
response["notes"] =
|
|
383
|
-
"K-Means will always assign all points to a cluster";
|
|
384
|
-
}
|
|
385
|
-
return response;
|
|
386
478
|
},
|
|
387
479
|
};
|
|
388
480
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advanced.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/postgis/advanced.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"advanced.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/postgis/advanced.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/postgis/basic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/postgis/basic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AAsCpC,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,eAAe,GACvB,cAAc,CAchB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,GACvB,cAAc,CA2EhB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,GACvB,cAAc,CAyFhB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CA8E3E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAyGzE;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,GACvB,cAAc,CA8GhB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,GACvB,cAAc,CA6GhB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,GACvB,cAAc,CAiFhB"}
|