@ibm/ibmi-mcp-server 0.2.0 → 0.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 +140 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +14 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/resolver.d.ts.map +1 -1
- package/dist/config/resolver.js.map +1 -1
- package/dist/ibmi-mcp-server/tools/executeSql.tool.d.ts +80 -0
- package/dist/ibmi-mcp-server/tools/executeSql.tool.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql.tool.js +356 -0
- package/dist/ibmi-mcp-server/tools/executeSql.tool.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql.tool.d.ts +36 -0
- package/dist/ibmi-mcp-server/tools/generateSql.tool.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql.tool.js +281 -0
- package/dist/ibmi-mcp-server/tools/generateSql.tool.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/index.d.ts +85 -0
- package/dist/ibmi-mcp-server/tools/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/index.js +21 -0
- package/dist/ibmi-mcp-server/tools/index.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.d.ts +9 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.d.ts.map +1 -1
- package/dist/ibmi-mcp-server/utils/config/configParser.js +58 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.js.map +1 -1
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts +4 -4
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts.map +1 -1
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js +7 -8
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js.map +1 -1
- package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts +0 -8
- package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts.map +1 -1
- package/dist/ibmi-mcp-server/utils/config/toolFactory.js +0 -31
- package/dist/ibmi-mcp-server/utils/config/toolFactory.js.map +1 -1
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts +1 -1
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts.map +1 -1
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.js +2 -2
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.js.map +1 -1
- package/dist/ibmi-mcp-server/utils/language/document.d.ts +26 -0
- package/dist/ibmi-mcp-server/utils/language/document.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/language/document.js +318 -0
- package/dist/ibmi-mcp-server/utils/language/document.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/language/statement.d.ts +43 -0
- package/dist/ibmi-mcp-server/utils/language/statement.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/language/statement.js +796 -0
- package/dist/ibmi-mcp-server/utils/language/statement.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/language/tokens.d.ts +32 -0
- package/dist/ibmi-mcp-server/utils/language/tokens.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/language/tokens.js +532 -0
- package/dist/ibmi-mcp-server/utils/language/tokens.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/language/types.d.ts +138 -0
- package/dist/ibmi-mcp-server/utils/language/types.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/language/types.js +93 -0
- package/dist/ibmi-mcp-server/utils/language/types.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/security/ibmiSqlParser.d.ts +48 -0
- package/dist/ibmi-mcp-server/utils/security/ibmiSqlParser.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/security/ibmiSqlParser.js +93 -0
- package/dist/ibmi-mcp-server/utils/security/ibmiSqlParser.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts +35 -59
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts.map +1 -1
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js +108 -288
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js.map +1 -1
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidatorFallback.d.ts +54 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidatorFallback.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidatorFallback.js +91 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidatorFallback.js.map +1 -0
- package/dist/mcp-server/tools/index.d.ts +13 -2
- package/dist/mcp-server/tools/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/index.js +29 -9
- package/dist/mcp-server/tools/index.js.map +1 -1
- package/dist/mcp-server/tools/utils/index.d.ts +7 -0
- package/dist/mcp-server/tools/utils/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/index.js +7 -0
- package/dist/mcp-server/tools/utils/index.js.map +1 -0
- package/dist/mcp-server/tools/utils/tool-factory.d.ts +129 -0
- package/dist/mcp-server/tools/utils/tool-factory.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/tool-factory.js +179 -0
- package/dist/mcp-server/tools/utils/tool-factory.js.map +1 -0
- package/dist/mcp-server/tools/utils/types.d.ts +117 -0
- package/dist/mcp-server/tools/utils/types.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/types.js +11 -0
- package/dist/mcp-server/tools/utils/types.js.map +1 -0
- package/dist/mcp-server/transports/core/cleanupTransformStream.d.ts +26 -0
- package/dist/mcp-server/transports/core/cleanupTransformStream.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/cleanupTransformStream.js +60 -0
- package/dist/mcp-server/transports/core/cleanupTransformStream.js.map +1 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +1 -1
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -1
- package/dist/mcp-server/transports/core/statefulTransportManager.js +50 -40
- package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -1
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +2 -13
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -1
- package/dist/mcp-server/transports/core/statelessTransportManager.js +35 -62
- package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -1
- package/dist/mcp-server/transports/core/transportRequest.d.ts +1 -2
- package/dist/mcp-server/transports/core/transportRequest.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +1 -3
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -1
- package/package.json +21 -22
- package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts +0 -9
- package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts.map +0 -1
- package/dist/ibmi-mcp-server/tools/executeSql/index.js +0 -9
- package/dist/ibmi-mcp-server/tools/executeSql/index.js.map +0 -1
- package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts +0 -51
- package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts.map +0 -1
- package/dist/ibmi-mcp-server/tools/executeSql/logic.js +0 -179
- package/dist/ibmi-mcp-server/tools/executeSql/logic.js.map +0 -1
- package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts +0 -52
- package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts.map +0 -1
- package/dist/ibmi-mcp-server/tools/executeSql/registration.js +0 -161
- package/dist/ibmi-mcp-server/tools/executeSql/registration.js.map +0 -1
- package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts +0 -13
- package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts.map +0 -1
- package/dist/ibmi-mcp-server/tools/generateSql/index.js +0 -13
- package/dist/ibmi-mcp-server/tools/generateSql/index.js.map +0 -1
- package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts +0 -64
- package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts.map +0 -1
- package/dist/ibmi-mcp-server/tools/generateSql/logic.js +0 -190
- package/dist/ibmi-mcp-server/tools/generateSql/logic.js.map +0 -1
- package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts +0 -18
- package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts.map +0 -1
- package/dist/ibmi-mcp-server/tools/generateSql/registration.js +0 -64
- package/dist/ibmi-mcp-server/tools/generateSql/registration.js.map +0 -1
- package/dist/mcp-server/tools/catFactFetcher/index.d.ts +0 -8
- package/dist/mcp-server/tools/catFactFetcher/index.d.ts.map +0 -1
- package/dist/mcp-server/tools/catFactFetcher/index.js +0 -8
- package/dist/mcp-server/tools/catFactFetcher/index.js.map +0 -1
- package/dist/mcp-server/tools/catFactFetcher/logic.d.ts +0 -52
- package/dist/mcp-server/tools/catFactFetcher/logic.d.ts.map +0 -1
- package/dist/mcp-server/tools/catFactFetcher/logic.js +0 -95
- package/dist/mcp-server/tools/catFactFetcher/logic.js.map +0 -1
- package/dist/mcp-server/tools/catFactFetcher/registration.d.ts +0 -9
- package/dist/mcp-server/tools/catFactFetcher/registration.d.ts.map +0 -1
- package/dist/mcp-server/tools/catFactFetcher/registration.js +0 -43
- package/dist/mcp-server/tools/catFactFetcher/registration.js.map +0 -1
- package/dist/mcp-server/tools/echoTool/index.d.ts +0 -13
- package/dist/mcp-server/tools/echoTool/index.d.ts.map +0 -1
- package/dist/mcp-server/tools/echoTool/index.js +0 -13
- package/dist/mcp-server/tools/echoTool/index.js.map +0 -1
- package/dist/mcp-server/tools/echoTool/logic.d.ts +0 -69
- package/dist/mcp-server/tools/echoTool/logic.d.ts.map +0 -1
- package/dist/mcp-server/tools/echoTool/logic.js +0 -119
- package/dist/mcp-server/tools/echoTool/logic.js.map +0 -1
- package/dist/mcp-server/tools/echoTool/registration.d.ts +0 -9
- package/dist/mcp-server/tools/echoTool/registration.d.ts.map +0 -1
- package/dist/mcp-server/tools/echoTool/registration.js +0 -45
- package/dist/mcp-server/tools/echoTool/registration.js.map +0 -1
- package/dist/mcp-server/tools/imageTest/index.d.ts +0 -7
- package/dist/mcp-server/tools/imageTest/index.d.ts.map +0 -1
- package/dist/mcp-server/tools/imageTest/index.js +0 -7
- package/dist/mcp-server/tools/imageTest/index.js.map +0 -1
- package/dist/mcp-server/tools/imageTest/logic.d.ts +0 -27
- package/dist/mcp-server/tools/imageTest/logic.d.ts.map +0 -1
- package/dist/mcp-server/tools/imageTest/logic.js +0 -44
- package/dist/mcp-server/tools/imageTest/logic.js.map +0 -1
- package/dist/mcp-server/tools/imageTest/registration.d.ts +0 -9
- package/dist/mcp-server/tools/imageTest/registration.d.ts.map +0 -1
- package/dist/mcp-server/tools/imageTest/registration.js +0 -49
- package/dist/mcp-server/tools/imageTest/registration.js.map +0 -1
- package/dist/mcp-server/tools/utils/tool-utils.d.ts +0 -43
- package/dist/mcp-server/tools/utils/tool-utils.d.ts.map +0 -1
- package/dist/mcp-server/tools/utils/tool-utils.js +0 -44
- package/dist/mcp-server/tools/utils/tool-utils.js.map +0 -1
- package/dist/mcp-server/transports/core/headerUtils.d.ts +0 -27
- package/dist/mcp-server/transports/core/headerUtils.d.ts.map +0 -1
- package/dist/mcp-server/transports/core/headerUtils.js +0 -53
- package/dist/mcp-server/transports/core/headerUtils.js.map +0 -1
- package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +0 -77
- package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +0 -1
- package/dist/mcp-server/transports/core/honoNodeBridge.js +0 -150
- package/dist/mcp-server/transports/core/honoNodeBridge.js.map +0 -1
- package/dist/services/duck-db/duckDBConnectionManager.d.ts +0 -55
- package/dist/services/duck-db/duckDBConnectionManager.d.ts.map +0 -1
- package/dist/services/duck-db/duckDBConnectionManager.js +0 -184
- package/dist/services/duck-db/duckDBConnectionManager.js.map +0 -1
- package/dist/services/duck-db/duckDBQueryExecutor.d.ts +0 -18
- package/dist/services/duck-db/duckDBQueryExecutor.d.ts.map +0 -1
- package/dist/services/duck-db/duckDBQueryExecutor.js +0 -115
- package/dist/services/duck-db/duckDBQueryExecutor.js.map +0 -1
- package/dist/services/duck-db/duckDBService.d.ts +0 -27
- package/dist/services/duck-db/duckDBService.d.ts.map +0 -1
- package/dist/services/duck-db/duckDBService.js +0 -151
- package/dist/services/duck-db/duckDBService.js.map +0 -1
- package/dist/services/duck-db/types.d.ts +0 -135
- package/dist/services/duck-db/types.d.ts.map +0 -1
- package/dist/services/duck-db/types.js +0 -6
- package/dist/services/duck-db/types.js.map +0 -1
- package/dist/services/llm-providers/openRouterProvider.d.ts +0 -36
- package/dist/services/llm-providers/openRouterProvider.d.ts.map +0 -1
- package/dist/services/llm-providers/openRouterProvider.js +0 -235
- package/dist/services/llm-providers/openRouterProvider.js.map +0 -1
- package/dist/services/supabase/supabaseClient.d.ts +0 -25
- package/dist/services/supabase/supabaseClient.d.ts.map +0 -1
- package/dist/services/supabase/supabaseClient.js +0 -68
- package/dist/services/supabase/supabaseClient.js.map +0 -1
- package/dist/storage/duckdbExample.d.ts +0 -8
- package/dist/storage/duckdbExample.d.ts.map +0 -1
- package/dist/storage/duckdbExample.js +0 -197
- package/dist/storage/duckdbExample.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanupTransformStream.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/cleanupTransformStream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,4BAA4B,CAC1C,cAA8B,EAC9B,SAA8B;IAE9B,4CAA4C;IAC5C,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,SAAS;YAAE,OAAO;QACtB,SAAS,GAAG,IAAI,CAAC;QACjB,MAAM,SAAS,EAAE,CAAC;IACpB,CAAC,CAAC;IAEF,+CAA+C;IAC/C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,eAAe,CAAC;QACjD;;WAEG;QACH,SAAS,CAAC,KAAK,EAAE,UAAU;YACzB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,KAAK;YACT,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,MAAM;YACV,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;IAEH,yCAAyC;IACzC,8DAA8D;IAC9D,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -44,7 +44,7 @@ export declare class StatefulTransportManager extends BaseTransportManager imple
|
|
|
44
44
|
/**
|
|
45
45
|
* Initializes a new stateful session and handles the first request.
|
|
46
46
|
*
|
|
47
|
-
* @param
|
|
47
|
+
* @param webRequest - The Web Standard Request object.
|
|
48
48
|
* @param body - The parsed body of the request.
|
|
49
49
|
* @param context - The request context.
|
|
50
50
|
* @returns A promise resolving to a streaming TransportResponse with a session ID.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statefulTransportManager.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/statefulTransportManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAGL,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"statefulTransportManager.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/statefulTransportManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAGL,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAES,sBAAsB;AACpC,wBAAwB,IAAI,yBAAyB,EACrD,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,wBACX,SAAQ,oBACR,YAAW,yBAAyB;IAEpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAGvB;IACJ,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAChE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD;;;OAGG;gBAED,sBAAsB,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAChD,OAAO,EAAE,wBAAwB;IAkBnC;;;;;;;;OAQG;YACW,mBAAmB;IAiHjC;;;;OAIG;IACG,aAAa,CACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,iBAAiB,CAAC;IAoG7B;;OAEG;IACG,mBAAmB,CACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,iBAAiB,CAAC;IA8B7B;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI3D;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB/B;;OAEG;YACW,YAAY;IA8C1B;;OAEG;YACW,oBAAoB;CA6CnC"}
|
|
@@ -16,13 +16,10 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { JsonRpcErrorCode, McpError } from "../../../types-global/errors.js";
|
|
18
18
|
import { ErrorHandler, logger, requestContextService, } from "../../../utils/index.js";
|
|
19
|
-
import {
|
|
19
|
+
import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
|
|
20
20
|
import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
|
|
21
21
|
import { randomUUID } from "node:crypto";
|
|
22
|
-
import { Readable } from "stream";
|
|
23
22
|
import { BaseTransportManager } from "./baseTransportManager.js";
|
|
24
|
-
import { convertNodeHeadersToWebHeaders } from "./headerUtils.js";
|
|
25
|
-
import { HonoStreamResponse } from "./honoNodeBridge.js";
|
|
26
23
|
import { SessionState, // Import SessionState
|
|
27
24
|
} from "./transportTypes.js";
|
|
28
25
|
/**
|
|
@@ -51,13 +48,13 @@ export class StatefulTransportManager extends BaseTransportManager {
|
|
|
51
48
|
/**
|
|
52
49
|
* Initializes a new stateful session and handles the first request.
|
|
53
50
|
*
|
|
54
|
-
* @param
|
|
51
|
+
* @param webRequest - The Web Standard Request object.
|
|
55
52
|
* @param body - The parsed body of the request.
|
|
56
53
|
* @param context - The request context.
|
|
57
54
|
* @returns A promise resolving to a streaming TransportResponse with a session ID.
|
|
58
55
|
* @private
|
|
59
56
|
*/
|
|
60
|
-
async initializeAndHandle(
|
|
57
|
+
async initializeAndHandle(webRequest, body, context) {
|
|
61
58
|
const opContext = {
|
|
62
59
|
...context,
|
|
63
60
|
operation: "StatefulTransportManager.initializeAndHandle",
|
|
@@ -67,9 +64,9 @@ export class StatefulTransportManager extends BaseTransportManager {
|
|
|
67
64
|
let transport;
|
|
68
65
|
try {
|
|
69
66
|
server = await this.createServerInstanceFn();
|
|
70
|
-
const mockRes = new HonoStreamResponse();
|
|
71
67
|
const currentServer = server;
|
|
72
|
-
transport
|
|
68
|
+
// Create transport with session management
|
|
69
|
+
transport = new WebStandardStreamableHTTPServerTransport({
|
|
73
70
|
sessionIdGenerator: () => randomUUID(),
|
|
74
71
|
onsessioninitialized: (sessionId) => {
|
|
75
72
|
const sessionContext = { ...opContext, sessionId };
|
|
@@ -77,14 +74,19 @@ export class StatefulTransportManager extends BaseTransportManager {
|
|
|
77
74
|
this.servers.set(sessionId, currentServer);
|
|
78
75
|
this.sessions.set(sessionId, {
|
|
79
76
|
id: sessionId,
|
|
80
|
-
state: SessionState.ACTIVE,
|
|
77
|
+
state: SessionState.ACTIVE,
|
|
81
78
|
createdAt: new Date(),
|
|
82
79
|
lastAccessedAt: new Date(),
|
|
83
80
|
activeRequests: 0,
|
|
84
81
|
});
|
|
85
82
|
logger.info(sessionContext, `MCP Session created: ${sessionId}`);
|
|
86
83
|
},
|
|
84
|
+
onsessionclosed: (sessionId) => {
|
|
85
|
+
const closeContext = { ...opContext, sessionId };
|
|
86
|
+
logger.info(closeContext, `Session closed via DELETE: ${sessionId}`);
|
|
87
|
+
},
|
|
87
88
|
});
|
|
89
|
+
// Set up transport.onclose handler
|
|
88
90
|
transport.onclose = () => {
|
|
89
91
|
const sessionId = transport.sessionId;
|
|
90
92
|
if (sessionId) {
|
|
@@ -94,23 +96,27 @@ export class StatefulTransportManager extends BaseTransportManager {
|
|
|
94
96
|
};
|
|
95
97
|
await server.connect(transport);
|
|
96
98
|
logger.debug(opContext, "Server connected, handling initial request.");
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
99
|
+
// Handle request using Web Standards API
|
|
100
|
+
const webResponse = await transport.handleRequest(webRequest, {
|
|
101
|
+
parsedBody: body,
|
|
102
|
+
});
|
|
103
|
+
const sessionId = webResponse.headers.get("Mcp-Session-Id") || transport.sessionId;
|
|
104
|
+
// Handle response based on whether it has a body
|
|
105
|
+
if (!webResponse.body) {
|
|
106
|
+
return {
|
|
107
|
+
type: "buffered",
|
|
108
|
+
headers: webResponse.headers,
|
|
109
|
+
statusCode: webResponse.status,
|
|
110
|
+
body: null,
|
|
111
|
+
sessionId,
|
|
112
|
+
};
|
|
106
113
|
}
|
|
107
|
-
const webStream = Readable.toWeb(mockRes);
|
|
108
114
|
return {
|
|
109
115
|
type: "stream",
|
|
110
|
-
headers:
|
|
111
|
-
statusCode:
|
|
112
|
-
stream:
|
|
113
|
-
sessionId
|
|
116
|
+
headers: webResponse.headers,
|
|
117
|
+
statusCode: webResponse.status,
|
|
118
|
+
stream: webResponse.body,
|
|
119
|
+
sessionId,
|
|
114
120
|
};
|
|
115
121
|
}
|
|
116
122
|
catch (error) {
|
|
@@ -142,8 +148,9 @@ export class StatefulTransportManager extends BaseTransportManager {
|
|
|
142
148
|
* initialization request or a subsequent request for an existing session.
|
|
143
149
|
*/
|
|
144
150
|
async handleRequest(request) {
|
|
145
|
-
const {
|
|
151
|
+
const { webRequest, body, context, sessionId } = request;
|
|
146
152
|
if (sessionId) {
|
|
153
|
+
// Handle subsequent request for existing session
|
|
147
154
|
const sessionContext = {
|
|
148
155
|
...context,
|
|
149
156
|
sessionId,
|
|
@@ -163,30 +170,33 @@ export class StatefulTransportManager extends BaseTransportManager {
|
|
|
163
170
|
},
|
|
164
171
|
};
|
|
165
172
|
}
|
|
166
|
-
// Check session state before accepting the request
|
|
167
173
|
if (session.state === SessionState.CLOSING) {
|
|
168
174
|
logger.warning(sessionContext, `Request received for session in CLOSING state: ${sessionId}`);
|
|
169
|
-
throw new McpError(JsonRpcErrorCode.Conflict,
|
|
170
|
-
"Session is currently closing. Please start a new session.", sessionContext);
|
|
175
|
+
throw new McpError(JsonRpcErrorCode.Conflict, "Session is currently closing. Please start a new session.", sessionContext);
|
|
171
176
|
}
|
|
172
177
|
session.lastAccessedAt = new Date();
|
|
173
178
|
session.activeRequests += 1;
|
|
174
179
|
logger.debug(sessionContext, `Incremented activeRequests for session ${sessionId}. Count: ${session.activeRequests}`);
|
|
175
180
|
try {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
181
|
+
// Call Web Standards API
|
|
182
|
+
const webResponse = await transport.handleRequest(webRequest, {
|
|
183
|
+
parsedBody: body,
|
|
184
|
+
});
|
|
185
|
+
// Handle response based on whether it has a body
|
|
186
|
+
if (!webResponse.body) {
|
|
187
|
+
return {
|
|
188
|
+
type: "buffered",
|
|
189
|
+
headers: webResponse.headers,
|
|
190
|
+
statusCode: webResponse.status,
|
|
191
|
+
body: null,
|
|
192
|
+
sessionId: transport.sessionId,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
185
195
|
return {
|
|
186
196
|
type: "stream",
|
|
187
|
-
headers:
|
|
188
|
-
statusCode:
|
|
189
|
-
stream:
|
|
197
|
+
headers: webResponse.headers,
|
|
198
|
+
statusCode: webResponse.status,
|
|
199
|
+
stream: webResponse.body,
|
|
190
200
|
sessionId: transport.sessionId,
|
|
191
201
|
};
|
|
192
202
|
}
|
|
@@ -204,7 +214,7 @@ export class StatefulTransportManager extends BaseTransportManager {
|
|
|
204
214
|
}
|
|
205
215
|
}
|
|
206
216
|
if (isInitializeRequest(body)) {
|
|
207
|
-
return this.initializeAndHandle(
|
|
217
|
+
return this.initializeAndHandle(webRequest, body, context);
|
|
208
218
|
}
|
|
209
219
|
throw new McpError(JsonRpcErrorCode.InvalidRequest, "A session ID or an initialize request is required for stateful mode.", context);
|
|
210
220
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statefulTransportManager.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/statefulTransportManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"statefulTransportManager.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/statefulTransportManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,25 +27,14 @@ export declare class StatelessTransportManager extends BaseTransportManager {
|
|
|
27
27
|
* handles the request, and ensures resources are cleaned up only after the
|
|
28
28
|
* response stream is closed.
|
|
29
29
|
*
|
|
30
|
-
* @param
|
|
30
|
+
* @param webRequest - The Web Standard Request object.
|
|
31
31
|
* @param body - The parsed body of the request.
|
|
32
32
|
* @param context - The request context for logging and tracing.
|
|
33
33
|
* @returns A promise resolving to a streaming TransportResponse.
|
|
34
34
|
*/
|
|
35
|
-
handleRequest({
|
|
36
|
-
/**
|
|
37
|
-
* Attaches listeners to the response stream to trigger resource cleanup
|
|
38
|
-
* only after the stream has been fully consumed or has errored.
|
|
39
|
-
*
|
|
40
|
-
* @param stream - The response stream bridge.
|
|
41
|
-
* @param server - The ephemeral McpServer instance.
|
|
42
|
-
* @param transport - The ephemeral transport instance.
|
|
43
|
-
* @param context - The request context for logging.
|
|
44
|
-
*/
|
|
45
|
-
private setupDeferredCleanup;
|
|
35
|
+
handleRequest({ webRequest, body, context, }: McpTransportRequest): Promise<TransportResponse>;
|
|
46
36
|
/**
|
|
47
37
|
* Performs the actual cleanup of ephemeral resources.
|
|
48
|
-
* This method is designed to be "fire-and-forget".
|
|
49
38
|
*/
|
|
50
39
|
private cleanup;
|
|
51
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statelessTransportManager.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/statelessTransportManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"statelessTransportManager.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/statelessTransportManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAkB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExE;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,oBAAoB;IACjE;;;;;;;;;;;OAWG;IACG,aAAa,CAAC,EAClB,UAAU,EACV,IAAI,EACJ,OAAO,GACR,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqEnD;;OAEG;YACW,OAAO;IAyBrB;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAUhC"}
|
|
@@ -14,11 +14,9 @@
|
|
|
14
14
|
* @module src/mcp-server/transports/core/statelessTransportManager
|
|
15
15
|
*/
|
|
16
16
|
import { ErrorHandler, logger, requestContextService, } from "../../../utils/index.js";
|
|
17
|
-
import {
|
|
18
|
-
import { Readable } from "stream";
|
|
17
|
+
import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
|
|
19
18
|
import { BaseTransportManager } from "./baseTransportManager.js";
|
|
20
|
-
import {
|
|
21
|
-
import { HonoStreamResponse } from "./honoNodeBridge.js";
|
|
19
|
+
import { createCleanupTransformStream } from "./cleanupTransformStream.js";
|
|
22
20
|
/**
|
|
23
21
|
* Manages ephemeral, single-request MCP operations.
|
|
24
22
|
*/
|
|
@@ -30,12 +28,12 @@ export class StatelessTransportManager extends BaseTransportManager {
|
|
|
30
28
|
* handles the request, and ensures resources are cleaned up only after the
|
|
31
29
|
* response stream is closed.
|
|
32
30
|
*
|
|
33
|
-
* @param
|
|
31
|
+
* @param webRequest - The Web Standard Request object.
|
|
34
32
|
* @param body - The parsed body of the request.
|
|
35
33
|
* @param context - The request context for logging and tracing.
|
|
36
34
|
* @returns A promise resolving to a streaming TransportResponse.
|
|
37
35
|
*/
|
|
38
|
-
async handleRequest({
|
|
36
|
+
async handleRequest({ webRequest, body, context, }) {
|
|
39
37
|
const opContext = {
|
|
40
38
|
...context,
|
|
41
39
|
operation: "StatelessTransportManager.handleRequest",
|
|
@@ -46,39 +44,43 @@ export class StatelessTransportManager extends BaseTransportManager {
|
|
|
46
44
|
try {
|
|
47
45
|
// 1. Create ephemeral instances for this request.
|
|
48
46
|
server = await this.createServerInstanceFn();
|
|
49
|
-
transport = new
|
|
47
|
+
transport = new WebStandardStreamableHTTPServerTransport({
|
|
50
48
|
sessionIdGenerator: undefined,
|
|
51
49
|
onsessioninitialized: undefined,
|
|
52
50
|
});
|
|
53
51
|
await server.connect(transport);
|
|
54
52
|
logger.debug(opContext, "Ephemeral server connected to transport.");
|
|
55
|
-
// 2.
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
};
|
|
60
|
-
const mockResBridge = new HonoStreamResponse();
|
|
61
|
-
// 3. Defer cleanup until the stream is fully processed.
|
|
62
|
-
// This is the critical fix to prevent premature resource release.
|
|
63
|
-
this.setupDeferredCleanup(mockResBridge, server, transport, opContext);
|
|
64
|
-
// 4. Process the request using the MCP transport.
|
|
65
|
-
const mockRes = mockResBridge;
|
|
66
|
-
await transport.handleRequest(mockReq, mockRes, body);
|
|
53
|
+
// 2. Handle request using Web Standards API
|
|
54
|
+
const webResponse = await transport.handleRequest(webRequest, {
|
|
55
|
+
parsedBody: body,
|
|
56
|
+
});
|
|
67
57
|
logger.info(opContext, "Stateless request handled successfully.");
|
|
68
|
-
//
|
|
69
|
-
|
|
70
|
-
|
|
58
|
+
// 3. Handle response based on whether it has a body
|
|
59
|
+
if (!webResponse.body) {
|
|
60
|
+
// No body - return buffered response and cleanup immediately
|
|
61
|
+
await this.cleanup(server, transport, opContext);
|
|
62
|
+
return {
|
|
63
|
+
type: "buffered",
|
|
64
|
+
headers: webResponse.headers,
|
|
65
|
+
statusCode: webResponse.status,
|
|
66
|
+
body: null,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// 4. Wrap stream with cleanup transform
|
|
70
|
+
const stream = webResponse.body;
|
|
71
|
+
const wrappedStream = createCleanupTransformStream(stream, async () => this.cleanup(server, transport, opContext));
|
|
72
|
+
// 5. Return streaming response
|
|
71
73
|
return {
|
|
72
74
|
type: "stream",
|
|
73
|
-
headers:
|
|
74
|
-
statusCode:
|
|
75
|
-
stream:
|
|
75
|
+
headers: webResponse.headers,
|
|
76
|
+
statusCode: webResponse.status,
|
|
77
|
+
stream: wrappedStream,
|
|
76
78
|
};
|
|
77
79
|
}
|
|
78
80
|
catch (error) {
|
|
79
81
|
// If an error occurs before the stream is returned, we must clean up immediately.
|
|
80
82
|
if (server || transport) {
|
|
81
|
-
this.cleanup(server, transport, opContext);
|
|
83
|
+
await this.cleanup(server, transport, opContext);
|
|
82
84
|
}
|
|
83
85
|
throw ErrorHandler.handleError(error, {
|
|
84
86
|
operation: "StatelessTransportManager.handleRequest",
|
|
@@ -87,54 +89,25 @@ export class StatelessTransportManager extends BaseTransportManager {
|
|
|
87
89
|
});
|
|
88
90
|
}
|
|
89
91
|
}
|
|
90
|
-
/**
|
|
91
|
-
* Attaches listeners to the response stream to trigger resource cleanup
|
|
92
|
-
* only after the stream has been fully consumed or has errored.
|
|
93
|
-
*
|
|
94
|
-
* @param stream - The response stream bridge.
|
|
95
|
-
* @param server - The ephemeral McpServer instance.
|
|
96
|
-
* @param transport - The ephemeral transport instance.
|
|
97
|
-
* @param context - The request context for logging.
|
|
98
|
-
*/
|
|
99
|
-
setupDeferredCleanup(stream, server, transport, context) {
|
|
100
|
-
let cleanedUp = false;
|
|
101
|
-
const cleanupFn = (error) => {
|
|
102
|
-
if (cleanedUp)
|
|
103
|
-
return;
|
|
104
|
-
cleanedUp = true;
|
|
105
|
-
if (error) {
|
|
106
|
-
logger.warning({
|
|
107
|
-
...context,
|
|
108
|
-
error,
|
|
109
|
-
}, "Stream ended with an error, proceeding to cleanup.");
|
|
110
|
-
}
|
|
111
|
-
// Cleanup is fire-and-forget.
|
|
112
|
-
this.cleanup(server, transport, context);
|
|
113
|
-
};
|
|
114
|
-
// 'close' is the most reliable event, firing on both normal completion and abrupt termination.
|
|
115
|
-
stream.on("close", () => cleanupFn());
|
|
116
|
-
stream.on("error", (err) => cleanupFn(err));
|
|
117
|
-
}
|
|
118
92
|
/**
|
|
119
93
|
* Performs the actual cleanup of ephemeral resources.
|
|
120
|
-
* This method is designed to be "fire-and-forget".
|
|
121
94
|
*/
|
|
122
|
-
cleanup(server, transport, context) {
|
|
95
|
+
async cleanup(server, transport, context) {
|
|
123
96
|
const opContext = {
|
|
124
97
|
...context,
|
|
125
98
|
operation: "StatelessTransportManager.cleanup",
|
|
126
99
|
};
|
|
127
|
-
logger.debug(opContext, "
|
|
128
|
-
|
|
129
|
-
.
|
|
100
|
+
logger.debug(opContext, "Cleaning up ephemeral resources.");
|
|
101
|
+
try {
|
|
102
|
+
await Promise.all([transport?.close(), server?.close()]);
|
|
130
103
|
logger.debug(opContext, "Ephemeral resources cleaned up successfully.");
|
|
131
|
-
}
|
|
132
|
-
|
|
104
|
+
}
|
|
105
|
+
catch (cleanupError) {
|
|
133
106
|
logger.warning({
|
|
134
107
|
...opContext,
|
|
135
108
|
error: cleanupError,
|
|
136
109
|
}, "Error during stateless resource cleanup.");
|
|
137
|
-
}
|
|
110
|
+
}
|
|
138
111
|
}
|
|
139
112
|
/**
|
|
140
113
|
* Shuts down the manager. For the stateless manager, this is a no-op
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statelessTransportManager.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/statelessTransportManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,YAAY,EACZ,MAAM,EAEN,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"statelessTransportManager.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/statelessTransportManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { IncomingHttpHeaders } from "http";
|
|
2
1
|
import type { RequestContext } from "../../../utils/index.js";
|
|
3
2
|
export interface McpTransportRequest {
|
|
4
|
-
|
|
3
|
+
webRequest: Request;
|
|
5
4
|
body: unknown;
|
|
6
5
|
context: RequestContext;
|
|
7
6
|
sessionId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transportRequest.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/transportRequest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"transportRequest.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/transportRequest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpTransportMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/mcpTransportMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"mcpTransportMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/mcpTransportMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAOzC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE;QACT,WAAW,EAAE,iBAAiB,CAAC;QAE/B,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;KACnC,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,kBAAkB,gBAAgB,KACjC,iBAAiB,CAAC,gBAAgB,GAAG;IAAE,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAqDrE,CAAC"}
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
import { ErrorCode, McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
9
9
|
import { createMiddleware } from "hono/factory";
|
|
10
10
|
import { requestContextService, withRequestContext, } from "../../../utils/index.js";
|
|
11
|
-
import { convertWebHeadersToNodeHeaders } from "../core/headerUtils.js"; // Import the utility
|
|
12
11
|
export const mcpTransportMiddleware = (transportManager) => {
|
|
13
12
|
return createMiddleware(async (c, next) => {
|
|
14
13
|
const sessionId = c.req.header("mcp-session-id");
|
|
@@ -39,8 +38,7 @@ export const mcpTransportMiddleware = (transportManager) => {
|
|
|
39
38
|
}
|
|
40
39
|
c.set("requestId", requestId); // Store in context
|
|
41
40
|
const transportRequest = {
|
|
42
|
-
|
|
43
|
-
headers: convertWebHeadersToNodeHeaders(c.req.raw.headers),
|
|
41
|
+
webRequest: c.req.raw,
|
|
44
42
|
body,
|
|
45
43
|
context,
|
|
46
44
|
sessionId: sessionId || undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpTransportMiddleware.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/mcpTransportMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcpTransportMiddleware.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/mcpTransportMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAajC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,gBAAkC,EACoC,EAAE;IACxE,OAAO,gBAAgB,CACrB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAChB,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,wBAAwB;YACnC,SAAS;YACT,SAAS,EAAE,MAAM;SAClB,CAAC,CAAC;QAEH,MAAM,kBAAkB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YAC3C,IAAI,IAAa,CAAC;YAClB,IAAI,SAAS,GAA2B,IAAI,CAAC;YAE7C,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAE1B,oBAAoB;gBACpB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;oBACrD,MAAM,EAAE,GAAI,IAAwB,CAAC,EAAE,CAAC;oBACxC,IACE,OAAO,EAAE,KAAK,QAAQ;wBACtB,OAAO,EAAE,KAAK,QAAQ;wBACtB,EAAE,KAAK,IAAI,EACX,CAAC;wBACD,SAAS,GAAG,EAAE,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,gDAAgD;gBAChD,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBACzB,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,UAAU,EACpB,uCAAuC,CACxC,CAAC;YACJ,CAAC;YAED,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,mBAAmB;YAElD,MAAM,gBAAgB,GAAwB;gBAC5C,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG;gBACrB,IAAI;gBACJ,OAAO;gBACP,SAAS,EAAE,SAAS,IAAI,SAAS;aAClC,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;YAExE,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAC/B,MAAM,IAAI,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibm/ibmi-mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "A production-grade MCP server for IBM i",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"typecheck": "tsc --noEmit",
|
|
42
42
|
"tree": "tsx scripts/tree.ts",
|
|
43
43
|
"fetch-spec": "tsx scripts/fetch-openapi-spec.ts",
|
|
44
|
-
"format": "prettier --write \"**/*.{ts,js,json,
|
|
44
|
+
"format": "prettier --write \"**/*.{ts,js,json,html,css}\"",
|
|
45
45
|
"inspector": "npx @modelcontextprotocol/inspector --config mcp.json --server default-server",
|
|
46
46
|
"mcpjam": "npx @mcpjam/cli",
|
|
47
47
|
"db:duckdb-example": "MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js",
|
|
@@ -59,6 +59,9 @@
|
|
|
59
59
|
"release:major": "standard-version --release-as major",
|
|
60
60
|
"release:patch": "standard-version --release-as patch",
|
|
61
61
|
"release:first": "standard-version --first-release",
|
|
62
|
+
"deploy:debug": "./scripts/debug-deploy.sh",
|
|
63
|
+
"deploy:debug:fast": "./scripts/debug-deploy.sh --skip-validation --skip-build",
|
|
64
|
+
"deploy:debug:safe": "./scripts/debug-deploy.sh --skip-modules",
|
|
62
65
|
"release:prepare": "./scripts/release-prepare.sh",
|
|
63
66
|
"release:prepare:patch": "./scripts/release-prepare.sh patch",
|
|
64
67
|
"release:prepare:minor": "./scripts/release-prepare.sh minor",
|
|
@@ -67,52 +70,47 @@
|
|
|
67
70
|
"release:undo": "./scripts/release-undo.sh"
|
|
68
71
|
},
|
|
69
72
|
"dependencies": {
|
|
70
|
-
"@duckdb/node-api": "^1.3.2-alpha.26",
|
|
71
73
|
"@hono/node-server": "^1.17.1",
|
|
72
74
|
"@ibm/mapepire-js": "^0.6.0",
|
|
73
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
74
|
-
"@
|
|
75
|
+
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
76
|
+
"@opentelemetry/api": "^1.9.0",
|
|
77
|
+
"@opentelemetry/auto-instrumentations-node": "^0.62.1",
|
|
78
|
+
"@opentelemetry/exporter-metrics-otlp-http": "^0.203.0",
|
|
79
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.203.0",
|
|
80
|
+
"@opentelemetry/resources": "^2.0.1",
|
|
81
|
+
"@opentelemetry/sdk-metrics": "^2.0.1",
|
|
82
|
+
"@opentelemetry/sdk-node": "^0.203.0",
|
|
83
|
+
"@opentelemetry/sdk-trace-node": "^2.0.1",
|
|
84
|
+
"@opentelemetry/semantic-conventions": "^1.36.0",
|
|
75
85
|
"axios": "^1.11.0",
|
|
76
86
|
"chrono-node": "^2.8.0",
|
|
77
87
|
"dotenv": "^16.6.1",
|
|
88
|
+
"glob": "^10.5.0",
|
|
78
89
|
"hono": "^4.8.9",
|
|
79
90
|
"ignore": "^7.0.5",
|
|
80
91
|
"jose": "^6.0.13",
|
|
81
92
|
"js-yaml": "^4.1.0",
|
|
82
93
|
"node-cron": "^4.2.1",
|
|
83
|
-
"node-sql-parser": "^5.3.12",
|
|
84
94
|
"openai": "^5.15.0",
|
|
85
95
|
"partial-json": "^0.1.7",
|
|
86
96
|
"pino": "^9.9.0",
|
|
97
|
+
"pino-pretty": "^13.0.0",
|
|
98
|
+
"pino-roll": "^1.1.0",
|
|
87
99
|
"reflect-metadata": "^0.2.2",
|
|
88
100
|
"sanitize-html": "^2.17.0",
|
|
89
101
|
"tiktoken": "^1.0.22",
|
|
90
|
-
"ts-node": "^
|
|
102
|
+
"ts-node": "^1.7.1",
|
|
91
103
|
"validator": "^13.15.23",
|
|
92
104
|
"zod": "^3.25.76",
|
|
93
|
-
"zod-to-json-schema": "^3.24.6"
|
|
94
|
-
"@opentelemetry/api": "^1.9.0",
|
|
95
|
-
"@opentelemetry/auto-instrumentations-node": "^0.62.1",
|
|
96
|
-
"@opentelemetry/exporter-metrics-otlp-http": "^0.203.0",
|
|
97
|
-
"@opentelemetry/exporter-trace-otlp-http": "^0.203.0",
|
|
98
|
-
"@opentelemetry/resources": "^2.0.1",
|
|
99
|
-
"@opentelemetry/sdk-metrics": "^2.0.1",
|
|
100
|
-
"@opentelemetry/sdk-node": "^0.203.0",
|
|
101
|
-
"@opentelemetry/sdk-trace-node": "^2.0.1",
|
|
102
|
-
"@opentelemetry/semantic-conventions": "^1.36.0",
|
|
103
|
-
"glob": "^10.5.0",
|
|
104
|
-
"pino-pretty": "^13.0.0",
|
|
105
|
-
"pino-roll": "^1.1.0"
|
|
105
|
+
"zod-to-json-schema": "^3.24.6"
|
|
106
106
|
},
|
|
107
107
|
"devDependencies": {
|
|
108
|
-
"vite": "^6.3.5",
|
|
109
108
|
"@anatine/zod-mock": "^3.14.0",
|
|
110
109
|
"@eslint/js": "^9.34.0",
|
|
111
110
|
"@faker-js/faker": "^9.9.0",
|
|
112
111
|
"@types/js-yaml": "^4.0.9",
|
|
113
112
|
"@types/node": "^24.3.0",
|
|
114
113
|
"@types/node-cron": "^3.0.11",
|
|
115
|
-
"@types/node-sql-parser": "^1.0.0",
|
|
116
114
|
"@types/sanitize-html": "^2.16.0",
|
|
117
115
|
"@types/validator": "13.15.2",
|
|
118
116
|
"@vitest/coverage-v8": "^3.2.4",
|
|
@@ -129,6 +127,7 @@
|
|
|
129
127
|
"typedoc": "^0.28.10",
|
|
130
128
|
"typescript": "^5.8.3",
|
|
131
129
|
"typescript-eslint": "^8.40.0",
|
|
130
|
+
"vite": "^6.3.5",
|
|
132
131
|
"vite-tsconfig-paths": "^5.1.4",
|
|
133
132
|
"vitest": "^3.2.4"
|
|
134
133
|
},
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Barrel file for the execute SQL tool
|
|
3
|
-
* This module exports the registration function and configuration utilities
|
|
4
|
-
* for the dynamic SQL execution tool.
|
|
5
|
-
*
|
|
6
|
-
* @module src/mcp-server/tools/executeSql/index
|
|
7
|
-
*/
|
|
8
|
-
export { registerExecuteSqlTool, setExecuteSqlConfig, getExecuteSqlConfig, isExecuteSqlEnabled, type ExecuteSqlToolConfig, } from "./registration.js";
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/tools/executeSql/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC"}
|