db-mcp 4.0.0 → 5.0.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 +30 -25
- package/dist/.tsbuildinfo +1 -1
- package/dist/adapters/database-adapter.d.ts +9 -0
- package/dist/adapters/database-adapter.d.ts.map +1 -1
- package/dist/adapters/sqlite/query-executor.d.ts.map +1 -1
- package/dist/adapters/sqlite/read-write-lock.d.ts +49 -0
- package/dist/adapters/sqlite/read-write-lock.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/admin.d.ts +5 -5
- package/dist/adapters/sqlite/schemas/admin.d.ts.map +1 -1
- package/dist/adapters/sqlite/schemas/core.d.ts +94 -0
- package/dist/adapters/sqlite/schemas/core.d.ts.map +1 -1
- package/dist/adapters/sqlite/schemas/introspection.d.ts +8 -7
- package/dist/adapters/sqlite/schemas/introspection.d.ts.map +1 -1
- package/dist/adapters/sqlite/schemas/migration.d.ts +2 -2
- package/dist/adapters/sqlite/schemas/migration.d.ts.map +1 -1
- package/dist/adapters/sqlite/sqlite-adapter.d.ts +6 -0
- package/dist/adapters/sqlite/sqlite-adapter.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/admin/backup/create.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/admin/backup/dump.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/admin/backup/restore.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/admin/pragma.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/admin/verify.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/codemode.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/core/convenience.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/core/index.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/core/queries.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/core/versioning.d.ts +19 -0
- package/dist/adapters/sqlite/tools/core/versioning.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/graph/tools.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/json-operations/crud.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/migration/helpers.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/vector/metadata.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/vector/search.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/vector/storage.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/virtual/vtable/analyze-csv.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/virtual/vtable/csv.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/virtual/vtable/info.d.ts.map +1 -1
- package/dist/adapters/sqlite/types.d.ts +1 -1
- package/dist/adapters/sqlite/types.d.ts.map +1 -1
- package/dist/adapters/sqlite-native/index.d.ts +1 -1
- package/dist/adapters/sqlite-native/index.d.ts.map +1 -1
- package/dist/adapters/sqlite-native/tools/window/helpers.d.ts +52 -0
- package/dist/adapters/sqlite-native/tools/window/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/window/index.d.ts +7 -0
- package/dist/adapters/sqlite-native/tools/window/index.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/window/lag-lead.d.ts +7 -0
- package/dist/adapters/sqlite-native/tools/window/lag-lead.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/window/moving-average.d.ts +7 -0
- package/dist/adapters/sqlite-native/tools/window/moving-average.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/window/ntile.d.ts +7 -0
- package/dist/adapters/sqlite-native/tools/window/ntile.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/window/rank.d.ts +7 -0
- package/dist/adapters/sqlite-native/tools/window/rank.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/window/row-number.d.ts +7 -0
- package/dist/adapters/sqlite-native/tools/window/row-number.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/window/running-total.d.ts +7 -0
- package/dist/adapters/sqlite-native/tools/window/running-total.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/window/schemas.d.ts +159 -0
- package/dist/adapters/sqlite-native/tools/window/schemas.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/transaction-methods.d.ts.map +1 -1
- package/dist/audit/logger.d.ts.map +1 -1
- package/dist/auth/authorization-server-discovery.d.ts.map +1 -1
- package/dist/auth/scopes/mapping.d.ts.map +1 -1
- package/dist/auth/token-validator.d.ts.map +1 -1
- package/dist/{chunk-EQF3WZHX.js → chunk-27C5EE6U.js} +15 -2
- package/dist/{chunk-R5M4WKDM.js → chunk-2TYICG7B.js} +381 -185
- package/dist/{chunk-NIC5Z2CA.js → chunk-LLIAIJPO.js} +394 -381
- package/dist/{chunk-TGE7LFAR.js → chunk-UE7GVOBV.js} +1069 -355
- package/dist/{chunk-Y57WFKAP.js → chunk-XLIYO3YA.js} +178 -72
- package/dist/cli.js +18 -6
- package/dist/codemode/api-constants.d.ts.map +1 -1
- package/dist/codemode/api.d.ts.map +1 -1
- package/dist/codemode/sandbox-factory.d.ts.map +1 -1
- package/dist/codemode/sandbox.d.ts +0 -3
- package/dist/codemode/sandbox.d.ts.map +1 -1
- package/dist/codemode/security.d.ts.map +1 -1
- package/dist/codemode/types.d.ts +2 -0
- package/dist/codemode/types.d.ts.map +1 -1
- package/dist/constants/server-instructions.d.ts.map +1 -1
- package/dist/filtering/tool-constants.d.ts +5 -5
- package/dist/filtering/tool-constants.d.ts.map +1 -1
- package/dist/{http-2WGR3E5K.js → http-ZDMK46QU.js} +183 -32
- package/dist/index.js +4 -4
- package/dist/observability/system-db.d.ts.map +1 -1
- package/dist/server/mcp-server.d.ts.map +1 -1
- package/dist/server/registration/admin-tools.d.ts.map +1 -1
- package/dist/server/registration/audit-tools/backup.d.ts +8 -0
- package/dist/server/registration/audit-tools/backup.d.ts.map +1 -0
- package/dist/server/registration/audit-tools/helpers.d.ts +11 -0
- package/dist/server/registration/audit-tools/helpers.d.ts.map +1 -0
- package/dist/server/registration/audit-tools/index.d.ts +4 -0
- package/dist/server/registration/audit-tools/index.d.ts.map +1 -0
- package/dist/server/registration/audit-tools/resource.d.ts +8 -0
- package/dist/server/registration/audit-tools/resource.d.ts.map +1 -0
- package/dist/server/registration/audit-tools/search.d.ts +7 -0
- package/dist/server/registration/audit-tools/search.d.ts.map +1 -0
- package/dist/server/registration/index.d.ts +1 -1
- package/dist/server/registration/index.d.ts.map +1 -1
- package/dist/{sqlite-D4WCNPU4.js → sqlite-XWZPEZJO.js} +192 -19
- package/dist/{sqlite-native-DLVS2T52.js → sqlite-native-5GQ3WKCZ.js} +156 -117
- package/dist/transports/http/middleware.d.ts.map +1 -1
- package/dist/transports/http/oauth.d.ts.map +1 -1
- package/dist/transports/http/sessions/legacy-sse.d.ts.map +1 -1
- package/dist/transports/http/sessions/stateful.d.ts +5 -1
- package/dist/transports/http/sessions/stateful.d.ts.map +1 -1
- package/dist/transports/http/transport.d.ts +2 -0
- package/dist/transports/http/transport.d.ts.map +1 -1
- package/dist/transports/http/types.d.ts +9 -0
- package/dist/transports/http/types.d.ts.map +1 -1
- package/dist/types/auth.d.ts +4 -0
- package/dist/types/auth.d.ts.map +1 -1
- package/dist/types/server.d.ts +3 -0
- package/dist/types/server.d.ts.map +1 -1
- package/dist/utils/annotations.d.ts +8 -0
- package/dist/utils/annotations.d.ts.map +1 -1
- package/dist/utils/errors/categories.d.ts +16 -11
- package/dist/utils/errors/categories.d.ts.map +1 -1
- package/dist/utils/errors/classes.d.ts +37 -0
- package/dist/utils/errors/classes.d.ts.map +1 -1
- package/dist/utils/errors/format.d.ts +2 -2
- package/dist/utils/errors/format.d.ts.map +1 -1
- package/dist/utils/errors/index.d.ts +1 -1
- package/dist/utils/errors/index.d.ts.map +1 -1
- package/dist/utils/errors/suggestions.d.ts +1 -0
- package/dist/utils/errors/suggestions.d.ts.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/security-utils.d.ts +29 -0
- package/dist/utils/security-utils.d.ts.map +1 -0
- package/dist/utils/stream-utils.d.ts +14 -0
- package/dist/utils/stream-utils.d.ts.map +1 -0
- package/dist/utils/where-clause.d.ts +0 -13
- package/dist/utils/where-clause.d.ts.map +1 -1
- package/package.json +35 -38
- package/dist/adapters/sqlite-native/tools/window.d.ts +0 -7
- package/dist/adapters/sqlite-native/tools/window.d.ts.map +0 -1
- package/dist/server/registration/audit-tools.d.ts +0 -17
- package/dist/server/registration/audit-tools.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { RowRecordSchema, WhereConditionSchema,
|
|
2
|
-
import { DatabaseAdapter } from './chunk-
|
|
3
|
-
import { ErrorResponseFields, write, readOnly, sanitizeIdentifier, buildWhereClause,
|
|
4
|
-
import { logger, formatHandlerError, ValidationError, ConfigurationError, ERROR_CODES, ConnectionError, DbMcpError, ResourceNotFoundError, ExtensionNotAvailableError } from './chunk-
|
|
1
|
+
import { RowRecordSchema, WhereConditionSchema, autoEnableWal, detectAndSetJsonbSupport, SchemaManager, applyCommonPragmas, isDDL, getResourceDefinitions, getPromptDefinitions, resolveAliases, normalizeSqliteParams, translateSqliteError, getCoreTools, getJsonOperationTools, getJsonHelperTools, getTextTools, getStatsTools, getVirtualTools, getVectorTools, getGeoTools, getAdminTools, getIntrospectionTools, getMigrationTools, getCodeModeTools, validateTableExists, sanitizeFtsQuery, FtsHeadlineSchema } from './chunk-UE7GVOBV.js';
|
|
2
|
+
import { DatabaseAdapter } from './chunk-27C5EE6U.js';
|
|
3
|
+
import { ErrorResponseFields, write, readOnly, VERSION, sanitizeIdentifier, buildWhereClause, admin, validateIdentifier, writeFs, getToolGroupIcon, idempotent } from './chunk-2TYICG7B.js';
|
|
4
|
+
import { logger, formatHandlerError, ValidationError, ConfigurationError, ERROR_CODES, ConnectionError, DbMcpError, ErrorCategory, ResourceNotFoundError, ExtensionNotAvailableError } from './chunk-XLIYO3YA.js';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
import { createRequire } from 'module';
|
|
7
7
|
import { fileURLToPath } from 'url';
|
|
@@ -452,6 +452,7 @@ function createFtsHeadlineTool(adapter) {
|
|
|
452
452
|
}
|
|
453
453
|
const queryEscaped = sanitizedQuery.replace(/'/g, "''");
|
|
454
454
|
let columnIndex = 0;
|
|
455
|
+
let snippetColumnIndex = -1;
|
|
455
456
|
if (input.column) {
|
|
456
457
|
const colResult = await adapter.executeReadQuery(
|
|
457
458
|
`PRAGMA table_info("${input.table}")`,
|
|
@@ -463,12 +464,13 @@ function createFtsHeadlineTool(adapter) {
|
|
|
463
464
|
);
|
|
464
465
|
if (found >= 0) {
|
|
465
466
|
columnIndex = found;
|
|
467
|
+
snippetColumnIndex = found;
|
|
466
468
|
}
|
|
467
469
|
}
|
|
468
470
|
const startSel = input.startSel.replace(/'/g, "''");
|
|
469
471
|
const stopSel = input.stopSel.replace(/'/g, "''");
|
|
470
472
|
const highlightExpr = `highlight("${input.table}", ${String(columnIndex)}, '${startSel}', '${stopSel}')`;
|
|
471
|
-
const snippetExpr = `snippet("${input.table}", ${String(
|
|
473
|
+
const snippetExpr = `snippet("${input.table}", ${String(snippetColumnIndex)}, '${startSel}', '${stopSel}', '...', ${String(input.snippetWords)})`;
|
|
472
474
|
if (input.query === "*" || input.query.trim() === "") {
|
|
473
475
|
const sql2 = `SELECT *, NULL as headline, NULL as snippet, NULL as rank FROM "${input.table}" ORDER BY rowid LIMIT ${String(input.limit)}`;
|
|
474
476
|
const result2 = await adapter.executeReadQuery(sql2, queryParams);
|
|
@@ -656,14 +658,14 @@ var BeginTransactionSchema = z.object({
|
|
|
656
658
|
mode: z.enum(["deferred", "immediate", "exclusive"]).optional().default("deferred").describe(
|
|
657
659
|
"Transaction mode: deferred waits for first write, immediate acquires lock immediately, exclusive blocks all access"
|
|
658
660
|
)
|
|
659
|
-
});
|
|
661
|
+
}).strict();
|
|
660
662
|
var SavepointSchema = z.object({
|
|
661
663
|
name: z.string().describe("Savepoint name")
|
|
662
|
-
});
|
|
664
|
+
}).strict();
|
|
663
665
|
var ExecuteInTransactionSchema = z.object({
|
|
664
666
|
statements: z.array(z.string()).describe("Array of SQL statements to execute in order"),
|
|
665
667
|
rollbackOnError: z.boolean().optional().default(true).describe("If true, rollback all changes when any statement fails")
|
|
666
|
-
});
|
|
668
|
+
}).strict();
|
|
667
669
|
function getTransactionTools(adapter) {
|
|
668
670
|
return [
|
|
669
671
|
createBeginTransactionTool(adapter),
|
|
@@ -706,7 +708,7 @@ function createTransactionStatusTool(adapter) {
|
|
|
706
708
|
name: "sqlite_transaction_status",
|
|
707
709
|
description: "Check whether a transaction is currently active. Returns status and a boolean flag. Read-only \u2014 does not alter transaction state.",
|
|
708
710
|
group: "transactions",
|
|
709
|
-
inputSchema: z.object({}),
|
|
711
|
+
inputSchema: z.object({}).strict(),
|
|
710
712
|
outputSchema: TransactionStatusOutputSchema,
|
|
711
713
|
annotations: readOnly("Transaction Status"),
|
|
712
714
|
requiredScopes: ["read"],
|
|
@@ -731,7 +733,7 @@ function createCommitTransactionTool(adapter) {
|
|
|
731
733
|
name: "sqlite_transaction_commit",
|
|
732
734
|
description: "Commit the current transaction, making all changes permanent.",
|
|
733
735
|
group: "transactions",
|
|
734
|
-
inputSchema: z.object({}),
|
|
736
|
+
inputSchema: z.object({}).strict(),
|
|
735
737
|
outputSchema: TransactionCommitOutputSchema,
|
|
736
738
|
annotations: write("Commit Transaction"),
|
|
737
739
|
requiredScopes: ["write"],
|
|
@@ -754,7 +756,7 @@ function createRollbackTransactionTool(adapter) {
|
|
|
754
756
|
description: "Rollback the current transaction, discarding all changes.",
|
|
755
757
|
group: "transactions",
|
|
756
758
|
outputSchema: TransactionRollbackOutputSchema,
|
|
757
|
-
inputSchema: z.object({}),
|
|
759
|
+
inputSchema: z.object({}).strict(),
|
|
758
760
|
annotations: write("Rollback Transaction"),
|
|
759
761
|
requiredScopes: ["write"],
|
|
760
762
|
handler: (_params, _context) => {
|
|
@@ -952,6 +954,14 @@ function createExecuteInTransactionTool(adapter) {
|
|
|
952
954
|
if (transactionStarted) {
|
|
953
955
|
adapter.commitTransaction();
|
|
954
956
|
}
|
|
957
|
+
if (results.length > 50) {
|
|
958
|
+
const omitted = results.length - 50;
|
|
959
|
+
results.splice(50);
|
|
960
|
+
results.push({
|
|
961
|
+
statement: "TRUNCATED",
|
|
962
|
+
error: `Results array truncated. Omitted ${omitted} results to conserve payload size.`
|
|
963
|
+
});
|
|
964
|
+
}
|
|
955
965
|
return {
|
|
956
966
|
success,
|
|
957
967
|
error: success ? void 0 : "Transaction completed with errors",
|
|
@@ -982,17 +992,28 @@ function createExecuteInTransactionTool(adapter) {
|
|
|
982
992
|
} else if (!transactionStarted && !originallyInTransaction) {
|
|
983
993
|
rollbackMessage = `Transaction failed to start: ${message}`;
|
|
984
994
|
}
|
|
995
|
+
const totalExecuted = results.length;
|
|
996
|
+
if (results.length > 50) {
|
|
997
|
+
const omitted = results.length - 50;
|
|
998
|
+
results.splice(50);
|
|
999
|
+
results.push({
|
|
1000
|
+
statement: "TRUNCATED",
|
|
1001
|
+
error: `Results array truncated. Omitted ${omitted} results to conserve payload size.`
|
|
1002
|
+
});
|
|
1003
|
+
}
|
|
985
1004
|
return {
|
|
986
1005
|
...formatted,
|
|
987
1006
|
error: formatted.error ?? rollbackMessage,
|
|
988
1007
|
message: rollbackMessage,
|
|
989
|
-
statementsExecuted:
|
|
1008
|
+
statementsExecuted: totalExecuted,
|
|
990
1009
|
results
|
|
991
1010
|
};
|
|
992
1011
|
}
|
|
993
1012
|
}
|
|
994
1013
|
};
|
|
995
1014
|
}
|
|
1015
|
+
|
|
1016
|
+
// src/adapters/sqlite-native/tools/window/helpers.ts
|
|
996
1017
|
var coerceNumber = (val) => {
|
|
997
1018
|
if (typeof val === "string") {
|
|
998
1019
|
if (val.trim() === "") return void 0;
|
|
@@ -1003,93 +1024,6 @@ var coerceNumber = (val) => {
|
|
|
1003
1024
|
};
|
|
1004
1025
|
var coerceEnumValues2 = (allowed) => (val) => typeof val === "string" && allowed.includes(val) ? val : void 0;
|
|
1005
1026
|
var VALID_DIRECTIONS = ["lag", "lead"];
|
|
1006
|
-
var RowNumberSchema = z.object({
|
|
1007
|
-
table: z.string().describe("Table name"),
|
|
1008
|
-
orderBy: z.string().describe("Column(s) to order by"),
|
|
1009
|
-
partitionBy: z.string().optional().describe("Column(s) to partition by"),
|
|
1010
|
-
selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
|
|
1011
|
-
conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
|
|
1012
|
-
limit: z.preprocess(
|
|
1013
|
-
coerceNumber,
|
|
1014
|
-
z.number().optional().default(20).describe("Maximum rows to return")
|
|
1015
|
-
)
|
|
1016
|
-
});
|
|
1017
|
-
var RankSchema = z.object({
|
|
1018
|
-
table: z.string().describe("Table name"),
|
|
1019
|
-
orderBy: z.string().describe("Column(s) to order by (determines rank)"),
|
|
1020
|
-
partitionBy: z.string().optional().describe("Column(s) to partition by"),
|
|
1021
|
-
selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
|
|
1022
|
-
rankType: z.preprocess(
|
|
1023
|
-
coerceEnumValues2(["rank", "dense_rank", "percent_rank"]),
|
|
1024
|
-
z.enum(["rank", "dense_rank", "percent_rank"]).optional().default("rank").describe("Rank function type")
|
|
1025
|
-
),
|
|
1026
|
-
conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
|
|
1027
|
-
limit: z.preprocess(
|
|
1028
|
-
coerceNumber,
|
|
1029
|
-
z.number().optional().default(20).describe("Maximum rows to return")
|
|
1030
|
-
)
|
|
1031
|
-
});
|
|
1032
|
-
var LagLeadSchema = z.object({
|
|
1033
|
-
table: z.string().describe("Table name"),
|
|
1034
|
-
column: z.string().describe("Column to get lag/lead value from"),
|
|
1035
|
-
orderBy: z.string().describe("Column(s) to order by"),
|
|
1036
|
-
direction: z.string().describe("LAG (previous) or LEAD (next) row"),
|
|
1037
|
-
offset: z.preprocess(
|
|
1038
|
-
coerceNumber,
|
|
1039
|
-
z.number().optional().default(1).describe("Number of rows to look back/ahead")
|
|
1040
|
-
),
|
|
1041
|
-
defaultValue: z.string().optional().describe("Default value if no row exists"),
|
|
1042
|
-
partitionBy: z.string().optional().describe("Column(s) to partition by"),
|
|
1043
|
-
selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
|
|
1044
|
-
conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
|
|
1045
|
-
limit: z.preprocess(
|
|
1046
|
-
coerceNumber,
|
|
1047
|
-
z.number().optional().default(20).describe("Maximum rows to return")
|
|
1048
|
-
)
|
|
1049
|
-
});
|
|
1050
|
-
var RunningTotalSchema = z.object({
|
|
1051
|
-
table: z.string().describe("Table name"),
|
|
1052
|
-
column: z.string().describe("Column to sum"),
|
|
1053
|
-
orderBy: z.string().describe("Column(s) to order by"),
|
|
1054
|
-
partitionBy: z.string().optional().describe("Reset running total for each partition"),
|
|
1055
|
-
selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
|
|
1056
|
-
conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
|
|
1057
|
-
limit: z.preprocess(
|
|
1058
|
-
coerceNumber,
|
|
1059
|
-
z.number().optional().default(20).describe("Maximum rows to return")
|
|
1060
|
-
)
|
|
1061
|
-
});
|
|
1062
|
-
var MovingAverageSchema = z.object({
|
|
1063
|
-
table: z.string().describe("Table name"),
|
|
1064
|
-
column: z.string().describe("Column to average"),
|
|
1065
|
-
orderBy: z.string().describe("Column(s) to order by"),
|
|
1066
|
-
windowSize: z.preprocess(
|
|
1067
|
-
coerceNumber,
|
|
1068
|
-
z.number().describe("Number of rows in the moving window")
|
|
1069
|
-
),
|
|
1070
|
-
partitionBy: z.string().optional().describe("Column(s) to partition by"),
|
|
1071
|
-
selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
|
|
1072
|
-
conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
|
|
1073
|
-
limit: z.preprocess(
|
|
1074
|
-
coerceNumber,
|
|
1075
|
-
z.number().optional().default(20).describe("Maximum rows to return")
|
|
1076
|
-
)
|
|
1077
|
-
});
|
|
1078
|
-
var NtileSchema = z.object({
|
|
1079
|
-
table: z.string().describe("Table name"),
|
|
1080
|
-
orderBy: z.string().describe("Column(s) to order by"),
|
|
1081
|
-
buckets: z.preprocess(
|
|
1082
|
-
coerceNumber,
|
|
1083
|
-
z.number().describe("Number of buckets (e.g., 4 for quartiles)")
|
|
1084
|
-
),
|
|
1085
|
-
partitionBy: z.string().optional().describe("Column(s) to partition by"),
|
|
1086
|
-
selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
|
|
1087
|
-
conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
|
|
1088
|
-
limit: z.preprocess(
|
|
1089
|
-
coerceNumber,
|
|
1090
|
-
z.number().optional().default(20).describe("Maximum rows to return")
|
|
1091
|
-
)
|
|
1092
|
-
});
|
|
1093
1027
|
async function validateTableExists2(adapter, table) {
|
|
1094
1028
|
validateIdentifier(table);
|
|
1095
1029
|
const result = await adapter.executeReadQuery(
|
|
@@ -1135,7 +1069,7 @@ async function validateOrderByColumns(adapter, table, orderBy) {
|
|
|
1135
1069
|
throw new DbMcpError(
|
|
1136
1070
|
`Invalid ORDER BY expression: '${colName}' contains disallowed characters. Only column names with optional ASC/DESC are permitted.`,
|
|
1137
1071
|
"NATIVE_WINDOW_INVALID_ORDERBY",
|
|
1138
|
-
|
|
1072
|
+
ErrorCategory.VALIDATION
|
|
1139
1073
|
);
|
|
1140
1074
|
}
|
|
1141
1075
|
if (/^(ASC|DESC)$/i.test(colName)) continue;
|
|
@@ -1251,19 +1185,100 @@ function validateDefaultValue(value) {
|
|
|
1251
1185
|
throw new DbMcpError(
|
|
1252
1186
|
`Invalid default value: '${value}'. Only numeric literals, single-quoted strings, or NULL are permitted.`,
|
|
1253
1187
|
"NATIVE_WINDOW_INVALID_DEFAULT",
|
|
1254
|
-
|
|
1188
|
+
ErrorCategory.VALIDATION
|
|
1255
1189
|
);
|
|
1256
1190
|
}
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1191
|
+
|
|
1192
|
+
// src/adapters/sqlite-native/tools/window/schemas.ts
|
|
1193
|
+
var RowNumberSchema = z.object({
|
|
1194
|
+
table: z.string().describe("Table name"),
|
|
1195
|
+
orderBy: z.string().describe("Column(s) to order by"),
|
|
1196
|
+
partitionBy: z.string().optional().describe("Column(s) to partition by"),
|
|
1197
|
+
selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
|
|
1198
|
+
conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
|
|
1199
|
+
limit: z.preprocess(
|
|
1200
|
+
coerceNumber,
|
|
1201
|
+
z.number().optional().default(20).describe("Maximum rows to return")
|
|
1202
|
+
)
|
|
1203
|
+
});
|
|
1204
|
+
var RankSchema = z.object({
|
|
1205
|
+
table: z.string().describe("Table name"),
|
|
1206
|
+
orderBy: z.string().describe("Column(s) to order by (determines rank)"),
|
|
1207
|
+
partitionBy: z.string().optional().describe("Column(s) to partition by"),
|
|
1208
|
+
selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
|
|
1209
|
+
rankType: z.preprocess(
|
|
1210
|
+
coerceEnumValues2(["rank", "dense_rank", "percent_rank"]),
|
|
1211
|
+
z.enum(["rank", "dense_rank", "percent_rank"]).optional().default("rank").describe("Rank function type")
|
|
1212
|
+
),
|
|
1213
|
+
conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
|
|
1214
|
+
limit: z.preprocess(
|
|
1215
|
+
coerceNumber,
|
|
1216
|
+
z.number().optional().default(20).describe("Maximum rows to return")
|
|
1217
|
+
)
|
|
1218
|
+
});
|
|
1219
|
+
var LagLeadSchema = z.object({
|
|
1220
|
+
table: z.string().describe("Table name"),
|
|
1221
|
+
column: z.string().describe("Column to get lag/lead value from"),
|
|
1222
|
+
orderBy: z.string().describe("Column(s) to order by"),
|
|
1223
|
+
direction: z.string().describe("LAG (previous) or LEAD (next) row"),
|
|
1224
|
+
offset: z.preprocess(
|
|
1225
|
+
coerceNumber,
|
|
1226
|
+
z.number().optional().default(1).describe("Number of rows to look back/ahead")
|
|
1227
|
+
),
|
|
1228
|
+
defaultValue: z.string().optional().describe("Default value if no row exists"),
|
|
1229
|
+
partitionBy: z.string().optional().describe("Column(s) to partition by"),
|
|
1230
|
+
selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
|
|
1231
|
+
conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
|
|
1232
|
+
limit: z.preprocess(
|
|
1233
|
+
coerceNumber,
|
|
1234
|
+
z.number().optional().default(20).describe("Maximum rows to return")
|
|
1235
|
+
)
|
|
1236
|
+
});
|
|
1237
|
+
var RunningTotalSchema = z.object({
|
|
1238
|
+
table: z.string().describe("Table name"),
|
|
1239
|
+
column: z.string().describe("Column to sum"),
|
|
1240
|
+
orderBy: z.string().describe("Column(s) to order by"),
|
|
1241
|
+
partitionBy: z.string().optional().describe("Reset running total for each partition"),
|
|
1242
|
+
selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
|
|
1243
|
+
conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
|
|
1244
|
+
limit: z.preprocess(
|
|
1245
|
+
coerceNumber,
|
|
1246
|
+
z.number().optional().default(20).describe("Maximum rows to return")
|
|
1247
|
+
)
|
|
1248
|
+
});
|
|
1249
|
+
var MovingAverageSchema = z.object({
|
|
1250
|
+
table: z.string().describe("Table name"),
|
|
1251
|
+
column: z.string().describe("Column to average"),
|
|
1252
|
+
orderBy: z.string().describe("Column(s) to order by"),
|
|
1253
|
+
windowSize: z.preprocess(
|
|
1254
|
+
coerceNumber,
|
|
1255
|
+
z.number().describe("Number of rows in the moving window")
|
|
1256
|
+
),
|
|
1257
|
+
partitionBy: z.string().optional().describe("Column(s) to partition by"),
|
|
1258
|
+
selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
|
|
1259
|
+
conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
|
|
1260
|
+
limit: z.preprocess(
|
|
1261
|
+
coerceNumber,
|
|
1262
|
+
z.number().optional().default(20).describe("Maximum rows to return")
|
|
1263
|
+
)
|
|
1264
|
+
});
|
|
1265
|
+
var NtileSchema = z.object({
|
|
1266
|
+
table: z.string().describe("Table name"),
|
|
1267
|
+
orderBy: z.string().describe("Column(s) to order by"),
|
|
1268
|
+
buckets: z.preprocess(
|
|
1269
|
+
coerceNumber,
|
|
1270
|
+
z.number().describe("Number of buckets (e.g., 4 for quartiles)")
|
|
1271
|
+
),
|
|
1272
|
+
partitionBy: z.string().optional().describe("Column(s) to partition by"),
|
|
1273
|
+
selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
|
|
1274
|
+
conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
|
|
1275
|
+
limit: z.preprocess(
|
|
1276
|
+
coerceNumber,
|
|
1277
|
+
z.number().optional().default(20).describe("Maximum rows to return")
|
|
1278
|
+
)
|
|
1279
|
+
});
|
|
1280
|
+
|
|
1281
|
+
// src/adapters/sqlite-native/tools/window/row-number.ts
|
|
1267
1282
|
function createRowNumberTool(adapter) {
|
|
1268
1283
|
return {
|
|
1269
1284
|
name: "sqlite_window_row_number",
|
|
@@ -1315,6 +1330,8 @@ function createRowNumberTool(adapter) {
|
|
|
1315
1330
|
}
|
|
1316
1331
|
};
|
|
1317
1332
|
}
|
|
1333
|
+
|
|
1334
|
+
// src/adapters/sqlite-native/tools/window/rank.ts
|
|
1318
1335
|
function createRankTool(adapter) {
|
|
1319
1336
|
return {
|
|
1320
1337
|
name: "sqlite_window_rank",
|
|
@@ -1368,6 +1385,8 @@ function createRankTool(adapter) {
|
|
|
1368
1385
|
}
|
|
1369
1386
|
};
|
|
1370
1387
|
}
|
|
1388
|
+
|
|
1389
|
+
// src/adapters/sqlite-native/tools/window/lag-lead.ts
|
|
1371
1390
|
function createLagLeadTool(adapter) {
|
|
1372
1391
|
return {
|
|
1373
1392
|
name: "sqlite_window_lag_lead",
|
|
@@ -1443,6 +1462,8 @@ function createLagLeadTool(adapter) {
|
|
|
1443
1462
|
}
|
|
1444
1463
|
};
|
|
1445
1464
|
}
|
|
1465
|
+
|
|
1466
|
+
// src/adapters/sqlite-native/tools/window/running-total.ts
|
|
1446
1467
|
function createRunningTotalTool(adapter) {
|
|
1447
1468
|
return {
|
|
1448
1469
|
name: "sqlite_window_running_total",
|
|
@@ -1499,6 +1520,8 @@ function createRunningTotalTool(adapter) {
|
|
|
1499
1520
|
}
|
|
1500
1521
|
};
|
|
1501
1522
|
}
|
|
1523
|
+
|
|
1524
|
+
// src/adapters/sqlite-native/tools/window/moving-average.ts
|
|
1502
1525
|
function createMovingAverageTool(adapter) {
|
|
1503
1526
|
return {
|
|
1504
1527
|
name: "sqlite_window_moving_avg",
|
|
@@ -1557,6 +1580,8 @@ function createMovingAverageTool(adapter) {
|
|
|
1557
1580
|
}
|
|
1558
1581
|
};
|
|
1559
1582
|
}
|
|
1583
|
+
|
|
1584
|
+
// src/adapters/sqlite-native/tools/window/ntile.ts
|
|
1560
1585
|
function createNtileTool(adapter) {
|
|
1561
1586
|
return {
|
|
1562
1587
|
name: "sqlite_window_ntile",
|
|
@@ -1609,6 +1634,18 @@ function createNtileTool(adapter) {
|
|
|
1609
1634
|
}
|
|
1610
1635
|
};
|
|
1611
1636
|
}
|
|
1637
|
+
|
|
1638
|
+
// src/adapters/sqlite-native/tools/window/index.ts
|
|
1639
|
+
function getWindowTools(adapter) {
|
|
1640
|
+
return [
|
|
1641
|
+
createRowNumberTool(adapter),
|
|
1642
|
+
createRankTool(adapter),
|
|
1643
|
+
createLagLeadTool(adapter),
|
|
1644
|
+
createRunningTotalTool(adapter),
|
|
1645
|
+
createMovingAverageTool(adapter),
|
|
1646
|
+
createNtileTool(adapter)
|
|
1647
|
+
];
|
|
1648
|
+
}
|
|
1612
1649
|
var coerceNumber2 = (val) => {
|
|
1613
1650
|
if (typeof val === "string") {
|
|
1614
1651
|
if (val.trim() === "") return void 0;
|
|
@@ -2740,16 +2777,18 @@ function savepoint(db, name) {
|
|
|
2740
2777
|
}
|
|
2741
2778
|
function releaseSavepoint(db, name) {
|
|
2742
2779
|
if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name)) {
|
|
2743
|
-
throw new
|
|
2744
|
-
"Invalid savepoint name. Must start with a letter/underscore and contain only alphanumeric chars."
|
|
2780
|
+
throw new ValidationError(
|
|
2781
|
+
"Invalid savepoint name. Must start with a letter/underscore and contain only alphanumeric chars.",
|
|
2782
|
+
"INVALID_SAVEPOINT_NAME"
|
|
2745
2783
|
);
|
|
2746
2784
|
}
|
|
2747
2785
|
db.exec(`RELEASE SAVEPOINT "${name}"`);
|
|
2748
2786
|
}
|
|
2749
2787
|
function rollbackToSavepoint(db, name) {
|
|
2750
2788
|
if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name)) {
|
|
2751
|
-
throw new
|
|
2752
|
-
"Invalid savepoint name. Must start with a letter/underscore and contain only alphanumeric chars."
|
|
2789
|
+
throw new ValidationError(
|
|
2790
|
+
"Invalid savepoint name. Must start with a letter/underscore and contain only alphanumeric chars.",
|
|
2791
|
+
"INVALID_SAVEPOINT_NAME"
|
|
2753
2792
|
);
|
|
2754
2793
|
}
|
|
2755
2794
|
db.exec(`ROLLBACK TO SAVEPOINT "${name}"`);
|
|
@@ -3068,7 +3107,7 @@ var NativeSqliteAdapter = class extends DatabaseAdapter {
|
|
|
3068
3107
|
throw new DbMcpError(
|
|
3069
3108
|
"Invalid table name",
|
|
3070
3109
|
"SQLITE_INVALID_TABLE",
|
|
3071
|
-
|
|
3110
|
+
ErrorCategory.VALIDATION
|
|
3072
3111
|
);
|
|
3073
3112
|
}
|
|
3074
3113
|
const result = await this.executeReadQuery(
|
|
@@ -3078,7 +3117,7 @@ var NativeSqliteAdapter = class extends DatabaseAdapter {
|
|
|
3078
3117
|
throw new DbMcpError(
|
|
3079
3118
|
`Table '${tableName}' does not exist`,
|
|
3080
3119
|
"SQLITE_TABLE_NOT_FOUND",
|
|
3081
|
-
|
|
3120
|
+
ErrorCategory.RESOURCE
|
|
3082
3121
|
);
|
|
3083
3122
|
}
|
|
3084
3123
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/transports/http/middleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAkCpE;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkB1E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CA6CzD;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/transports/http/middleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAkCpE;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkB1E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CA6CzD;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAqDjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../src/transports/http/oauth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../src/transports/http/oauth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AASrD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAiCnE;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,kBAAkB,GACxB,IAAI,CA0KN;AAMD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAiEf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-sse.d.ts","sourceRoot":"","sources":["../../../../src/transports/http/sessions/legacy-sse.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAStD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"legacy-sse.d.ts","sourceRoot":"","sources":["../../../../src/transports/http/sessions/legacy-sse.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAStD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CA0LvE"}
|
|
@@ -5,8 +5,12 @@ import type { HttpTransportState } from "../types.js";
|
|
|
5
5
|
* Returns true if access is allowed, false if denied.
|
|
6
6
|
*/
|
|
7
7
|
export declare function verifySessionOwner(state: HttpTransportState, sessionId: string, reqAuthSub: string | undefined): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Helper to update session activity timestamp
|
|
10
|
+
*/
|
|
11
|
+
export declare function touchSession(state: HttpTransportState, sessionId: string): void;
|
|
8
12
|
/**
|
|
9
13
|
* Set up stateful mode endpoints with session management and SSE
|
|
10
14
|
*/
|
|
11
|
-
export declare function setupStatefulEndpoints(state: HttpTransportState):
|
|
15
|
+
export declare function setupStatefulEndpoints(state: HttpTransportState): ReturnType<typeof setInterval>;
|
|
12
16
|
//# sourceMappingURL=stateful.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stateful.d.ts","sourceRoot":"","sources":["../../../../src/transports/http/sessions/stateful.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"stateful.d.ts","sourceRoot":"","sources":["../../../../src/transports/http/sessions/stateful.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAgBtD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAOT;AAYD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,MAAM,GAChB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,kBAAkB,GACxB,UAAU,CAAC,OAAO,WAAW,CAAC,CAiahC"}
|
|
@@ -27,6 +27,8 @@ import type { OAuthResourceServer } from "../../auth/oauth-resource-server.js";
|
|
|
27
27
|
export declare class HttpTransport {
|
|
28
28
|
/** Internal state shared with session/middleware/oauth modules */
|
|
29
29
|
private readonly state;
|
|
30
|
+
/** Sweep timer for session timeout cleanup */
|
|
31
|
+
private sweepTimer;
|
|
30
32
|
constructor(config: HttpTransportConfig);
|
|
31
33
|
/**
|
|
32
34
|
* Initialize the transport with the MCP server.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/transports/http/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,OAAgC,MAAM,SAAS,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,EAKL,KAAK,mBAAmB,EAEzB,MAAM,YAAY,CAAC;AAgBpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAW/E;;;;;;;;;GASG;AACH,qBAAa,aAAa;IACxB,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/transports/http/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,OAAgC,MAAM,SAAS,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,EAKL,KAAK,mBAAmB,EAEzB,MAAM,YAAY,CAAC;AAgBpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAW/E;;;;;;;;;GASG;AACH,qBAAa,aAAa;IACxB,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAE3C,8CAA8C;IAC9C,OAAO,CAAC,UAAU,CAA+C;gBAErD,MAAM,EAAE,mBAAmB;IAyBvC;;;;;;;OAOG;IACG,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA2LlD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgD5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4E3B;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI;IAIhC;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACH,iBAAiB,IAAI,mBAAmB,GAAG,IAAI;CAGhD;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,mBAAmB,GAC1B,aAAa,CAEf"}
|
|
@@ -24,6 +24,12 @@ export declare const HTTP_REQUEST_TIMEOUT_MS = 120000;
|
|
|
24
24
|
export declare const HTTP_KEEP_ALIVE_TIMEOUT_MS = 65000;
|
|
25
25
|
/** Headers timeout (ms) — must be > keepAliveTimeout per Node.js docs */
|
|
26
26
|
export declare const HTTP_HEADERS_TIMEOUT_MS = 66000;
|
|
27
|
+
/** Session idle timeout for stateful HTTP mode (30 minutes) */
|
|
28
|
+
export declare const SESSION_TIMEOUT_MS: number;
|
|
29
|
+
/** Session timeout sweep interval (1 minute) */
|
|
30
|
+
export declare const SESSION_SWEEP_INTERVAL_MS: number;
|
|
31
|
+
/** Session absolute TTL (24 hours) — hard cap regardless of activity */
|
|
32
|
+
export declare const SESSION_ABSOLUTE_TTL_MS: number;
|
|
27
33
|
/**
|
|
28
34
|
* HTTP transport configuration
|
|
29
35
|
*/
|
|
@@ -114,6 +120,9 @@ export interface HttpTransportState {
|
|
|
114
120
|
sseTransports: Map<string, SSEServerTransport>;
|
|
115
121
|
statelessTransport: StreamableHTTPServerTransport | null;
|
|
116
122
|
sessionOwners: Map<string, string | undefined>;
|
|
123
|
+
sessionLastActivity: Map<string, number>;
|
|
124
|
+
sessionCreatedAt: Map<string, number>;
|
|
125
|
+
sessionLocks: Map<string, number>;
|
|
117
126
|
resourceServer: OAuthResourceServer | null;
|
|
118
127
|
authServerDiscovery: AuthorizationServerDiscovery | null;
|
|
119
128
|
tokenValidator: TokenValidator | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transports/http/types.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACxG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMvC,eAAO,MAAM,4BAA4B,QAAS,CAAC;AACnD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C,eAAO,MAAM,sBAAsB,UAAY,CAAC;AAChD,eAAO,MAAM,oBAAoB,WAAa,CAAC;AAE/C,oCAAoC;AACpC,eAAO,MAAM,oBAAoB,SAAS,CAAC;AAC3C,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAE7C,+DAA+D;AAC/D,eAAO,MAAM,uBAAuB,SAAU,CAAC;AAC/C,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,yEAAyE;AACzE,eAAO,MAAM,uBAAuB,QAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transports/http/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types/auth.d.ts
CHANGED
|
@@ -75,5 +75,9 @@ export interface RequestContext {
|
|
|
75
75
|
* Client IP address for rate limiting fallback
|
|
76
76
|
*/
|
|
77
77
|
clientIp?: string | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Whether the request is originating from Code Mode execution
|
|
80
|
+
*/
|
|
81
|
+
isCodeMode?: boolean;
|
|
78
82
|
}
|
|
79
83
|
//# sourceMappingURL=auth.d.ts.map
|
package/dist/types/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IAEjB,+BAA+B;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,MAAM,EAAE,GACd,SAAS,MAAM,IAAI,MAAM,EAAE,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IAEZ,qBAAqB;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IAEZ,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IAEZ,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzB,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IAEpC,wBAAwB;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAE/B,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAEhB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IAEjB,+BAA+B;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,MAAM,EAAE,GACd,SAAS,MAAM,IAAI,MAAM,EAAE,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IAEZ,qBAAqB;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IAEZ,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IAEZ,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzB,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IAEpC,wBAAwB;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAE/B,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAEhB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
|
package/dist/types/server.d.ts
CHANGED
|
@@ -46,5 +46,8 @@ export interface McpServerConfig {
|
|
|
46
46
|
noAuthEnforcement?: boolean;
|
|
47
47
|
/** Enable Prometheus metrics export at /metrics */
|
|
48
48
|
metricsExport?: "prometheus";
|
|
49
|
+
/** Allowlisted filesystem roots for IO operations (backup, dump, attach, CSV).
|
|
50
|
+
* Empty array = NO filesystem access. Undefined = legacy mode (same-dir validation). */
|
|
51
|
+
allowedIoRoots?: string[] | undefined;
|
|
49
52
|
}
|
|
50
53
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/types/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMrD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAEhB,8BAA8B;IAC9B,SAAS,EAAE,aAAa,CAAC;IAEzB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,8BAA8B;IAC9B,SAAS,EAAE,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,kCAAkC;IAClC,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,mDAAmD;IACnD,aAAa,CAAC,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/types/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMrD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAEhB,8BAA8B;IAC9B,SAAS,EAAE,aAAa,CAAC;IAEzB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,8BAA8B;IAC9B,SAAS,EAAE,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,kCAAkC;IAClC,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,mDAAmD;IACnD,aAAa,CAAC,EAAE,YAAY,CAAC;IAE7B;6FACyF;IACzF,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACvC"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* Follows MCP 2025-11-25 specification.
|
|
8
8
|
*/
|
|
9
9
|
import type { ToolAnnotations } from "../types/index.js";
|
|
10
|
+
import type { ToolAnnotations as SDKToolAnnotations } from "@modelcontextprotocol/sdk/types.js";
|
|
10
11
|
/** Read-only query tools (SELECT, schema retrieval, metadata) */
|
|
11
12
|
export declare const READ_ONLY: ToolAnnotations;
|
|
12
13
|
/** Standard write tools (INSERT, UPDATE, CREATE) */
|
|
@@ -59,4 +60,11 @@ export declare const CODEMODE: ToolAnnotations;
|
|
|
59
60
|
* Create codemode annotations with title
|
|
60
61
|
*/
|
|
61
62
|
export declare function codemode(title: string): ToolAnnotations;
|
|
63
|
+
/**
|
|
64
|
+
* Casts internal annotations to the SDK annotations type.
|
|
65
|
+
* This bypasses TypeScript excess property checks when registering tools directly
|
|
66
|
+
* via the SDK (which lacks our custom sensitiveHint annotation), while preserving
|
|
67
|
+
* the data at runtime for clients that do support it.
|
|
68
|
+
*/
|
|
69
|
+
export declare function toSDK(annotations: ToolAnnotations): SDKToolAnnotations;
|
|
62
70
|
//# sourceMappingURL=annotations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/utils/annotations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/utils/annotations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAMhG,iEAAiE;AACjE,eAAO,MAAM,SAAS,EAAE,eAKvB,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,KAAK,EAAE,eAKnB,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,WAAW,EAAE,eAKzB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,UAAU,EAAE,eAMxB,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,KAAK,EAAE,eAKnB,CAAC;AAMF;;GAEG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,eAA2B,GAChC,eAAe,CAEjB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEvD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAE1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEzD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEpD;AAED,gFAAgF;AAChF,eAAO,MAAM,QAAQ,EAAE,eAKtB,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,QAAQ,EAAE,eAKtB,CAAC;AAEF;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEtD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEtD;AAED,6DAA6D;AAC7D,eAAO,MAAM,QAAQ,EAAE,eAMtB,CAAC;AAEF;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB,CAEtE"}
|
|
@@ -6,26 +6,31 @@
|
|
|
6
6
|
/**
|
|
7
7
|
* Error categories for classification and handling
|
|
8
8
|
*/
|
|
9
|
-
export declare
|
|
9
|
+
export declare const ErrorCategory: {
|
|
10
10
|
/** Input validation failures (invalid names, paths, types) */
|
|
11
|
-
VALIDATION
|
|
11
|
+
readonly VALIDATION: "validation";
|
|
12
12
|
/** Database connection issues */
|
|
13
|
-
CONNECTION
|
|
13
|
+
readonly CONNECTION: "connection";
|
|
14
14
|
/** SQL execution errors */
|
|
15
|
-
QUERY
|
|
15
|
+
readonly QUERY: "query";
|
|
16
16
|
/** Authorization/permission failures */
|
|
17
|
-
PERMISSION
|
|
17
|
+
readonly PERMISSION: "permission";
|
|
18
18
|
/** Configuration/setup issues */
|
|
19
|
-
CONFIGURATION
|
|
19
|
+
readonly CONFIGURATION: "config";
|
|
20
20
|
/** Missing resources (tables, columns, views) */
|
|
21
|
-
RESOURCE
|
|
21
|
+
readonly RESOURCE: "resource";
|
|
22
22
|
/** Authentication failures (invalid credentials, expired tokens) */
|
|
23
|
-
AUTHENTICATION
|
|
23
|
+
readonly AUTHENTICATION: "authentication";
|
|
24
24
|
/** Authorization failures (insufficient scope/permissions) */
|
|
25
|
-
AUTHORIZATION
|
|
25
|
+
readonly AUTHORIZATION: "authorization";
|
|
26
26
|
/** Unexpected internal errors */
|
|
27
|
-
INTERNAL
|
|
28
|
-
|
|
27
|
+
readonly INTERNAL: "internal";
|
|
28
|
+
/** Execution timeout errors */
|
|
29
|
+
readonly TIMEOUT: "timeout";
|
|
30
|
+
/** Rate limit enforcement errors */
|
|
31
|
+
readonly RATE_LIMIT: "rate_limit";
|
|
32
|
+
};
|
|
33
|
+
export type ErrorCategory = (typeof ErrorCategory)[keyof typeof ErrorCategory];
|
|
29
34
|
/**
|
|
30
35
|
* Structured error response format
|
|
31
36
|
*/
|