@pilat/mcp-datalink 1.3.2 → 1.4.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 +1 -1
- package/dist/__integration__/helpers.d.ts.map +1 -1
- package/dist/__integration__/helpers.js +0 -3
- package/dist/__integration__/helpers.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +8 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +22 -44
- package/dist/server.js.map +1 -1
- package/dist/tools/query.d.ts.map +1 -1
- package/dist/tools/query.js +6 -22
- package/dist/tools/query.js.map +1 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/errors.d.ts +1 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +2 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/truncate.d.ts +1 -6
- package/dist/utils/truncate.d.ts.map +1 -1
- package/dist/utils/truncate.js +0 -45
- package/dist/utils/truncate.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -123,7 +123,7 @@ DATALINK_MAIN_URL="postgresql://localhost:${DB_PORT:-5432}/mydb"
|
|
|
123
123
|
- Single statement per query (no chaining)
|
|
124
124
|
- DDL blocked (no DROP, ALTER, TRUNCATE)
|
|
125
125
|
- Readonly mode per connection
|
|
126
|
-
-
|
|
126
|
+
- Response size limit (100 rows, 64KB default, configurable via `DATALINK_MAX_TOTAL_SIZE`)
|
|
127
127
|
- Query timeout: 30s default, model can request up to 10min, `MAX_TIMEOUT` caps it
|
|
128
128
|
|
|
129
129
|
## License
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/__integration__/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK1C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/__integration__/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK1C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAwCpE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgGtD;AAED;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA2ClD;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAKrD;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAuC1E;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwF5D;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgDxD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK3D;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAwCzE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgG3D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0CvD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAS1D"}
|
|
@@ -23,7 +23,6 @@ export function createTestConfig(overrides) {
|
|
|
23
23
|
},
|
|
24
24
|
defaults: {
|
|
25
25
|
maxRows: 100,
|
|
26
|
-
maxCellLength: 500,
|
|
27
26
|
maxTotalSize: 65536,
|
|
28
27
|
maxColumns: 50,
|
|
29
28
|
maxTables: 200,
|
|
@@ -218,7 +217,6 @@ export function createSqliteTestConfig(overrides) {
|
|
|
218
217
|
},
|
|
219
218
|
defaults: {
|
|
220
219
|
maxRows: 100,
|
|
221
|
-
maxCellLength: 500,
|
|
222
220
|
maxTotalSize: 65536,
|
|
223
221
|
maxColumns: 50,
|
|
224
222
|
maxTables: 200,
|
|
@@ -401,7 +399,6 @@ export function createMySqlTestConfig(overrides) {
|
|
|
401
399
|
},
|
|
402
400
|
defaults: {
|
|
403
401
|
maxRows: 100,
|
|
404
|
-
maxCellLength: 500,
|
|
405
402
|
maxTotalSize: 65536,
|
|
406
403
|
maxColumns: 50,
|
|
407
404
|
maxTables: 200,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/__integration__/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7H,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAElD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAA2B;IAC1D,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,IAAI,GAAW;QACnB,SAAS,EAAE;YACT,MAAM,EAAE;gBACN,GAAG,EAAE,WAAW;gBAChB,QAAQ,EAAE,KAAK;aAChB;YACD,UAAU,EAAE;gBACV,GAAG,EAAE,WAAW;gBAChB,QAAQ,EAAE,IAAI;aACf;SACF;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,GAAG;YACZ,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/__integration__/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkC,MAAM,aAAa,CAAC;AAI1E;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAexD;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkC,MAAM,aAAa,CAAC;AAI1E;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAexD;AAmDD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAmBnC"}
|
package/dist/config/loader.js
CHANGED
|
@@ -20,7 +20,6 @@ export function expandEnvVariables(value) {
|
|
|
20
20
|
}
|
|
21
21
|
const DEFAULT_CONFIG = {
|
|
22
22
|
maxRows: 100,
|
|
23
|
-
maxCellLength: 500,
|
|
24
23
|
maxTotalSize: 65536, // 64KB
|
|
25
24
|
maxColumns: 50,
|
|
26
25
|
maxTables: 200,
|
|
@@ -80,6 +79,13 @@ export function loadConfig() {
|
|
|
80
79
|
if (Object.keys(databases).length === 0) {
|
|
81
80
|
throw new DbMcpError(ErrorCode.CONFIG_NOT_FOUND, 'No databases configured. Set DATALINK_{NAME}_URL environment variables.');
|
|
82
81
|
}
|
|
83
|
-
|
|
82
|
+
const maxTotalSize = parsePositiveInt(process.env['DATALINK_MAX_TOTAL_SIZE']);
|
|
83
|
+
return {
|
|
84
|
+
databases,
|
|
85
|
+
defaults: {
|
|
86
|
+
...DEFAULT_CONFIG,
|
|
87
|
+
...(maxTotalSize !== undefined && { maxTotalSize }),
|
|
88
|
+
},
|
|
89
|
+
};
|
|
84
90
|
}
|
|
85
91
|
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,4DAA4D;IAC5D,MAAM,OAAO,GAAG,+CAA+C,CAAC;IAEhE,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAe,EAAE,YAAqB,EAAE,EAAE;QAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,6DAA6D;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,cAAc,GAAmB;IACrC,OAAO,EAAE,GAAG;IACZ,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,OAAO,KAAK,EACV,MAAM,EAMP,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,OAAO,KAAK,EACV,MAAM,EAMP,MAAM,YAAY,CAAC;AA2BpB;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAiPnD;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7D"}
|
package/dist/server.js
CHANGED
|
@@ -12,7 +12,8 @@ import { explain, formatExplainResultAsMarkdown } from './tools/explain.js';
|
|
|
12
12
|
import { formatListDatabasesResultAsMarkdown, listDatabases } from './tools/list-databases.js';
|
|
13
13
|
import { formatListTablesResultAsMarkdown, listTables } from './tools/list-tables.js';
|
|
14
14
|
import { formatQueryResultAsMarkdown, query } from './tools/query.js';
|
|
15
|
-
import { DbMcpError } from './utils/errors.js';
|
|
15
|
+
import { DbMcpError, ErrorCode } from './utils/errors.js';
|
|
16
|
+
import { checkTotalSize } from './utils/truncate.js';
|
|
16
17
|
/**
|
|
17
18
|
* Server instructions for LLM agents.
|
|
18
19
|
* Provides workflow guidance for proper tool usage sequence.
|
|
@@ -192,71 +193,48 @@ export function createServer(config) {
|
|
|
192
193
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
193
194
|
const { name, arguments: args } = request.params;
|
|
194
195
|
try {
|
|
196
|
+
let text;
|
|
195
197
|
switch (name) {
|
|
196
198
|
case 'list_databases': {
|
|
197
199
|
const result = listDatabases(config);
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
};
|
|
200
|
+
text = formatListDatabasesResultAsMarkdown(result, config);
|
|
201
|
+
break;
|
|
201
202
|
}
|
|
202
203
|
case 'list_tables': {
|
|
203
204
|
const result = await listTables(args, config);
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
{
|
|
207
|
-
type: 'text',
|
|
208
|
-
text: formatListTablesResultAsMarkdown(result),
|
|
209
|
-
},
|
|
210
|
-
],
|
|
211
|
-
};
|
|
205
|
+
text = formatListTablesResultAsMarkdown(result);
|
|
206
|
+
break;
|
|
212
207
|
}
|
|
213
208
|
case 'describe_table': {
|
|
214
209
|
const result = await describeTable(args, config);
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
{
|
|
218
|
-
type: 'text',
|
|
219
|
-
text: formatTableDescriptionAsMarkdown(result),
|
|
220
|
-
},
|
|
221
|
-
],
|
|
222
|
-
};
|
|
210
|
+
text = formatTableDescriptionAsMarkdown(result);
|
|
211
|
+
break;
|
|
223
212
|
}
|
|
224
213
|
case 'query': {
|
|
225
214
|
const result = await query(args, config);
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
{
|
|
229
|
-
type: 'text',
|
|
230
|
-
text: formatQueryResultAsMarkdown(result),
|
|
231
|
-
},
|
|
232
|
-
],
|
|
233
|
-
};
|
|
215
|
+
text = formatQueryResultAsMarkdown(result);
|
|
216
|
+
break;
|
|
234
217
|
}
|
|
235
218
|
case 'execute': {
|
|
236
219
|
const result = await execute(args, config);
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
{
|
|
240
|
-
type: 'text',
|
|
241
|
-
text: formatExecuteResultAsMarkdown(result),
|
|
242
|
-
},
|
|
243
|
-
],
|
|
244
|
-
};
|
|
220
|
+
text = formatExecuteResultAsMarkdown(result);
|
|
221
|
+
break;
|
|
245
222
|
}
|
|
246
223
|
case 'explain': {
|
|
247
224
|
const result = await explain(args, config);
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
{
|
|
251
|
-
type: 'text',
|
|
252
|
-
text: formatExplainResultAsMarkdown(result),
|
|
253
|
-
},
|
|
254
|
-
],
|
|
255
|
-
};
|
|
225
|
+
text = formatExplainResultAsMarkdown(result);
|
|
226
|
+
break;
|
|
256
227
|
}
|
|
257
228
|
default:
|
|
258
229
|
throw new Error(`Unknown tool: ${name}`);
|
|
259
230
|
}
|
|
231
|
+
const sizeCheck = checkTotalSize(text, config.defaults.maxTotalSize);
|
|
232
|
+
if (sizeCheck.info.truncated) {
|
|
233
|
+
const actualKB = Math.ceil(Buffer.byteLength(text, 'utf8') / 1024);
|
|
234
|
+
const limitKB = Math.ceil(config.defaults.maxTotalSize / 1024);
|
|
235
|
+
throw new DbMcpError(ErrorCode.RESPONSE_TOO_LARGE, `Response too large (${actualKB} KB). Limit is ${limitKB} KB. Try selecting fewer columns, adding a WHERE clause, or using LIMIT/OFFSET.`);
|
|
236
|
+
}
|
|
237
|
+
return { content: [{ type: 'text', text }] };
|
|
260
238
|
}
|
|
261
239
|
catch (error) {
|
|
262
240
|
if (error instanceof DbMcpError) {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAWnG,OAAO,EAAE,aAAa,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,mCAAmC,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,EAAE,gCAAgC,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAWnG,OAAO,EAAE,aAAa,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,mCAAmC,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,EAAE,gCAAgC,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;GAGG;AACH,MAAM,mBAAmB,GAAG;;;;;;;;;;sFAU0D,CAAC;AAEvF;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;QACD,YAAY,EAAE,mBAAmB;KAClC,CACF,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EACT,oEAAoE;gBACtE,WAAW,EAAE;oBACX,IAAI,EAAE,QAAiB;oBACvB,UAAU,EAAE,EAAE;oBACd,QAAQ,EAAE,EAAE;iBACb;aACF;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EACT,8EAA8E;gBAChF,WAAW,EAAE;oBACX,IAAI,EAAE,QAAiB;oBACvB,UAAU,EAAE;wBACV,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wDAAwD;yBACtE;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,mFAAmF;yBACjG;qBACF;oBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB;aACF;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EACT,6HAA6H;gBAC/H,WAAW,EAAE;oBACX,IAAI,EAAE,QAAiB;oBACvB,UAAU,EAAE;wBACV,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wDAAwD;yBACtE;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,uCAAuC;yBACrD;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,8CAA8C;yBAC5D;qBACF;oBACD,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;iBAChC;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,WAAW,EACT,yEAAyE;gBAC3E,WAAW,EAAE;oBACX,IAAI,EAAE,QAAiB;oBACvB,UAAU,EAAE;wBACV,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wDAAwD;yBACtE;wBACD,GAAG,EAAE;4BACH,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,0EAA0E;gCAC1E,oEAAoE;yBACvE;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,OAAO;4BACb,WAAW,EACT,2DAA2D;gCAC3D,iDAAiD;yBACpD;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,SAAS;4BACf,WAAW,EACT,8DAA8D;gCAC9D,wCAAwC;4BAC1C,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,MAAM;yBAChB;qBACF;oBACD,QAAQ,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC;iBAC9B;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,WAAW,EACT,wEAAwE;gBAC1E,WAAW,EAAE;oBACX,IAAI,EAAE,QAAiB;oBACvB,UAAU,EAAE;wBACV,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wDAAwD;yBACtE;wBACD,GAAG,EAAE;4BACH,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,6EAA6E;gCAC7E,qDAAqD;yBACxD;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,OAAO;4BACb,WAAW,EACT,2DAA2D;gCAC3D,0CAA0C;yBAC7C;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,SAAS;4BACf,WAAW,EACT,8DAA8D;gCAC9D,wCAAwC;4BAC1C,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,MAAM;yBAChB;qBACF;oBACD,QAAQ,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC;iBAC9B;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,WAAW,EACT,iHAAiH;gBACnH,WAAW,EAAE;oBACX,IAAI,EAAE,QAAiB;oBACvB,UAAU,EAAE;wBACV,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wDAAwD;yBACtE;wBACD,GAAG,EAAE;4BACH,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,qDAAqD;yBACnE;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,SAAS;4BACf,WAAW,EACT,uFAAuF;gCACvF,oDAAoD;yBACvD;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,SAAS;4BACf,WAAW,EACT,8DAA8D;gCAC9D,wCAAwC;4BAC1C,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,MAAM;yBAChB;qBACF;oBACD,QAAQ,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC;iBAC9B;aACF;SACF;KACF,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,IAAI,CAAC;YACH,IAAI,IAAY,CAAC;YAEjB,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBACtB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;oBACrC,IAAI,GAAG,mCAAmC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAC3D,MAAM;gBACR,CAAC;gBACD,KAAK,aAAa,CAAC,CAAC,CAAC;oBACnB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAmC,EAAE,MAAM,CAAC,CAAC;oBAC7E,IAAI,GAAG,gCAAgC,CAAC,MAAM,CAAC,CAAC;oBAChD,MAAM;gBACR,CAAC;gBACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBACtB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAsC,EAAE,MAAM,CAAC,CAAC;oBACnF,IAAI,GAAG,gCAAgC,CAAC,MAAM,CAAC,CAAC;oBAChD,MAAM;gBACR,CAAC;gBACD,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAA8B,EAAE,MAAM,CAAC,CAAC;oBACnE,IAAI,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;oBAC3C,MAAM;gBACR,CAAC;gBACD,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAgC,EAAE,MAAM,CAAC,CAAC;oBACvE,IAAI,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;oBAC7C,MAAM;gBACR,CAAC;gBACD,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAgC,EAAE,MAAM,CAAC,CAAC;oBACvE,IAAI,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;oBAC7C,MAAM;gBACR,CAAC;gBACD;oBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACrE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;gBACnE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;gBAC/D,MAAM,IAAI,UAAU,CAClB,SAAS,CAAC,kBAAkB,EAC5B,uBAAuB,QAAQ,kBAAkB,OAAO,iFAAiF,CAC1I,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;gBAChC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC1E,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc;IAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQpE;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAqBvE;AAED;;;;;;;;;GASG;AACH,wBAAsB,KAAK,CACzB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQpE;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAqBvE;AAED;;;;;;;;;GASG;AACH,wBAAsB,KAAK,CACzB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAsDtB"}
|
package/dist/tools/query.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { createAdapter } from '../adapters/index.js';
|
|
5
5
|
import { formatAsMarkdownTable, formatValue } from '../utils/formatter.js';
|
|
6
6
|
import { calculateTimeout } from '../utils/timeout.js';
|
|
7
|
-
import {
|
|
7
|
+
import { truncateRows } from '../utils/truncate.js';
|
|
8
8
|
import { getValidatedDatabase, validateParamCount } from '../utils/validation.js';
|
|
9
9
|
/**
|
|
10
10
|
* Format QueryResult as Markdown table followed by metadata
|
|
@@ -46,8 +46,8 @@ export async function query(params, config) {
|
|
|
46
46
|
validateParamCount(params.sql, params.params ?? []);
|
|
47
47
|
const parsed = adapter.parseQuery(params.sql);
|
|
48
48
|
let sql = params.sql;
|
|
49
|
+
const maxRows = dbConfig?.maxRows ?? config.defaults.maxRows;
|
|
49
50
|
if (!parsed.hasLimit) {
|
|
50
|
-
const maxRows = dbConfig?.maxRows ?? config.defaults.maxRows;
|
|
51
51
|
sql = adapter.injectLimit(params.sql, maxRows);
|
|
52
52
|
}
|
|
53
53
|
sql = adapter.convertPlaceholders(sql);
|
|
@@ -57,31 +57,15 @@ export async function query(params, config) {
|
|
|
57
57
|
}, { timeout });
|
|
58
58
|
const columns = result.fields.map((field) => field.name);
|
|
59
59
|
const rawRows = result.rows;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
formattedRows = formattedRows.map((row) => row.map((cell) => {
|
|
63
|
-
const truncated = truncateCell(cell, config.defaults.maxCellLength);
|
|
64
|
-
if (truncated.truncated) {
|
|
65
|
-
anyCellTruncated = true;
|
|
66
|
-
}
|
|
67
|
-
return truncated.value;
|
|
68
|
-
}));
|
|
69
|
-
const { rows: truncatedRows, info: rowTruncationInfo } = truncateRows(formattedRows, config.defaults.maxRows);
|
|
70
|
-
const truncated = rowTruncationInfo.truncated || anyCellTruncated;
|
|
71
|
-
let truncationReason;
|
|
72
|
-
if (rowTruncationInfo.truncated) {
|
|
73
|
-
truncationReason = rowTruncationInfo.truncationReason;
|
|
74
|
-
}
|
|
75
|
-
else if (anyCellTruncated) {
|
|
76
|
-
truncationReason = 'maxCellLength';
|
|
77
|
-
}
|
|
60
|
+
const formattedRows = rawRows.map((row) => row.map((cell) => formatValue(cell)));
|
|
61
|
+
const { rows: truncatedRows, info: rowTruncationInfo } = truncateRows(formattedRows, maxRows);
|
|
78
62
|
const executionTime = Date.now() - startTime;
|
|
79
63
|
return {
|
|
80
64
|
columns,
|
|
81
65
|
rows: truncatedRows,
|
|
82
66
|
rowCount: truncatedRows.length,
|
|
83
|
-
truncated,
|
|
84
|
-
truncationReason,
|
|
67
|
+
truncated: rowTruncationInfo.truncated,
|
|
68
|
+
truncationReason: rowTruncationInfo.truncationReason,
|
|
85
69
|
totalAvailable: rowTruncationInfo.totalAvailable,
|
|
86
70
|
returned: rowTruncationInfo.returned,
|
|
87
71
|
hint: rowTruncationInfo.hint,
|
package/dist/tools/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/errors.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare const ErrorCode: {
|
|
|
11
11
|
readonly CONFIG_NOT_FOUND: "CONFIG_NOT_FOUND";
|
|
12
12
|
readonly CONFIG_INVALID: "CONFIG_INVALID";
|
|
13
13
|
readonly READONLY_VIOLATION: "READONLY_VIOLATION";
|
|
14
|
+
readonly RESPONSE_TOO_LARGE: "RESPONSE_TOO_LARGE";
|
|
14
15
|
};
|
|
15
16
|
export type ErrorCodeType = typeof ErrorCode[keyof typeof ErrorCode];
|
|
16
17
|
export declare class DbMcpError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;CAoBZ,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAErE,qBAAa,UAAW,SAAQ,KAAK;IACnC,SAAgB,IAAI,EAAE,aAAa,CAAC;IACpC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEtC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAYnF,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQlC"}
|
package/dist/utils/errors.js
CHANGED
package/dist/utils/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,wBAAwB;IACxB,WAAW,EAAE,aAAa;IAC1B,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAE9B,kBAAkB;IAClB,iBAAiB,EAAE,mBAAmB;IACtC,aAAa,EAAE,eAAe;IAC9B,kBAAkB,EAAE,oBAAoB;IAExC,uBAAuB;IACvB,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAEhC,gBAAgB;IAChB,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAIX,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnB,IAAI,CAAgB;IACpB,OAAO,CAA2B;IAElD,YAAY,IAAmB,EAAE,OAAe,EAAE,OAAiC;QACjF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,oCAAoC;QACpC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,wBAAwB;IACxB,WAAW,EAAE,aAAa;IAC1B,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAE9B,kBAAkB;IAClB,iBAAiB,EAAE,mBAAmB;IACtC,aAAa,EAAE,eAAe;IAC9B,kBAAkB,EAAE,oBAAoB;IAExC,uBAAuB;IACvB,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAEhC,gBAAgB;IAChB,kBAAkB,EAAE,oBAAoB;IAExC,kBAAkB;IAClB,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAIX,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnB,IAAI,CAAgB;IACpB,OAAO,CAA2B;IAElD,YAAY,IAAmB,EAAE,OAAe,EAAE,OAAiC;QACjF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,oCAAoC;QACpC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF"}
|
package/dist/utils/truncate.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export interface TruncationInfo {
|
|
5
5
|
truncated: boolean;
|
|
6
|
-
truncationReason?: 'maxRows' | '
|
|
6
|
+
truncationReason?: 'maxRows' | 'maxTotalSize' | 'maxColumns';
|
|
7
7
|
totalAvailable?: number;
|
|
8
8
|
returned?: number;
|
|
9
9
|
hint?: string;
|
|
@@ -12,11 +12,6 @@ export declare function truncateRows(rows: unknown[][], maxRows: number, totalAv
|
|
|
12
12
|
rows: unknown[][];
|
|
13
13
|
info: TruncationInfo;
|
|
14
14
|
};
|
|
15
|
-
export declare function truncateCell(value: unknown, maxLength: number): {
|
|
16
|
-
value: string;
|
|
17
|
-
truncated: boolean;
|
|
18
|
-
originalLength?: number;
|
|
19
|
-
};
|
|
20
15
|
export declare function truncateColumns(columns: string[], maxColumns: number): {
|
|
21
16
|
columns: string[];
|
|
22
17
|
truncated: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncate.d.ts","sourceRoot":"","sources":["../../src/utils/truncate.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"truncate.d.ts","sourceRoot":"","sources":["../../src/utils/truncate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,EAAE,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,GACtB;IAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAoB7C;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,MAAM,GACjB;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAY3C;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAmCxC"}
|
package/dist/utils/truncate.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Truncation utilities for limiting MCP response sizes
|
|
3
3
|
*/
|
|
4
|
-
import { safeJsonStringify } from './formatter.js';
|
|
5
4
|
export function truncateRows(rows, maxRows, totalAvailable) {
|
|
6
5
|
const available = totalAvailable ?? rows.length;
|
|
7
6
|
if (rows.length <= maxRows) {
|
|
@@ -21,50 +20,6 @@ export function truncateRows(rows, maxRows, totalAvailable) {
|
|
|
21
20
|
},
|
|
22
21
|
};
|
|
23
22
|
}
|
|
24
|
-
export function truncateCell(value, maxLength) {
|
|
25
|
-
// Convert value to string
|
|
26
|
-
let stringValue;
|
|
27
|
-
if (value === null || value === undefined) {
|
|
28
|
-
stringValue = 'NULL';
|
|
29
|
-
}
|
|
30
|
-
else if (typeof value === 'string') {
|
|
31
|
-
stringValue = value;
|
|
32
|
-
}
|
|
33
|
-
else if (typeof value === 'number' || typeof value === 'boolean') {
|
|
34
|
-
stringValue = String(value);
|
|
35
|
-
}
|
|
36
|
-
else if (value instanceof Date) {
|
|
37
|
-
stringValue = value.toISOString();
|
|
38
|
-
}
|
|
39
|
-
else if (typeof value === 'object') {
|
|
40
|
-
stringValue = safeJsonStringify(value);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
stringValue = String(value);
|
|
44
|
-
}
|
|
45
|
-
if (stringValue.length <= maxLength) {
|
|
46
|
-
return {
|
|
47
|
-
value: stringValue,
|
|
48
|
-
truncated: false,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
// Account for ellipsis length (3 chars) when truncating
|
|
52
|
-
const ellipsis = '...';
|
|
53
|
-
// Edge case: if maxLength is too small for ellipsis, just truncate without it
|
|
54
|
-
if (maxLength < ellipsis.length) {
|
|
55
|
-
return {
|
|
56
|
-
value: stringValue.slice(0, maxLength),
|
|
57
|
-
truncated: true,
|
|
58
|
-
originalLength: stringValue.length,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
const truncateAt = maxLength - ellipsis.length;
|
|
62
|
-
return {
|
|
63
|
-
value: stringValue.slice(0, truncateAt) + ellipsis,
|
|
64
|
-
truncated: true,
|
|
65
|
-
originalLength: stringValue.length,
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
23
|
export function truncateColumns(columns, maxColumns) {
|
|
69
24
|
if (columns.length <= maxColumns) {
|
|
70
25
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../src/utils/truncate.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../src/utils/truncate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,UAAU,YAAY,CAC1B,IAAiB,EACjB,OAAe,EACf,cAAuB;IAEvB,MAAM,SAAS,GAAG,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC;IAEhD,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;QAC5B,IAAI,EAAE;YACJ,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,SAAS;YAC3B,cAAc,EAAE,SAAS;YACzB,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,8CAA8C;SACrD;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAiB,EACjB,UAAkB;IAElB,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;QACjC,OAAO;YACL,OAAO;YACP,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;QACrC,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,OAAe;IAEf,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEnD,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;IAC9C,CAAC;IAED,uCAAuC;IACvC,yDAAyD;IACzD,iDAAiD;IACjD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IAEvB,OAAO,GAAG,GAAG,IAAI,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEpD,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;YAC1B,GAAG,GAAG,GAAG,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEzC,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE;YACJ,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,cAAc;YAChC,IAAI,EAAE,8CAA8C;SACrD;KACF,CAAC;AACJ,CAAC"}
|