@futdevpro/nts-dynamo 1.15.296 → 1.15.298

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.
Files changed (24) hide show
  1. package/build/_modules/mcp/_collections/mcp-http-endpoint.util.d.ts +36 -0
  2. package/build/_modules/mcp/_collections/mcp-http-endpoint.util.d.ts.map +1 -0
  3. package/build/_modules/mcp/_collections/mcp-http-endpoint.util.js +47 -0
  4. package/build/_modules/mcp/_collections/mcp-http-endpoint.util.js.map +1 -0
  5. package/build/_modules/mcp/_collections/mcp-ref.util.d.ts +74 -0
  6. package/build/_modules/mcp/_collections/mcp-ref.util.d.ts.map +1 -0
  7. package/build/_modules/mcp/_collections/mcp-ref.util.js +115 -0
  8. package/build/_modules/mcp/_collections/mcp-ref.util.js.map +1 -0
  9. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts +1 -1
  10. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts.map +1 -1
  11. package/build/_modules/mcp/_models/interfaces/mcp-settings.interface.d.ts +2 -0
  12. package/build/_modules/mcp/_models/interfaces/mcp-settings.interface.d.ts.map +1 -1
  13. package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts +15 -1
  14. package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts.map +1 -1
  15. package/build/_modules/mcp/_services/dynts-mcp.adapter.js +35 -5
  16. package/build/_modules/mcp/_services/dynts-mcp.adapter.js.map +1 -1
  17. package/build/_modules/mcp/_services/mcp-server.service-base.d.ts.map +1 -1
  18. package/build/_modules/mcp/_services/mcp-server.service-base.js +10 -0
  19. package/build/_modules/mcp/_services/mcp-server.service-base.js.map +1 -1
  20. package/build/_modules/mcp/index.d.ts +2 -0
  21. package/build/_modules/mcp/index.d.ts.map +1 -1
  22. package/build/_modules/mcp/index.js +2 -0
  23. package/build/_modules/mcp/index.js.map +1 -1
  24. package/package.json +1 -1
@@ -0,0 +1,36 @@
1
+ import { Request, Response } from 'express';
2
+ import { DyNTS_Endpoint_Params } from '../../../_models/control-models/endpoint-params.control-model';
3
+ import { DyNTS_Mcp_Adapter } from '../_services/dynts-mcp.adapter';
4
+ /**
5
+ * The REST endpoint that serves an MCP server over Streamable HTTP (HP-DOPL MP-3.4, D-3, DMCP-003) — a normal
6
+ * `DyNTS_Endpoint_Params`, so the admission control, the request hunter, the error handling and, above all, the
7
+ * consumer's preProcesses (authentication) run exactly as for any other route.
8
+ *
9
+ * Stateless JSON mode: `POST <path>` with a JSON-RPC body, `Accept: application/json, text/event-stream`.
10
+ * ⚠️ The bedrock does not choose the authentication: pass the app's guard (e.g. an API-key-or-token preProcess from
11
+ * `nts-fdp-templates`) — an MCP endpoint without a guard is public.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * this.endpoints = [
16
+ * DyNTS_McpHttpEndpoint_Util.getEndpoint({
17
+ * adapter: Organizer_McpServer.getInstance().build(),
18
+ * preProcesses: [ this.auth_CS.authenticate_apiKeyOrToken ],
19
+ * }),
20
+ * ];
21
+ * ```
22
+ */
23
+ export declare class DyNTS_McpHttpEndpoint_Util {
24
+ /**
25
+ * Builds the MCP endpoint.
26
+ * @param set.adapter - the built MCP adapter (tool registry)
27
+ * @param set.endpointPath - the route (default: `/mcp`)
28
+ * @param set.preProcesses - the auth / guard preProcesses
29
+ */
30
+ static getEndpoint(set: {
31
+ adapter: DyNTS_Mcp_Adapter;
32
+ endpointPath?: string;
33
+ preProcesses?: ((req: Request, res: Response) => Promise<void>)[];
34
+ }): DyNTS_Endpoint_Params;
35
+ }
36
+ //# sourceMappingURL=mcp-http-endpoint.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-http-endpoint.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/mcp/_collections/mcp-http-endpoint.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+DAA+D,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,0BAA0B;IACrC;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;QACtB,OAAO,EAAE,iBAAiB,CAAC;QAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;KACnE,GAAG,qBAAqB;CAa1B"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_McpHttpEndpoint_Util = void 0;
4
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
+ const endpoint_params_control_model_1 = require("../../../_models/control-models/endpoint-params.control-model");
6
+ /**
7
+ * The REST endpoint that serves an MCP server over Streamable HTTP (HP-DOPL MP-3.4, D-3, DMCP-003) — a normal
8
+ * `DyNTS_Endpoint_Params`, so the admission control, the request hunter, the error handling and, above all, the
9
+ * consumer's preProcesses (authentication) run exactly as for any other route.
10
+ *
11
+ * Stateless JSON mode: `POST <path>` with a JSON-RPC body, `Accept: application/json, text/event-stream`.
12
+ * ⚠️ The bedrock does not choose the authentication: pass the app's guard (e.g. an API-key-or-token preProcess from
13
+ * `nts-fdp-templates`) — an MCP endpoint without a guard is public.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * this.endpoints = [
18
+ * DyNTS_McpHttpEndpoint_Util.getEndpoint({
19
+ * adapter: Organizer_McpServer.getInstance().build(),
20
+ * preProcesses: [ this.auth_CS.authenticate_apiKeyOrToken ],
21
+ * }),
22
+ * ];
23
+ * ```
24
+ */
25
+ class DyNTS_McpHttpEndpoint_Util {
26
+ /**
27
+ * Builds the MCP endpoint.
28
+ * @param set.adapter - the built MCP adapter (tool registry)
29
+ * @param set.endpointPath - the route (default: `/mcp`)
30
+ * @param set.preProcesses - the auth / guard preProcesses
31
+ */
32
+ static getEndpoint(set) {
33
+ return new endpoint_params_control_model_1.DyNTS_Endpoint_Params({
34
+ name: 'mcpStreamableHttp',
35
+ type: fsm_dynamo_1.DyFM_HttpCallType.post,
36
+ endpoint: set.endpointPath ?? '/mcp',
37
+ preProcesses: set.preProcesses ?? [],
38
+ tasks: [
39
+ async (req, res) => {
40
+ await set.adapter.handleHttpRequest(req, res, req.body);
41
+ },
42
+ ],
43
+ });
44
+ }
45
+ }
46
+ exports.DyNTS_McpHttpEndpoint_Util = DyNTS_McpHttpEndpoint_Util;
47
+ //# sourceMappingURL=mcp-http-endpoint.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-http-endpoint.util.js","sourceRoot":"","sources":["../../../../src/_modules/mcp/_collections/mcp-http-endpoint.util.ts"],"names":[],"mappings":";;;AAEA,sDAA0D;AAE1D,iHAAsG;AAItG;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,0BAA0B;IACrC;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,GAIlB;QACC,OAAO,IAAI,qDAAqB,CAAC;YAC/B,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,8BAAiB,CAAC,IAAI;YAC5B,QAAQ,EAAE,GAAG,CAAC,YAAY,IAAI,MAAM;YACpC,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;YACpC,KAAK,EAAE;gBACL,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;oBACnD,MAAM,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1D,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAxBD,gEAwBC"}
@@ -0,0 +1,74 @@
1
+ import { DyNTS_Mcp_Settings } from '../_models/interfaces/mcp-settings.interface';
2
+ /**
3
+ * Opaque, agent-friendly entity references (HP-DOPL MP-3.7, DMCP-008) — lifted from the organizer `Mcp_Ref_Util`:
4
+ * `<system>:<namespace>:<id>` (e.g. `org:note:01H…`). The agent never builds an id path, it passes the ref back.
5
+ *
6
+ * Bedrock differences to the organizer original:
7
+ * - the system prefix is not hard-coded (`org`): it comes from `mcp_settings.refSystem` or the call;
8
+ * - the namespace is any consumer string (usually the consumer's own enum), so the bedrock knows no entity;
9
+ * - the `id` is everything after the second `:` (an id may contain `:`), exactly as in the organizer.
10
+ *
11
+ * ⭐ The etag of the same entity is `DyFM_OperationGuardrails_Util.buildEtag(entity.__v)` (fsm, MP-1.2) — the organizer
12
+ * `buildEtag` format, so both refs and etags stay compatible with the organizer MCP.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * DyNTS_global_settings.mcp_settings = { refSystem: 'org' };
17
+ * const ref: string = DyNTS_McpRef_Util.toRef({ namespace: 'note', id: note._id }); // 'org:note:01H…'
18
+ * const { id } = DyNTS_McpRef_Util.parseAndValidateRef({ ref: args.ref, namespace: 'note', method: 'notes.get' });
19
+ * ```
20
+ */
21
+ export declare class DyNTS_McpRef_Util {
22
+ /**
23
+ * Builds the ref of an entity.
24
+ * @param set.namespace - the entity namespace (e.g. `note`)
25
+ * @param set.id - the entity id
26
+ * @param set.system - the system prefix (default: `mcp_settings.refSystem`)
27
+ * @throws 500 `DyNTS-MRF-CFG` when no system is configured or a segment/id is invalid
28
+ */
29
+ static toRef(set: {
30
+ namespace: string;
31
+ id: string;
32
+ system?: string;
33
+ settings?: DyNTS_Mcp_Settings | null;
34
+ }): string;
35
+ /**
36
+ * Splits a ref of the configured system; anything else is `null` (never throws).
37
+ * @param set.ref - the ref from the caller
38
+ * @param set.system - the system prefix (default: `mcp_settings.refSystem`)
39
+ */
40
+ static parseRef(set: {
41
+ ref: unknown;
42
+ system?: string;
43
+ settings?: DyNTS_Mcp_Settings | null;
44
+ }): {
45
+ system: string;
46
+ namespace: string;
47
+ id: string;
48
+ } | null;
49
+ /**
50
+ * Parses the ref and checks its namespace — the input guard of a tool that takes a ref.
51
+ * @param set.ref - the ref from the caller
52
+ * @param set.namespace - the accepted namespace(s)
53
+ * @param set.method - the tool name, for the error data
54
+ * @param set.field - the argument name (default: `ref`, e.g. `parentRef`)
55
+ * @throws `DyNTS_Mcp_InvalidParamsError` (-32602) with field / received / expected / suggestion data
56
+ */
57
+ static parseAndValidateRef(set: {
58
+ ref: unknown;
59
+ namespace: string | string[];
60
+ method: string;
61
+ field?: string;
62
+ system?: string;
63
+ settings?: DyNTS_Mcp_Settings | null;
64
+ }): {
65
+ system: string;
66
+ namespace: string;
67
+ id: string;
68
+ };
69
+ /** The system prefix of a call, validated. */
70
+ private static systemOf;
71
+ /** A server configuration error (not the caller's fault). */
72
+ private static configError;
73
+ }
74
+ //# sourceMappingURL=mcp-ref.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-ref.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/mcp/_collections/mcp-ref.util.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAMlF;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;KAAE,GAAG,MAAM;IAanH;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;QACnB,GAAG,EAAE,OAAO,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;KACtC,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAgB5D;;;;;;;OAOG;IACH,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE;QAC9B,GAAG,EAAE,OAAO,CAAC;QACb,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;KACtC,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE;IAkCrD,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ;IAavB,6DAA6D;IAC7D,OAAO,CAAC,MAAM,CAAC,WAAW;CAO3B"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_McpRef_Util = void 0;
4
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
+ const global_settings_const_1 = require("../../../_collections/global-settings.const");
6
+ const mcp_invalid_params_error_1 = require("../_models/errors/mcp-invalid-params.error");
7
+ /** A ref segment (system or namespace): starts with a letter, letters/digits/`_`/`-`, no `:`. */
8
+ const DyNTS_mcpRefSegment = /^[A-Za-z][A-Za-z0-9_-]*$/;
9
+ /**
10
+ * Opaque, agent-friendly entity references (HP-DOPL MP-3.7, DMCP-008) — lifted from the organizer `Mcp_Ref_Util`:
11
+ * `<system>:<namespace>:<id>` (e.g. `org:note:01H…`). The agent never builds an id path, it passes the ref back.
12
+ *
13
+ * Bedrock differences to the organizer original:
14
+ * - the system prefix is not hard-coded (`org`): it comes from `mcp_settings.refSystem` or the call;
15
+ * - the namespace is any consumer string (usually the consumer's own enum), so the bedrock knows no entity;
16
+ * - the `id` is everything after the second `:` (an id may contain `:`), exactly as in the organizer.
17
+ *
18
+ * ⭐ The etag of the same entity is `DyFM_OperationGuardrails_Util.buildEtag(entity.__v)` (fsm, MP-1.2) — the organizer
19
+ * `buildEtag` format, so both refs and etags stay compatible with the organizer MCP.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * DyNTS_global_settings.mcp_settings = { refSystem: 'org' };
24
+ * const ref: string = DyNTS_McpRef_Util.toRef({ namespace: 'note', id: note._id }); // 'org:note:01H…'
25
+ * const { id } = DyNTS_McpRef_Util.parseAndValidateRef({ ref: args.ref, namespace: 'note', method: 'notes.get' });
26
+ * ```
27
+ */
28
+ class DyNTS_McpRef_Util {
29
+ /**
30
+ * Builds the ref of an entity.
31
+ * @param set.namespace - the entity namespace (e.g. `note`)
32
+ * @param set.id - the entity id
33
+ * @param set.system - the system prefix (default: `mcp_settings.refSystem`)
34
+ * @throws 500 `DyNTS-MRF-CFG` when no system is configured or a segment/id is invalid
35
+ */
36
+ static toRef(set) {
37
+ const system = DyNTS_McpRef_Util.systemOf(set.system, set.settings);
38
+ if (!DyNTS_mcpRefSegment.test(set.namespace ?? '') || typeof set.id !== 'string' || !set.id) {
39
+ throw DyNTS_McpRef_Util.configError(`a ref needs a namespace (letters, digits, "_", "-") and a non-empty id (got: ${JSON.stringify(set.namespace)}, ` +
40
+ `${JSON.stringify(set.id)})`);
41
+ }
42
+ return `${system}:${set.namespace}:${set.id}`;
43
+ }
44
+ /**
45
+ * Splits a ref of the configured system; anything else is `null` (never throws).
46
+ * @param set.ref - the ref from the caller
47
+ * @param set.system - the system prefix (default: `mcp_settings.refSystem`)
48
+ */
49
+ static parseRef(set) {
50
+ const system = DyNTS_McpRef_Util.systemOf(set.system, set.settings);
51
+ const prefix = `${system}:`;
52
+ if (typeof set.ref !== 'string' || !set.ref.startsWith(prefix)) {
53
+ return null;
54
+ }
55
+ const rest = set.ref.slice(prefix.length);
56
+ const colon = rest.indexOf(':');
57
+ const namespace = colon > 0 ? rest.slice(0, colon) : '';
58
+ const id = colon > 0 ? rest.slice(colon + 1) : '';
59
+ return DyNTS_mcpRefSegment.test(namespace) && id ? { system: system, namespace: namespace, id: id } : null;
60
+ }
61
+ /**
62
+ * Parses the ref and checks its namespace — the input guard of a tool that takes a ref.
63
+ * @param set.ref - the ref from the caller
64
+ * @param set.namespace - the accepted namespace(s)
65
+ * @param set.method - the tool name, for the error data
66
+ * @param set.field - the argument name (default: `ref`, e.g. `parentRef`)
67
+ * @throws `DyNTS_Mcp_InvalidParamsError` (-32602) with field / received / expected / suggestion data
68
+ */
69
+ static parseAndValidateRef(set) {
70
+ const system = DyNTS_McpRef_Util.systemOf(set.system, set.settings);
71
+ const accepted = Array.isArray(set.namespace) ? set.namespace : [set.namespace];
72
+ const field = set.field ?? 'ref';
73
+ const parsed = DyNTS_McpRef_Util.parseRef({ ref: set.ref, system: system });
74
+ const expected = `${field}: string, format ${system}:<namespace>:<id> (namespace: ${accepted.join(' | ')})`;
75
+ if (!parsed) {
76
+ throw new mcp_invalid_params_error_1.DyNTS_Mcp_InvalidParamsError(`Invalid ${field} format: ${String(set.ref)}`, {
77
+ data: {
78
+ message: `Invalid ${field} format: ${String(set.ref)}`,
79
+ userMessage: `The ${field} is not valid. A ref looks like ${system}:<namespace>:<id>.`,
80
+ method: set.method, field: field, received: set.ref, expected: expected,
81
+ suggestion: `Pass back a ${field} exactly as a previous tool result returned it.`,
82
+ },
83
+ });
84
+ }
85
+ if (!accepted.includes(parsed.namespace)) {
86
+ const message = `Invalid ${field} namespace: expected '${accepted.join("' or '")}' but got '${parsed.namespace}'`;
87
+ throw new mcp_invalid_params_error_1.DyNTS_Mcp_InvalidParamsError(message, {
88
+ data: {
89
+ message: message, userMessage: message, method: set.method, field: field, received: set.ref, expected: expected,
90
+ suggestion: `Use a ${field} of a ${accepted.join(' or ')} entity.`,
91
+ },
92
+ });
93
+ }
94
+ return parsed;
95
+ }
96
+ /** The system prefix of a call, validated. */
97
+ static systemOf(system, settings) {
98
+ const resolved = system ?? (settings === undefined ?
99
+ global_settings_const_1.DyNTS_global_settings.mcp_settings?.refSystem : settings?.refSystem);
100
+ if (!resolved || !DyNTS_mcpRefSegment.test(resolved)) {
101
+ throw DyNTS_McpRef_Util.configError(`the ref system is missing or invalid (got: ${JSON.stringify(resolved)}) - set mcp_settings.refSystem (e.g. 'org')`);
102
+ }
103
+ return resolved;
104
+ }
105
+ /** A server configuration error (not the caller's fault). */
106
+ static configError(message) {
107
+ return new fsm_dynamo_1.DyFM_Error({
108
+ status: 500,
109
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-MRF-CFG`,
110
+ message: `DyNTS_McpRef_Util: ${message}`,
111
+ });
112
+ }
113
+ }
114
+ exports.DyNTS_McpRef_Util = DyNTS_McpRef_Util;
115
+ //# sourceMappingURL=mcp-ref.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-ref.util.js","sourceRoot":"","sources":["../../../../src/_modules/mcp/_collections/mcp-ref.util.ts"],"names":[],"mappings":"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"}
@@ -83,7 +83,7 @@ export interface DyNTS_Mcp_ServerInfo {
83
83
  * ezzel választ — egy jövőbeli transport (pl. `http`/`sse`) NON-breaking módon bővíthető (csak az
84
84
  * adaptor `start`-ja kap új ágat; a server-base + a tool-ok változatlanok).
85
85
  */
86
- export type DyNTS_Mcp_TransportKind = 'stdio';
86
+ export type DyNTS_Mcp_TransportKind = 'stdio' | 'streamable-http';
87
87
  /**
88
88
  * A `start()` opciói. A `transport` választja a csatornát (default `stdio`).
89
89
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dynts-mcp.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,UAAU,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAE,CAAC;IACrD,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,2DAA2D;IAC3D,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IACrC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IAClC,oEAAoE;IACpE,IAAI,EAAE,OAAO,CAAC;IACd,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEtF;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACrC,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,WAAW,EAAE,oBAAoB,CAAC;IAClC,uDAAuD;IACvD,OAAO,EAAE,qBAAqB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACvC;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACjC,4DAA4D;IAC5D,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB"}
1
+ {"version":3,"file":"dynts-mcp.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,UAAU,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAE,CAAC;IACrD,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,2DAA2D;IAC3D,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IACrC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IAClC,oEAAoE;IACpE,IAAI,EAAE,OAAO,CAAC;IACd,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEtF;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACrC,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,WAAW,EAAE,oBAAoB,CAAC;IAClC,uDAAuD;IACvD,OAAO,EAAE,qBAAqB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACvC;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACjC,4DAA4D;IAC5D,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB"}
@@ -5,6 +5,8 @@
5
5
  export interface DyNTS_Mcp_Settings {
6
6
  /** Prepended to every generated tool name (e.g. `organizer.` → `organizer.notes.get`); default: none. */
7
7
  toolPrefix?: string;
8
+ /** The system prefix of entity refs (`<refSystem>:<namespace>:<id>`, e.g. `org`); required to use `DyNTS_McpRef_Util`. */
9
+ refSystem?: string;
8
10
  /** A read-only MCP server advertises only `read-only` tools; default: `false`. */
9
11
  readOnly?: boolean;
10
12
  /** How many HEAVY tool calls may run at once (DMCP-013 serialization); default: `1`. */
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-settings.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/mcp/_models/interfaces/mcp-settings.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,yGAAyG;IACzG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wFAAwF;IACxF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sHAAsH;IACtH,iCAAiC,CAAC,EAAE,OAAO,CAAC;CAC7C"}
1
+ {"version":3,"file":"mcp-settings.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/mcp/_models/interfaces/mcp-settings.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,yGAAyG;IACzG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0HAA0H;IAC1H,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wFAAwF;IACxF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sHAAsH;IACtH,iCAAiC,CAAC,EAAE,OAAO,CAAC;CAC7C"}
@@ -1,3 +1,4 @@
1
+ import type { IncomingMessage, ServerResponse } from 'http';
1
2
  import { DyNTS_Mcp_CallResult, DyNTS_Mcp_ServerInfo, DyNTS_Mcp_ToolDefinition } from '../_models/interfaces/dynts-mcp.interface';
2
3
  /**
3
4
  * `DyNTS_Mcp_Adapter` (BFR-AM-003) — a hivatalos `@modelcontextprotocol/sdk` köré épített **vékony
@@ -40,6 +41,17 @@ export declare class DyNTS_Mcp_Adapter {
40
41
  * regisztrált tool-okat hirdeti. A boot-üzenetek a stderr-en (a hívó App felel).
41
42
  */
42
43
  startStdio(): Promise<void>;
44
+ /**
45
+ * Serves ONE MCP Streamable-HTTP request (HP-DOPL MP-3.4, D-3, DMCP-003) — stateless: every request gets its own
46
+ * SDK server + transport (no session id, JSON responses instead of an SSE stream), both closed when the response
47
+ * closes. The tool registry is shared, so `tools/list` and `tools/call` behave exactly as on stdio.
48
+ * Authentication is NOT done here: the serving endpoint runs the consumer's preProcesses first
49
+ * (`DyNTS_McpHttpEndpoint_Util`).
50
+ * @param req - the incoming HTTP request
51
+ * @param res - the HTTP response the SDK writes
52
+ * @param body - the already parsed JSON-RPC body (e.g. `req.body` behind express.json)
53
+ */
54
+ handleHttpRequest(req: IncomingMessage, res: ServerResponse, body?: unknown): Promise<void>;
43
55
  /** A szerver leállítása (graceful close — teszt-/shutdown-úthoz). */
44
56
  close(): Promise<void>;
45
57
  /**
@@ -56,8 +68,10 @@ export declare class DyNTS_Mcp_Adapter {
56
68
  * @throws 501 `DyNTS-OPT-MIS` (the SDK is not installed) · `DyNTS-OPT-LDF` (installed, but failed to load)
57
69
  */
58
70
  private static loadSdk;
59
- /** The SDK server, created once with the handlers installed. */
71
+ /** The stdio SDK server, created once with the handlers installed. */
60
72
  private getServer;
73
+ /** A new SDK server with the tools/list + tools/call handlers installed (stdio: once · HTTP: per request). */
74
+ private createServer;
61
75
  /** A `tools/list` és a `tools/call` JSON-RPC handler bekötése a SDK-szerverre. */
62
76
  private installHandlers;
63
77
  /** Egy sikeres (vagy strukturált-hiba) handler-outcome → `CallToolResult` (text-JSON content). */
@@ -1 +1 @@
1
- {"version":3,"file":"dynts-mcp.adapter.d.ts","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/dynts-mcp.adapter.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EAEzB,MAAM,2CAA2C,CAAC;AAanD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,iBAAiB;IAE5B,6FAA6F;IAC7F,OAAO,CAAC,MAAM,CAAC,SAAS,CAetB;IAEF,yGAAyG;IACzG,OAAO,CAAC,MAAM,CAAuB;IAErC,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAElD,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,KAAK,CACwB;gBAElC,GAAG,EAAE,oBAAoB;IAKrC;;;SAGK;IACE,YAAY,CAAC,UAAU,EAAE,wBAAwB,GAAG,IAAI;IAI/D,8EAA8E;IACvE,sBAAsB,IAAI,MAAM,EAAE;IAIzC;;;SAGK;IACQ,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxC,qEAAqE;IACxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOnC;;;;SAIK;IACQ,gBAAgB,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsBxG;;;OAGG;mBACkB,OAAO;IAO5B,gEAAgE;IAChE,OAAO,CAAC,SAAS;IAYjB,kFAAkF;IAClF,OAAO,CAAC,eAAe;IAwBvB,kGAAkG;IAClG,OAAO,CAAC,YAAY;IAOpB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAiBnB,mGAAmG;IACnG,OAAO,CAAC,SAAS;CAOlB"}
1
+ {"version":3,"file":"dynts-mcp.adapter.d.ts","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/dynts-mcp.adapter.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAO5D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EAEzB,MAAM,2CAA2C,CAAC;AAcnD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,iBAAiB;IAE5B,6FAA6F;IAC7F,OAAO,CAAC,MAAM,CAAC,SAAS,CAiBtB;IAEF,yGAAyG;IACzG,OAAO,CAAC,MAAM,CAAuB;IAErC,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAElD,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,KAAK,CACwB;gBAElC,GAAG,EAAE,oBAAoB;IAKrC;;;SAGK;IACE,YAAY,CAAC,UAAU,EAAE,wBAAwB,GAAG,IAAI;IAI/D,8EAA8E;IACvE,sBAAsB,IAAI,MAAM,EAAE;IAIzC;;;SAGK;IACQ,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxC;;;;;;;;;OASG;IACU,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxG,qEAAqE;IACxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOnC;;;;SAIK;IACQ,gBAAgB,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsBxG;;;OAGG;mBACkB,OAAO;IAO5B,sEAAsE;IACtE,OAAO,CAAC,SAAS;IAQjB,8GAA8G;IAC9G,OAAO,CAAC,YAAY;IAWpB,kFAAkF;IAClF,OAAO,CAAC,eAAe;IAwBvB,kGAAkG;IAClG,OAAO,CAAC,YAAY;IAOpB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAiBnB,mGAAmG;IACnG,OAAO,CAAC,SAAS;CAOlB"}
@@ -34,7 +34,6 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.DyNTS_Mcp_Adapter = void 0;
37
- /* eslint-enable @futdevpro/dynamo/no-js-import */
38
37
  const optional_peer_util_1 = require("../../../_collections/optional-peer.util");
39
38
  const mcp_error_util_1 = require("../_collections/mcp-error.util");
40
39
  const mcp_method_not_found_error_1 = require("../_models/errors/mcp-method-not-found.error");
@@ -63,15 +62,17 @@ class DyNTS_Mcp_Adapter {
63
62
  /** Loads the SDK modules - a static seam, so a spec can simulate a missing or a fake SDK. */
64
63
  static importSdk = async () => {
65
64
  /* eslint-disable @futdevpro/dynamo/no-js-import */
66
- const [serverModule, stdioModule, typesModule] = await Promise.all([
65
+ const [serverModule, stdioModule, httpModule, typesModule] = await Promise.all([
67
66
  Promise.resolve().then(() => __importStar(require('@modelcontextprotocol/sdk/server/index.js'))),
68
67
  Promise.resolve().then(() => __importStar(require('@modelcontextprotocol/sdk/server/stdio.js'))),
68
+ Promise.resolve().then(() => __importStar(require('@modelcontextprotocol/sdk/server/streamableHttp.js'))),
69
69
  Promise.resolve().then(() => __importStar(require('@modelcontextprotocol/sdk/types.js'))),
70
70
  ]);
71
71
  /* eslint-enable @futdevpro/dynamo/no-js-import */
72
72
  return {
73
73
  Server: serverModule.Server,
74
74
  StdioServerTransport: stdioModule.StdioServerTransport,
75
+ StreamableHTTPServerTransport: httpModule.StreamableHTTPServerTransport,
75
76
  CallToolRequestSchema: typesModule.CallToolRequestSchema,
76
77
  ListToolsRequestSchema: typesModule.ListToolsRequestSchema,
77
78
  };
@@ -106,6 +107,30 @@ class DyNTS_Mcp_Adapter {
106
107
  const transport = new sdk.StdioServerTransport();
107
108
  await this.getServer(sdk).connect(transport);
108
109
  }
110
+ /**
111
+ * Serves ONE MCP Streamable-HTTP request (HP-DOPL MP-3.4, D-3, DMCP-003) — stateless: every request gets its own
112
+ * SDK server + transport (no session id, JSON responses instead of an SSE stream), both closed when the response
113
+ * closes. The tool registry is shared, so `tools/list` and `tools/call` behave exactly as on stdio.
114
+ * Authentication is NOT done here: the serving endpoint runs the consumer's preProcesses first
115
+ * (`DyNTS_McpHttpEndpoint_Util`).
116
+ * @param req - the incoming HTTP request
117
+ * @param res - the HTTP response the SDK writes
118
+ * @param body - the already parsed JSON-RPC body (e.g. `req.body` behind express.json)
119
+ */
120
+ async handleHttpRequest(req, res, body) {
121
+ const sdk = await DyNTS_Mcp_Adapter.loadSdk();
122
+ const server = this.createServer(sdk);
123
+ const transport = new sdk.StreamableHTTPServerTransport({
124
+ sessionIdGenerator: undefined, enableJsonResponse: true,
125
+ });
126
+ // stateless: the per-request server and transport live exactly as long as the response
127
+ res.on('close', () => {
128
+ void transport.close();
129
+ void server.close();
130
+ });
131
+ await server.connect(transport);
132
+ await transport.handleRequest(req, res, body);
133
+ }
109
134
  /** A szerver leállítása (graceful close — teszt-/shutdown-úthoz). */
110
135
  async close() {
111
136
  // no-op when no transport was started (the SDK server does not exist yet)
@@ -145,14 +170,19 @@ class DyNTS_Mcp_Adapter {
145
170
  importer: DyNTS_Mcp_Adapter.importSdk,
146
171
  });
147
172
  }
148
- /** The SDK server, created once with the handlers installed. */
173
+ /** The stdio SDK server, created once with the handlers installed. */
149
174
  getServer(sdk) {
150
175
  if (!this.server) {
151
- this.server = new sdk.Server({ name: this.serverInfo.name, version: this.serverInfo.version }, { capabilities: { tools: {} } });
152
- this.installHandlers(this.server, sdk);
176
+ this.server = this.createServer(sdk);
153
177
  }
154
178
  return this.server;
155
179
  }
180
+ /** A new SDK server with the tools/list + tools/call handlers installed (stdio: once · HTTP: per request). */
181
+ createServer(sdk) {
182
+ const server = new sdk.Server({ name: this.serverInfo.name, version: this.serverInfo.version }, { capabilities: { tools: {} } });
183
+ this.installHandlers(server, sdk);
184
+ return server;
185
+ }
156
186
  /** A `tools/list` és a `tools/call` JSON-RPC handler bekötése a SDK-szerverre. */
157
187
  installHandlers(server, sdk) {
158
188
  // tools/list — PONTOSAN a regisztrált (advertised) tool-okat hirdeti.
@@ -1 +1 @@
1
- {"version":3,"file":"dynts-mcp.adapter.js","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/dynts-mcp.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynts-mcp.adapter.js","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/dynts-mcp.adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.service-base.d.ts","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/mcp-server.service-base.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8BAAsB,4BAA4B;IAEhD,oGAAoG;IACpG,OAAO,CAAC,OAAO,CAAkC;IAE/C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,oBAAoB;IAExD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,wBAAwB,EAAE;IAEzD;;;;OAIG;IACI,KAAK,IAAI,iBAAiB;IAcjC;;;;OAIG;IACU,KAAK,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE;;;OAGG;IACI,sBAAsB,IAAI,MAAM,EAAE;IAMzC;;;;OAIG;IACU,QAAQ,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIhG,qEAAqE;IACxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnC;;;OAGG;YACW,cAAc;CAY/B"}
1
+ {"version":3,"file":"mcp-server.service-base.d.ts","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/mcp-server.service-base.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EAEzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8BAAsB,4BAA4B;IAEhD,oGAAoG;IACpG,OAAO,CAAC,OAAO,CAAkC;IAE/C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,oBAAoB;IAExD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,wBAAwB,EAAE;IAEzD;;;;OAIG;IACI,KAAK,IAAI,iBAAiB;IAcjC;;;;OAIG;IACU,KAAK,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE;;;OAGG;IACI,sBAAsB,IAAI,MAAM,EAAE;IAMzC;;;;OAIG;IACU,QAAQ,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIhG,qEAAqE;IACxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnC;;;OAGG;YACW,cAAc;CAsB/B"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DyNTS_Mcp_Server_ServiceBase = void 0;
4
4
  const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
+ const global_settings_const_1 = require("../../../_collections/global-settings.const");
5
6
  const dynts_mcp_adapter_1 = require("./dynts-mcp.adapter");
6
7
  /**
7
8
  * `DyNTS_Mcp_Server_ServiceBase` (BFR-AM-003) — a **domain-agnosztikus** MCP-szerver-base. Egy bedrock-réteg
@@ -89,6 +90,15 @@ class DyNTS_Mcp_Server_ServiceBase {
89
90
  case 'stdio':
90
91
  await adapter.startStdio();
91
92
  return;
93
+ case 'streamable-http':
94
+ // HP-DOPL MP-3.4: HTTP has nothing to start - the app route serves it (getHttpEndpoint)
95
+ throw new fsm_dynamo_1.DyFM_Error({
96
+ status: 400,
97
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-MCP-HTP`,
98
+ // not a prototype method on purpose: the export-compatibility spec pins the prototype of this base
99
+ message: 'the streamable-http transport is served by an endpoint, not started: add ' +
100
+ 'DyNTS_McpHttpEndpoint_Util.getEndpoint({ adapter: server.build(), preProcesses }) to a controller',
101
+ });
92
102
  default:
93
103
  // Exhaustiveness-guard: a `DyNTS_Mcp_TransportKind` bővülésekor itt fordítási hibát kapunk.
94
104
  throw new Error(`Unsupported MCP transport: '${transport}'.`);
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.service-base.js","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/mcp-server.service-base.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AAQjD,2DAAwD;AAExD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAsB,4BAA4B;IAEhD,oGAAoG;IAC5F,OAAO,GAA6B,IAAI,CAAC;IAa/C;;;;OAIG;IACI,KAAK;QACV,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QACD,MAAM,OAAO,GAAsB,IAAI,qCAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAE/E,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK,CAAC,OAAgC;QACjD,MAAM,SAAS,GAAY,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC;QACzD,MAAM,OAAO,GAAsB,IAAI,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,IAAI,GAAyB,IAAI,CAAC,aAAa,EAAE,CAAC;QAExD,qBAAQ,CAAC,QAAQ,CAAC,eAAe,SAAS,qBAAqB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK;cACtF,qBAAqB,OAAO,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5E,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACI,sBAAsB;QAC3B,OAAO,IAAI,CAAC,OAAO;YACjB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;YACvC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,QAAQ,CAAC,GAA0C;QAC9D,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,qEAAqE;IAC9D,KAAK,CAAC,KAAK;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc,CAAC,OAA0B,EAAE,SAAkB;QACzE,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;gBAE3B,OAAO;YAET;gBACE,4FAA4F;gBAC5F,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAmB,IAAI,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;CACJ;AA5FD,oEA4FC"}
1
+ {"version":3,"file":"mcp-server.service-base.js","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/mcp-server.service-base.ts"],"names":[],"mappings":";;;AAAA,sDAA6D;AAE7D,uFAAoF;AAQpF,2DAAwD;AAExD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAsB,4BAA4B;IAEhD,oGAAoG;IAC5F,OAAO,GAA6B,IAAI,CAAC;IAa/C;;;;OAIG;IACI,KAAK;QACV,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QACD,MAAM,OAAO,GAAsB,IAAI,qCAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAE/E,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK,CAAC,OAAgC;QACjD,MAAM,SAAS,GAA4B,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC;QACzE,MAAM,OAAO,GAAsB,IAAI,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,IAAI,GAAyB,IAAI,CAAC,aAAa,EAAE,CAAC;QAExD,qBAAQ,CAAC,QAAQ,CAAC,eAAe,SAAS,qBAAqB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK;cACtF,qBAAqB,OAAO,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5E,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACI,sBAAsB;QAC3B,OAAO,IAAI,CAAC,OAAO;YACjB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;YACvC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,QAAQ,CAAC,GAA0C;QAC9D,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,qEAAqE;IAC9D,KAAK,CAAC,KAAK;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc,CAAC,OAA0B,EAAE,SAAkC;QACzF,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;gBAE3B,OAAO;YAET,KAAK,iBAAiB;gBACpB,wFAAwF;gBACxF,MAAM,IAAI,uBAAU,CAAC;oBACnB,MAAM,EAAE,GAAG;oBACX,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;oBACvE,mGAAmG;oBACnG,OAAO,EAAE,2EAA2E;wBAClF,mGAAmG;iBACtG,CAAC,CAAC;YAEL;gBACE,4FAA4F;gBAC5F,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAmB,IAAI,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;CACJ;AAtGD,oEAsGC"}
@@ -13,6 +13,8 @@ export * from './_models/errors/mcp-invalid-params.error';
13
13
  export * from './_models/errors/mcp-method-not-found.error';
14
14
  export * from './_models/control-models/mcp-tool-params.control-model';
15
15
  export * from './_collections/mcp-error.util';
16
+ export * from './_collections/mcp-http-endpoint.util';
17
+ export * from './_collections/mcp-ref.util';
16
18
  export * from './_collections/mcp-tool-load.util';
17
19
  export * from './_services/dynts-mcp.adapter';
18
20
  export * from './_services/mcp-server.service-base';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/mcp/index.ts"],"names":[],"mappings":"AAQA,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AAGrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0DAA0D,CAAC;AAGzE,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,wDAAwD,CAAC;AAGvE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAGlD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/mcp/index.ts"],"names":[],"mappings":"AAQA,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AAGrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0DAA0D,CAAC;AAGzE,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,wDAAwD,CAAC;AAGvE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAGlD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC"}
@@ -25,6 +25,8 @@ tslib_1.__exportStar(require("./_models/errors/mcp-method-not-found.error"), exp
25
25
  tslib_1.__exportStar(require("./_models/control-models/mcp-tool-params.control-model"), exports);
26
26
  // COLLECTIONS
27
27
  tslib_1.__exportStar(require("./_collections/mcp-error.util"), exports);
28
+ tslib_1.__exportStar(require("./_collections/mcp-http-endpoint.util"), exports);
29
+ tslib_1.__exportStar(require("./_collections/mcp-ref.util"), exports);
28
30
  tslib_1.__exportStar(require("./_collections/mcp-tool-load.util"), exports);
29
31
  // SERVICES
30
32
  tslib_1.__exportStar(require("./_services/dynts-mcp.adapter"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/mcp/index.ts"],"names":[],"mappings":";AAEA,iGAAiG;AACjG,6FAA6F;AAC7F,4GAA4G;AAC5G,kGAAkG;;;AAElG,QAAQ;AACR,4EAAkD;AAClD,+EAAqD;AAErD,aAAa;AACb,mFAAyD;AACzD,wFAA8D;AAC9D,4FAAkE;AAClE,sFAA4D;AAC5D,mGAAyE;AAEzE,SAAS;AACT,0EAAgD;AAChD,8EAAoD;AACpD,+EAAqD;AACrD,8EAAoD;AACpD,oFAA0D;AAC1D,sFAA4D;AAE5D,iBAAiB;AACjB,iGAAuE;AAEvE,cAAc;AACd,wEAA8C;AAC9C,4EAAkD;AAElD,WAAW;AACX,wEAA8C;AAC9C,8EAAoD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/mcp/index.ts"],"names":[],"mappings":";AAEA,iGAAiG;AACjG,6FAA6F;AAC7F,4GAA4G;AAC5G,kGAAkG;;;AAElG,QAAQ;AACR,4EAAkD;AAClD,+EAAqD;AAErD,aAAa;AACb,mFAAyD;AACzD,wFAA8D;AAC9D,4FAAkE;AAClE,sFAA4D;AAC5D,mGAAyE;AAEzE,SAAS;AACT,0EAAgD;AAChD,8EAAoD;AACpD,+EAAqD;AACrD,8EAAoD;AACpD,oFAA0D;AAC1D,sFAA4D;AAE5D,iBAAiB;AACjB,iGAAuE;AAEvE,cAAc;AACd,wEAA8C;AAC9C,gFAAsD;AACtD,sEAA4C;AAC5C,4EAAkD;AAElD,WAAW;AACX,wEAA8C;AAC9C,8EAAoD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/nts-dynamo",
3
- "version": "01.15.296",
3
+ "version": "01.15.298",
4
4
  "description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
5
5
  "DyBu_settings": {
6
6
  "packageType": "server-package",