@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.
- package/build/_modules/mcp/_collections/mcp-http-endpoint.util.d.ts +36 -0
- package/build/_modules/mcp/_collections/mcp-http-endpoint.util.d.ts.map +1 -0
- package/build/_modules/mcp/_collections/mcp-http-endpoint.util.js +47 -0
- package/build/_modules/mcp/_collections/mcp-http-endpoint.util.js.map +1 -0
- package/build/_modules/mcp/_collections/mcp-ref.util.d.ts +74 -0
- package/build/_modules/mcp/_collections/mcp-ref.util.d.ts.map +1 -0
- package/build/_modules/mcp/_collections/mcp-ref.util.js +115 -0
- package/build/_modules/mcp/_collections/mcp-ref.util.js.map +1 -0
- package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts +1 -1
- package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts.map +1 -1
- package/build/_modules/mcp/_models/interfaces/mcp-settings.interface.d.ts +2 -0
- package/build/_modules/mcp/_models/interfaces/mcp-settings.interface.d.ts.map +1 -1
- package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts +15 -1
- package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts.map +1 -1
- package/build/_modules/mcp/_services/dynts-mcp.adapter.js +35 -5
- package/build/_modules/mcp/_services/dynts-mcp.adapter.js.map +1 -1
- package/build/_modules/mcp/_services/mcp-server.service-base.d.ts.map +1 -1
- package/build/_modules/mcp/_services/mcp-server.service-base.js +10 -0
- package/build/_modules/mcp/_services/mcp-server.service-base.js.map +1 -1
- package/build/_modules/mcp/index.d.ts +2 -0
- package/build/_modules/mcp/index.d.ts.map +1 -1
- package/build/_modules/mcp/index.js +2 -0
- package/build/_modules/mcp/index.js.map +1 -1
- 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;
|
|
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":"
|
|
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 =
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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":"
|
|
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,
|
|
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.
|
|
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",
|