mcp-creatio 0.4.0 → 0.5.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 +252 -212
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -11
- package/dist/cli.js.map +1 -1
- package/dist/creatio/auth/auth.d.ts +2 -0
- package/dist/creatio/auth/auth.d.ts.map +1 -1
- package/dist/creatio/auth/auth.js.map +1 -1
- package/dist/creatio/auth/providers/base-provider.d.ts +1 -0
- package/dist/creatio/auth/providers/base-provider.d.ts.map +1 -1
- package/dist/creatio/auth/providers/base-provider.js +3 -0
- package/dist/creatio/auth/providers/base-provider.js.map +1 -1
- package/dist/creatio/auth/providers/oauth2-code-provider.d.ts +3 -0
- package/dist/creatio/auth/providers/oauth2-code-provider.d.ts.map +1 -1
- package/dist/creatio/auth/providers/oauth2-code-provider.js +30 -24
- package/dist/creatio/auth/providers/oauth2-code-provider.js.map +1 -1
- package/dist/creatio/providers/configuration-provider.d.ts +3 -2
- package/dist/creatio/providers/configuration-provider.d.ts.map +1 -1
- package/dist/creatio/providers/crud-provider.d.ts +2 -0
- package/dist/creatio/providers/crud-provider.d.ts.map +1 -1
- package/dist/creatio/services/configuration-service-provider.d.ts.map +1 -1
- package/dist/creatio/services/configuration-service-provider.js +11 -3
- package/dist/creatio/services/configuration-service-provider.js.map +1 -1
- package/dist/creatio/services/http-client.d.ts.map +1 -1
- package/dist/creatio/services/http-client.js +0 -1
- package/dist/creatio/services/http-client.js.map +1 -1
- package/dist/creatio/services/metadata-store.d.ts +5 -0
- package/dist/creatio/services/metadata-store.d.ts.map +1 -1
- package/dist/creatio/services/metadata-store.js +18 -6
- package/dist/creatio/services/metadata-store.js.map +1 -1
- package/dist/creatio/services/odata-crud-provider.d.ts +3 -1
- package/dist/creatio/services/odata-crud-provider.d.ts.map +1 -1
- package/dist/creatio/services/odata-crud-provider.js +31 -8
- package/dist/creatio/services/odata-crud-provider.js.map +1 -1
- package/dist/server/http/creatio-oauth-handlers.d.ts +0 -1
- package/dist/server/http/creatio-oauth-handlers.d.ts.map +1 -1
- package/dist/server/http/creatio-oauth-handlers.js +30 -23
- package/dist/server/http/creatio-oauth-handlers.js.map +1 -1
- package/dist/server/http/httpServer.d.ts +9 -0
- package/dist/server/http/httpServer.d.ts.map +1 -1
- package/dist/server/http/httpServer.js +34 -11
- package/dist/server/http/httpServer.js.map +1 -1
- package/dist/server/http/mcp-handlers.d.ts.map +1 -1
- package/dist/server/http/mcp-handlers.js +4 -1
- package/dist/server/http/mcp-handlers.js.map +1 -1
- package/dist/server/http/mcp-oauth-handlers.d.ts.map +1 -1
- package/dist/server/http/mcp-oauth-handlers.js +18 -6
- package/dist/server/http/mcp-oauth-handlers.js.map +1 -1
- package/dist/server/http/middleware.d.ts +7 -0
- package/dist/server/http/middleware.d.ts.map +1 -1
- package/dist/server/http/middleware.js +23 -0
- package/dist/server/http/middleware.js.map +1 -1
- package/dist/server/http/rate-limiter.d.ts +24 -0
- package/dist/server/http/rate-limiter.d.ts.map +1 -0
- package/dist/server/http/rate-limiter.js +42 -0
- package/dist/server/http/rate-limiter.js.map +1 -0
- package/dist/server/mcp/creatio-rest.d.ts +44 -0
- package/dist/server/mcp/creatio-rest.d.ts.map +1 -0
- package/dist/server/mcp/creatio-rest.js +26 -0
- package/dist/server/mcp/creatio-rest.js.map +1 -0
- package/dist/server/mcp/crtmcp/crt-mcp-client.d.ts +55 -0
- package/dist/server/mcp/crtmcp/crt-mcp-client.d.ts.map +1 -0
- package/dist/server/mcp/crtmcp/crt-mcp-client.js +67 -0
- package/dist/server/mcp/crtmcp/crt-mcp-client.js.map +1 -0
- package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.d.ts +20 -0
- package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.d.ts.map +1 -0
- package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.js +74 -0
- package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.js.map +1 -0
- package/dist/server/mcp/dataforge/dataforge-client.d.ts +64 -0
- package/dist/server/mcp/dataforge/dataforge-client.d.ts.map +1 -0
- package/dist/server/mcp/dataforge/dataforge-client.js +130 -0
- package/dist/server/mcp/dataforge/dataforge-client.js.map +1 -0
- package/dist/server/mcp/dataforge/dataforge-tool-preparer.d.ts +17 -0
- package/dist/server/mcp/dataforge/dataforge-tool-preparer.d.ts.map +1 -0
- package/dist/server/mcp/dataforge/dataforge-tool-preparer.js +42 -0
- package/dist/server/mcp/dataforge/dataforge-tool-preparer.js.map +1 -0
- package/dist/server/mcp/filters.d.ts.map +1 -1
- package/dist/server/mcp/filters.js +20 -4
- package/dist/server/mcp/filters.js.map +1 -1
- package/dist/server/mcp/globalsearch/globalsearch-client.d.ts +50 -0
- package/dist/server/mcp/globalsearch/globalsearch-client.d.ts.map +1 -0
- package/dist/server/mcp/globalsearch/globalsearch-client.js +118 -0
- package/dist/server/mcp/globalsearch/globalsearch-client.js.map +1 -0
- package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.d.ts +16 -0
- package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.d.ts.map +1 -0
- package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.js +34 -0
- package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.js.map +1 -0
- package/dist/server/mcp/json-schema-to-zod.d.ts +3 -0
- package/dist/server/mcp/json-schema-to-zod.d.ts.map +1 -0
- package/dist/server/mcp/json-schema-to-zod.js +54 -0
- package/dist/server/mcp/json-schema-to-zod.js.map +1 -0
- package/dist/server/mcp/server.d.ts +18 -0
- package/dist/server/mcp/server.d.ts.map +1 -1
- package/dist/server/mcp/server.js +93 -25
- package/dist/server/mcp/server.js.map +1 -1
- package/dist/server/mcp/tool-preparer.d.ts +26 -0
- package/dist/server/mcp/tool-preparer.d.ts.map +1 -0
- package/dist/server/mcp/tool-preparer.js +11 -0
- package/dist/server/mcp/tool-preparer.js.map +1 -0
- package/dist/server/mcp/tools-data.d.ts +69 -10
- package/dist/server/mcp/tools-data.d.ts.map +1 -1
- package/dist/server/mcp/tools-data.js +222 -32
- package/dist/server/mcp/tools-data.js.map +1 -1
- package/dist/server/oauth/oauth-server.d.ts +0 -1
- package/dist/server/oauth/oauth-server.d.ts.map +1 -1
- package/dist/server/oauth/oauth-server.js +11 -21
- package/dist/server/oauth/oauth-server.js.map +1 -1
- package/dist/server/oauth/storage.d.ts +0 -2
- package/dist/server/oauth/storage.d.ts.map +1 -1
- package/dist/server/oauth/storage.js +0 -6
- package/dist/server/oauth/storage.js.map +1 -1
- package/dist/server/oauth/validators.d.ts +6 -0
- package/dist/server/oauth/validators.d.ts.map +1 -1
- package/dist/server/oauth/validators.js +28 -0
- package/dist/server/oauth/validators.js.map +1 -1
- package/dist/services/session-context.d.ts +8 -7
- package/dist/services/session-context.d.ts.map +1 -1
- package/dist/services/session-context.js +7 -27
- package/dist/services/session-context.js.map +1 -1
- package/package.json +18 -9
- package/.dockerignore +0 -12
- package/.editorconfig +0 -14
- package/.eslintrc.cjs +0 -18
- package/.gitattributes +0 -8
- package/.github/workflows/docker-publish.yml +0 -50
- package/.prettierignore +0 -3
- package/.prettierrc +0 -9
- package/.vscode/launch.json +0 -23
- package/.vscode/mcp.json +0 -13
- package/.vscode/settings.json +0 -16
- package/Agent.md +0 -190
- package/Debug.md +0 -32
- package/Dockerfile +0 -23
- package/docs/coding-style.md +0 -30
- package/eslint.config.cjs +0 -95
- package/src/cli.ts +0 -162
- package/src/config-builder.ts +0 -76
- package/src/consts.ts +0 -3
- package/src/creatio/auth/auth-manager.ts +0 -27
- package/src/creatio/auth/auth.ts +0 -31
- package/src/creatio/auth/index.ts +0 -3
- package/src/creatio/auth/providers/base-oauth2-provider.ts +0 -62
- package/src/creatio/auth/providers/base-provider.ts +0 -42
- package/src/creatio/auth/providers/index.ts +0 -4
- package/src/creatio/auth/providers/legacy-provider.ts +0 -70
- package/src/creatio/auth/providers/oauth2-code-provider.ts +0 -252
- package/src/creatio/auth/providers/oauth2-provider.ts +0 -91
- package/src/creatio/auth/providers/type.ts +0 -5
- package/src/creatio/client-config.ts +0 -34
- package/src/creatio/engines/admin-operation/admin-operation-engine.ts +0 -44
- package/src/creatio/engines/configuration/configuration-engine.ts +0 -26
- package/src/creatio/engines/crud/crud-engine.ts +0 -47
- package/src/creatio/engines/engine-manager.ts +0 -157
- package/src/creatio/engines/engine-registry.ts +0 -39
- package/src/creatio/engines/engine.ts +0 -3
- package/src/creatio/engines/feature/feature-engine.ts +0 -20
- package/src/creatio/engines/index.ts +0 -10
- package/src/creatio/engines/process/process-engine.ts +0 -20
- package/src/creatio/engines/sys-settings/sys-settings-engine.ts +0 -41
- package/src/creatio/engines/user/user-engine.ts +0 -20
- package/src/creatio/index.ts +0 -6
- package/src/creatio/provider-context.ts +0 -21
- package/src/creatio/providers/admin-operation-provider.ts +0 -34
- package/src/creatio/providers/configuration-provider.ts +0 -22
- package/src/creatio/providers/crud-provider.ts +0 -45
- package/src/creatio/providers/feature-provider.ts +0 -10
- package/src/creatio/providers/index.ts +0 -7
- package/src/creatio/providers/process-provider.ts +0 -15
- package/src/creatio/providers/sys-settings-provider.ts +0 -63
- package/src/creatio/providers/user-provider.ts +0 -12
- package/src/creatio/services/admin-operation-service-provider.ts +0 -115
- package/src/creatio/services/configuration-service-provider.ts +0 -127
- package/src/creatio/services/creatio-service-context.ts +0 -55
- package/src/creatio/services/feature-service-provider.ts +0 -60
- package/src/creatio/services/http-client.ts +0 -174
- package/src/creatio/services/index.ts +0 -10
- package/src/creatio/services/metadata-store.ts +0 -181
- package/src/creatio/services/odata-crud-provider.ts +0 -210
- package/src/creatio/services/process-service-provider.ts +0 -76
- package/src/creatio/services/sys-settings-service-provider.ts +0 -192
- package/src/creatio/services/user-info-provider.ts +0 -41
- package/src/index.ts +0 -44
- package/src/log.ts +0 -183
- package/src/server/http/creatio-oauth-handlers.ts +0 -146
- package/src/server/http/httpServer.ts +0 -150
- package/src/server/http/index.ts +0 -5
- package/src/server/http/mcp-handlers.ts +0 -92
- package/src/server/http/mcp-oauth-handlers.ts +0 -108
- package/src/server/http/middleware.ts +0 -91
- package/src/server/index.ts +0 -2
- package/src/server/mcp/filters.ts +0 -97
- package/src/server/mcp/index.ts +0 -1
- package/src/server/mcp/prompts-data.ts +0 -1292
- package/src/server/mcp/server.ts +0 -442
- package/src/server/mcp/tools-data.ts +0 -748
- package/src/server/oauth/client-manager.ts +0 -47
- package/src/server/oauth/index.ts +0 -6
- package/src/server/oauth/oauth-server.ts +0 -185
- package/src/server/oauth/storage.ts +0 -106
- package/src/server/oauth/token-manager.ts +0 -80
- package/src/server/oauth/types.ts +0 -55
- package/src/server/oauth/validators.ts +0 -56
- package/src/services/index.ts +0 -2
- package/src/services/session-context.ts +0 -232
- package/src/services/token-refresh-scheduler.ts +0 -68
- package/src/types/index.ts +0 -1
- package/src/types/network.ts +0 -7
- package/src/utils/context.ts +0 -49
- package/src/utils/env.ts +0 -12
- package/src/utils/index.ts +0 -5
- package/src/utils/mcp.ts +0 -8
- package/src/utils/network.ts +0 -65
- package/src/utils/pkce.ts +0 -39
- package/src/version.ts +0 -15
- package/tsconfig.json +0 -28
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ConfigurationCaller, SysSettingReader } from '../creatio-rest';
|
|
2
|
+
/**
|
|
3
|
+
* Global Search access layer.
|
|
4
|
+
*
|
|
5
|
+
* Single responsibility: call the Creatio-hosted `GlobalSearchService` (which
|
|
6
|
+
* proxies Elasticsearch) and expose an availability probe. Knows nothing about
|
|
7
|
+
* MCP tool registration.
|
|
8
|
+
*
|
|
9
|
+
* `GlobalSearchService.Search` uses `[WebInvoke(BodyStyle = Wrapped)]` with
|
|
10
|
+
* several primitive parameters, so the request body is a FLAT object with one
|
|
11
|
+
* top-level key per parameter (unlike DataForge's single wrapped `request`).
|
|
12
|
+
*/
|
|
13
|
+
export interface GlobalSearchQuery {
|
|
14
|
+
/** Free-text search string. */
|
|
15
|
+
query: string;
|
|
16
|
+
/** Optional comma-separated entity schema names to restrict the search to. */
|
|
17
|
+
type?: string | undefined;
|
|
18
|
+
/** Optional current section entity name (UI context). */
|
|
19
|
+
sectionEntityName?: string | undefined;
|
|
20
|
+
/** Max records to return. */
|
|
21
|
+
recordCount?: number | undefined;
|
|
22
|
+
/** Pagination offset. */
|
|
23
|
+
from?: number | undefined;
|
|
24
|
+
}
|
|
25
|
+
export declare class GlobalSearchClient {
|
|
26
|
+
private readonly _configuration;
|
|
27
|
+
private readonly _sysSettings;
|
|
28
|
+
constructor(configuration: ConfigurationCaller, sysSettings: SysSettingReader);
|
|
29
|
+
/**
|
|
30
|
+
* Whether Global Search is configured on this environment. Gated on a non-empty
|
|
31
|
+
* `GlobalSearchUrl`. Note: the platform additionally requires the `GlobalSearch_V2`
|
|
32
|
+
* feature; a configured URL is the cheap operator-facing signal used to decide
|
|
33
|
+
* whether to expose the tool. Probe failures degrade to "disabled".
|
|
34
|
+
*/
|
|
35
|
+
isEnabled(): Promise<boolean>;
|
|
36
|
+
/**
|
|
37
|
+
* Run a global search and return a compact, UI-like result: per match the
|
|
38
|
+
* entity, record id, a display title, and the highlighted `matched` columns —
|
|
39
|
+
* plus `total`/`nextFrom` for paging. (The raw service returns every indexed
|
|
40
|
+
* column of every record as a stringified `SearchResult`; that is far too large
|
|
41
|
+
* to hand to an LLM, so we parse and project it. Use `read` with the id for the
|
|
42
|
+
* full record.)
|
|
43
|
+
*/
|
|
44
|
+
search(q: GlobalSearchQuery): Promise<unknown>;
|
|
45
|
+
/** Parse the stringified `SearchResult` envelope and project it to a compact shape. */
|
|
46
|
+
private _project;
|
|
47
|
+
/** Best-effort human title from a record's column values (string or `{ displayValue }`). */
|
|
48
|
+
private _displayName;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=globalsearch-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalsearch-client.d.ts","sourceRoot":"","sources":["../../../../src/server/mcp/globalsearch/globalsearch-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAsB,MAAM,iBAAiB,CAAC;AAE5F;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,iBAAiB;IACjC,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAQD,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;gBAEpC,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB;IAK7E;;;;;OAKG;IACU,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAU1C;;;;;;;OAOG;IACU,MAAM,CAAC,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB3D,uFAAuF;IACvF,OAAO,CAAC,QAAQ;IAoChB,4FAA4F;IAC5F,OAAO,CAAC,YAAY;CAmBpB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GlobalSearchClient = void 0;
|
|
7
|
+
const log_1 = __importDefault(require("../../../log"));
|
|
8
|
+
const creatio_rest_1 = require("../creatio-rest");
|
|
9
|
+
const SEARCH_SERVICE = 'GlobalSearchService';
|
|
10
|
+
// Either URL being set is the operator-facing signal that Global Search is wired;
|
|
11
|
+
// `GlobalSearchUrl` (the Elasticsearch endpoint) is the core requirement.
|
|
12
|
+
const SEARCH_URL_SETTING = 'GlobalSearchUrl';
|
|
13
|
+
const DEFAULT_RECORD_COUNT = 15;
|
|
14
|
+
class GlobalSearchClient {
|
|
15
|
+
_configuration;
|
|
16
|
+
_sysSettings;
|
|
17
|
+
constructor(configuration, sysSettings) {
|
|
18
|
+
this._configuration = configuration;
|
|
19
|
+
this._sysSettings = sysSettings;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Whether Global Search is configured on this environment. Gated on a non-empty
|
|
23
|
+
* `GlobalSearchUrl`. Note: the platform additionally requires the `GlobalSearch_V2`
|
|
24
|
+
* feature; a configured URL is the cheap operator-facing signal used to decide
|
|
25
|
+
* whether to expose the tool. Probe failures degrade to "disabled".
|
|
26
|
+
*/
|
|
27
|
+
async isEnabled() {
|
|
28
|
+
try {
|
|
29
|
+
const response = await this._sysSettings.queryValues([SEARCH_URL_SETTING]);
|
|
30
|
+
return (0, creatio_rest_1.hasNonEmptySetting)(response, SEARCH_URL_SETTING);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
log_1.default.warn('globalsearch.probe.failed', { error: String(err) });
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Run a global search and return a compact, UI-like result: per match the
|
|
39
|
+
* entity, record id, a display title, and the highlighted `matched` columns —
|
|
40
|
+
* plus `total`/`nextFrom` for paging. (The raw service returns every indexed
|
|
41
|
+
* column of every record as a stringified `SearchResult`; that is far too large
|
|
42
|
+
* to hand to an LLM, so we parse and project it. Use `read` with the id for the
|
|
43
|
+
* full record.)
|
|
44
|
+
*/
|
|
45
|
+
async search(q) {
|
|
46
|
+
// `GlobalSearchService.Search(queryString, sectionEntityName, recordCount, type="", from=0)`
|
|
47
|
+
// — the first three parameters have no defaults, so the WCF Wrapped body MUST
|
|
48
|
+
// include them or binding fails with HTTP 400. `type` is optional; only send it
|
|
49
|
+
// when filtering, mirroring the UI call.
|
|
50
|
+
const body = {
|
|
51
|
+
queryString: q.query,
|
|
52
|
+
sectionEntityName: q.sectionEntityName ?? '',
|
|
53
|
+
recordCount: q.recordCount ?? DEFAULT_RECORD_COUNT,
|
|
54
|
+
from: q.from ?? 0,
|
|
55
|
+
};
|
|
56
|
+
if (q.type) {
|
|
57
|
+
body.type = q.type;
|
|
58
|
+
}
|
|
59
|
+
const response = await this._configuration.call({
|
|
60
|
+
service: SEARCH_SERVICE,
|
|
61
|
+
method: 'Search',
|
|
62
|
+
httpMethod: 'POST',
|
|
63
|
+
body,
|
|
64
|
+
});
|
|
65
|
+
return this._project(response.body);
|
|
66
|
+
}
|
|
67
|
+
/** Parse the stringified `SearchResult` envelope and project it to a compact shape. */
|
|
68
|
+
_project(body) {
|
|
69
|
+
const raw = body?.SearchResult;
|
|
70
|
+
let parsed = raw;
|
|
71
|
+
if (typeof raw === 'string') {
|
|
72
|
+
try {
|
|
73
|
+
parsed = JSON.parse(raw);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return body;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const p = parsed;
|
|
80
|
+
if (!p || !Array.isArray(p.data)) {
|
|
81
|
+
return parsed ?? body;
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
success: p.success,
|
|
85
|
+
total: p.total,
|
|
86
|
+
nextFrom: p.nextFrom,
|
|
87
|
+
took: p.took,
|
|
88
|
+
errorInfo: p.errorInfo ?? null,
|
|
89
|
+
results: p.data.map((r) => ({
|
|
90
|
+
entityName: r.entityName,
|
|
91
|
+
id: r.id,
|
|
92
|
+
title: this._displayName(r.columnValues),
|
|
93
|
+
matched: r.foundColumns,
|
|
94
|
+
})),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/** Best-effort human title from a record's column values (string or `{ displayValue }`). */
|
|
98
|
+
_displayName(columnValues) {
|
|
99
|
+
if (!columnValues || typeof columnValues !== 'object') {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
const cv = columnValues;
|
|
103
|
+
for (const key of ['Name', 'Title', 'LeadName', 'BpmName', 'Subject', 'Number', 'Email']) {
|
|
104
|
+
const v = cv[key];
|
|
105
|
+
const s = typeof v === 'string'
|
|
106
|
+
? v
|
|
107
|
+
: v && typeof v === 'object'
|
|
108
|
+
? v.displayValue
|
|
109
|
+
: undefined;
|
|
110
|
+
if (typeof s === 'string' && s.trim().length > 0) {
|
|
111
|
+
return s.trim();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.GlobalSearchClient = GlobalSearchClient;
|
|
118
|
+
//# sourceMappingURL=globalsearch-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalsearch-client.js","sourceRoot":"","sources":["../../../../src/server/mcp/globalsearch/globalsearch-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ToolPreparer, ToolRegistrar } from '../tool-preparer';
|
|
2
|
+
import { GlobalSearchClient } from './globalsearch-client';
|
|
3
|
+
/** Stable capability key. */
|
|
4
|
+
export declare const GLOBAL_SEARCH_CAPABILITY = "global-search";
|
|
5
|
+
/**
|
|
6
|
+
* Registers the `global-search` tool, but only when Global Search is enabled on
|
|
7
|
+
* the environment. Encapsulates everything Global-Search-specific so the Server
|
|
8
|
+
* stays agnostic (Open/Closed: adding capabilities = adding preparers).
|
|
9
|
+
*/
|
|
10
|
+
export declare class GlobalSearchToolPreparer implements ToolPreparer {
|
|
11
|
+
readonly name = "global-search";
|
|
12
|
+
private readonly _client;
|
|
13
|
+
constructor(client: GlobalSearchClient);
|
|
14
|
+
prepare(registrar: ToolRegistrar): Promise<boolean>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=globalsearch-tool-preparer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalsearch-tool-preparer.d.ts","sourceRoot":"","sources":["../../../../src/server/mcp/globalsearch/globalsearch-tool-preparer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,6BAA6B;AAC7B,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AAExD;;;;GAIG;AACH,qBAAa,wBAAyB,YAAW,YAAY;IAC5D,SAAgB,IAAI,mBAA4B;IAEhD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAEjC,MAAM,EAAE,kBAAkB;IAIzB,OAAO,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAmBhE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GlobalSearchToolPreparer = exports.GLOBAL_SEARCH_CAPABILITY = void 0;
|
|
4
|
+
const utils_1 = require("../../../utils");
|
|
5
|
+
const tools_data_1 = require("../tools-data");
|
|
6
|
+
/** Stable capability key. */
|
|
7
|
+
exports.GLOBAL_SEARCH_CAPABILITY = 'global-search';
|
|
8
|
+
/**
|
|
9
|
+
* Registers the `global-search` tool, but only when Global Search is enabled on
|
|
10
|
+
* the environment. Encapsulates everything Global-Search-specific so the Server
|
|
11
|
+
* stays agnostic (Open/Closed: adding capabilities = adding preparers).
|
|
12
|
+
*/
|
|
13
|
+
class GlobalSearchToolPreparer {
|
|
14
|
+
name = exports.GLOBAL_SEARCH_CAPABILITY;
|
|
15
|
+
_client;
|
|
16
|
+
constructor(client) {
|
|
17
|
+
this._client = client;
|
|
18
|
+
}
|
|
19
|
+
async prepare(registrar) {
|
|
20
|
+
const enabled = await this._client.isEnabled();
|
|
21
|
+
if (!enabled) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
registrar.register('global-search', tools_data_1.globalSearchDescriptor, (0, utils_1.withValidation)(tools_data_1.globalSearchInput, ({ query, entities, limit, from }) => this._client.search({
|
|
25
|
+
query,
|
|
26
|
+
type: entities && entities.length > 0 ? entities.join(',') : undefined,
|
|
27
|
+
recordCount: limit,
|
|
28
|
+
from,
|
|
29
|
+
})));
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.GlobalSearchToolPreparer = GlobalSearchToolPreparer;
|
|
34
|
+
//# sourceMappingURL=globalsearch-tool-preparer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalsearch-tool-preparer.js","sourceRoot":"","sources":["../../../../src/server/mcp/globalsearch/globalsearch-tool-preparer.ts"],"names":[],"mappings":";;;AAAA,0CAAgD;AAEhD,8CAA0E;AAI1E,6BAA6B;AAChB,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAExD;;;;GAIG;AACH,MAAa,wBAAwB;IACpB,IAAI,GAAG,gCAAwB,CAAC;IAE/B,OAAO,CAAqB;IAE7C,YAAY,MAA0B;QACrC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,SAAwB;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACd,CAAC;QACD,SAAS,CAAC,QAAQ,CACjB,eAAe,EACf,mCAAsB,EACtB,IAAA,sBAAc,EAAC,8BAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CACtE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACnB,KAAK;YACL,IAAI,EAAE,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;YACtE,WAAW,EAAE,KAAK;YAClB,IAAI;SACJ,CAAC,CACF,CACD,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AA5BD,4DA4BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schema-to-zod.d.ts","sourceRoot":"","sources":["../../../src/server/mcp/json-schema-to-zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAUlF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsonSchemaToZodShape = jsonSchemaToZodShape;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
function jsonSchemaToZodShape(schema) {
|
|
6
|
+
const node = asNode(schema);
|
|
7
|
+
const properties = isRecord(node.properties) ? node.properties : {};
|
|
8
|
+
const required = new Set(Array.isArray(node.required) ? node.required : []);
|
|
9
|
+
const shape = {};
|
|
10
|
+
for (const [key, raw] of Object.entries(properties)) {
|
|
11
|
+
const zodType = nodeToZod(raw);
|
|
12
|
+
shape[key] = required.has(key) ? zodType : zodType.optional();
|
|
13
|
+
}
|
|
14
|
+
return shape;
|
|
15
|
+
}
|
|
16
|
+
function nodeToZod(raw) {
|
|
17
|
+
const node = asNode(raw);
|
|
18
|
+
let zodType = baseType(node);
|
|
19
|
+
if (typeof node.description === 'string' && node.description.length > 0) {
|
|
20
|
+
zodType = zodType.describe(node.description);
|
|
21
|
+
}
|
|
22
|
+
return zodType;
|
|
23
|
+
}
|
|
24
|
+
function baseType(node) {
|
|
25
|
+
if (Array.isArray(node.enum) && node.enum.length > 0) {
|
|
26
|
+
const literals = node.enum.map((value) => zod_1.z.literal(value));
|
|
27
|
+
return literals.length === 1
|
|
28
|
+
? literals[0]
|
|
29
|
+
: zod_1.z.union(literals);
|
|
30
|
+
}
|
|
31
|
+
switch (node.type) {
|
|
32
|
+
case 'string':
|
|
33
|
+
return zod_1.z.string();
|
|
34
|
+
case 'integer':
|
|
35
|
+
return zod_1.z.number().int();
|
|
36
|
+
case 'number':
|
|
37
|
+
return zod_1.z.number();
|
|
38
|
+
case 'boolean':
|
|
39
|
+
return zod_1.z.boolean();
|
|
40
|
+
case 'array':
|
|
41
|
+
return zod_1.z.array(node.items === undefined ? zod_1.z.any() : nodeToZod(node.items));
|
|
42
|
+
case 'object':
|
|
43
|
+
return zod_1.z.record(zod_1.z.string(), zod_1.z.any());
|
|
44
|
+
default:
|
|
45
|
+
return zod_1.z.any();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function asNode(value) {
|
|
49
|
+
return isRecord(value) ? value : {};
|
|
50
|
+
}
|
|
51
|
+
function isRecord(value) {
|
|
52
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=json-schema-to-zod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schema-to-zod.js","sourceRoot":"","sources":["../../../src/server/mcp/json-schema-to-zod.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,12 @@ export declare class Server {
|
|
|
11
11
|
private _readonly;
|
|
12
12
|
private _serverName;
|
|
13
13
|
private _serverVersion;
|
|
14
|
+
private readonly _dataForge;
|
|
15
|
+
private readonly _dataForgePreparer;
|
|
16
|
+
private readonly _globalSearchPreparer;
|
|
17
|
+
private readonly _publishedToolsPreparer;
|
|
18
|
+
private readonly _preparers;
|
|
19
|
+
private readonly _capabilities;
|
|
14
20
|
get authProvider(): ICreatioAuthProvider;
|
|
15
21
|
constructor(engines: CreatioEngineManager, config: ServerConfig);
|
|
16
22
|
private _registerData;
|
|
@@ -18,6 +24,18 @@ export declare class Server {
|
|
|
18
24
|
private _normalizeToToolHandler;
|
|
19
25
|
private _registerAsTool;
|
|
20
26
|
private _registerPrompts;
|
|
27
|
+
private _textResult;
|
|
28
|
+
/** Adapter exposing handler registration to {@link ToolPreparer}s. */
|
|
29
|
+
private _toolRegistrar;
|
|
30
|
+
/**
|
|
31
|
+
* Run every optional-capability preparer once: probe the environment and let
|
|
32
|
+
* each register its tools only when available. A failing preparer is isolated
|
|
33
|
+
* and recorded as disabled. Invoked from {@link startMcp} after the core tools
|
|
34
|
+
* are in place.
|
|
35
|
+
*/
|
|
36
|
+
private _prepareTools;
|
|
37
|
+
/** Whether DataForge was probed as enabled at startup. */
|
|
38
|
+
private _isDataForgeReady;
|
|
21
39
|
private _registerClientTools;
|
|
22
40
|
startMcp(): Promise<McpServer>;
|
|
23
41
|
stopMcp(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EACN,oBAAoB,EACpB,oBAAoB,EAEpB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EACN,oBAAoB,EACpB,oBAAoB,EAEpB,MAAM,eAAe,CAAC;AA0DvB,MAAM,WAAW,YAAY;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,MAAM;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,cAAc,CAAW;IAIjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA2B;IACjE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA+B;IACvE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D,IAAW,YAAY,IAAI,oBAAoB,CAE9C;gBAEW,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY;IAoB/D,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,8BAA8B;IAQtC,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,WAAW;IAWnB,sEAAsE;IACtE,OAAO,CAAC,cAAc;IAOtB;;;;;OAKG;YACW,aAAa;IAc3B,0DAA0D;IAC1D,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,oBAAoB;IAsQf,QAAQ;IAqBR,OAAO;CAWpB"}
|
|
@@ -8,9 +8,19 @@ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
|
8
8
|
const log_1 = __importDefault(require("../../log"));
|
|
9
9
|
const utils_1 = require("../../utils");
|
|
10
10
|
const version_1 = require("../../version");
|
|
11
|
+
const crt_mcp_client_1 = require("./crtmcp/crt-mcp-client");
|
|
12
|
+
const crt_mcp_tool_preparer_1 = require("./crtmcp/crt-mcp-tool-preparer");
|
|
13
|
+
const dataforge_client_1 = require("./dataforge/dataforge-client");
|
|
14
|
+
const dataforge_tool_preparer_1 = require("./dataforge/dataforge-tool-preparer");
|
|
15
|
+
const globalsearch_client_1 = require("./globalsearch/globalsearch-client");
|
|
16
|
+
const globalsearch_tool_preparer_1 = require("./globalsearch/globalsearch-tool-preparer");
|
|
11
17
|
const filters_1 = require("./filters");
|
|
12
18
|
const prompts_data_1 = require("./prompts-data");
|
|
13
19
|
const tools_data_1 = require("./tools-data");
|
|
20
|
+
/** Default page size for `read` when the caller omits `top`, so we never dump an
|
|
21
|
+
* unbounded result set into the model. Explicit `top` (incl. `0` for count-only)
|
|
22
|
+
* is always respected; paginate further with `skip`. */
|
|
23
|
+
const DEFAULT_READ_TOP = 50;
|
|
14
24
|
class Server {
|
|
15
25
|
_engines;
|
|
16
26
|
_descriptors = new Map();
|
|
@@ -19,12 +29,30 @@ class Server {
|
|
|
19
29
|
_readonly = false;
|
|
20
30
|
_serverName = version_1.NAME;
|
|
21
31
|
_serverVersion = version_1.VERSION;
|
|
32
|
+
// DataForge access layer + optional-capability preparers. `_capabilities`
|
|
33
|
+
// records each preparer's startup verdict so core tools (describe-entity)
|
|
34
|
+
// can route through a capability only when it is actually enabled.
|
|
35
|
+
_dataForge;
|
|
36
|
+
_dataForgePreparer;
|
|
37
|
+
_globalSearchPreparer;
|
|
38
|
+
_publishedToolsPreparer;
|
|
39
|
+
_preparers;
|
|
40
|
+
_capabilities = new Map();
|
|
22
41
|
get authProvider() {
|
|
23
42
|
return this._engines.authProvider;
|
|
24
43
|
}
|
|
25
44
|
constructor(engines, config) {
|
|
26
45
|
this._engines = engines;
|
|
27
46
|
this._readonly = config.readonlyMode ?? false;
|
|
47
|
+
this._dataForge = new dataforge_client_1.DataForgeClient(engines.configuration, engines.sysSettings);
|
|
48
|
+
this._dataForgePreparer = new dataforge_tool_preparer_1.DataForgeToolPreparer(this._dataForge);
|
|
49
|
+
this._globalSearchPreparer = new globalsearch_tool_preparer_1.GlobalSearchToolPreparer(new globalsearch_client_1.GlobalSearchClient(engines.configuration, engines.sysSettings));
|
|
50
|
+
this._publishedToolsPreparer = new crt_mcp_tool_preparer_1.CrtMcpPublishingToolPreparer(new crt_mcp_client_1.CrtMcpPublishingClient(engines.configuration, engines.crud), (0, utils_1.envBool)('ENABLE_PUBLISHED_TOOLS', false));
|
|
51
|
+
this._preparers = [
|
|
52
|
+
this._dataForgePreparer,
|
|
53
|
+
this._globalSearchPreparer,
|
|
54
|
+
this._publishedToolsPreparer,
|
|
55
|
+
];
|
|
28
56
|
this._registerClientTools();
|
|
29
57
|
}
|
|
30
58
|
_registerData() {
|
|
@@ -94,6 +122,46 @@ class Server {
|
|
|
94
122
|
log_1.default.warn('mcp.prompts.register.failed', { error: String(err) });
|
|
95
123
|
}
|
|
96
124
|
}
|
|
125
|
+
_textResult(payload) {
|
|
126
|
+
return {
|
|
127
|
+
content: [
|
|
128
|
+
{
|
|
129
|
+
type: 'text',
|
|
130
|
+
text: typeof payload === 'string' ? payload : JSON.stringify(payload, null, 2),
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/** Adapter exposing handler registration to {@link ToolPreparer}s. */
|
|
136
|
+
_toolRegistrar() {
|
|
137
|
+
return {
|
|
138
|
+
register: (name, descriptor, handler) => this._registerHandlerWithDescriptor(name, descriptor, handler),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Run every optional-capability preparer once: probe the environment and let
|
|
143
|
+
* each register its tools only when available. A failing preparer is isolated
|
|
144
|
+
* and recorded as disabled. Invoked from {@link startMcp} after the core tools
|
|
145
|
+
* are in place.
|
|
146
|
+
*/
|
|
147
|
+
async _prepareTools() {
|
|
148
|
+
const registrar = this._toolRegistrar();
|
|
149
|
+
for (const preparer of this._preparers) {
|
|
150
|
+
let enabled = false;
|
|
151
|
+
try {
|
|
152
|
+
enabled = await preparer.prepare(registrar);
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
log_1.default.warn('mcp.prepare.failed', { preparer: preparer.name, error: String(err) });
|
|
156
|
+
}
|
|
157
|
+
this._capabilities.set(preparer.name, enabled);
|
|
158
|
+
log_1.default.info('mcp.prepare', { preparer: preparer.name, enabled });
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/** Whether DataForge was probed as enabled at startup. */
|
|
162
|
+
_isDataForgeReady() {
|
|
163
|
+
return this._capabilities.get(this._dataForgePreparer.name) === true;
|
|
164
|
+
}
|
|
97
165
|
_registerClientTools() {
|
|
98
166
|
const crud = this._engines.crud;
|
|
99
167
|
const user = this._engines.user;
|
|
@@ -111,17 +179,19 @@ class Server {
|
|
|
111
179
|
};
|
|
112
180
|
}));
|
|
113
181
|
this._registerHandlerWithDescriptor('describe-entity', tools_data_1.describeEntityDescriptor, (0, utils_1.withValidation)(tools_data_1.describeEntityInput, async ({ entitySet }) => {
|
|
182
|
+
// When DataForge is enabled, prefer its richer column details and
|
|
183
|
+
// fall back to exact OData $metadata on a per-call miss; when it is
|
|
184
|
+
// not enabled, go straight to OData without any remote attempt.
|
|
185
|
+
if (this._isDataForgeReady()) {
|
|
186
|
+
const dataForge = await this._dataForge.getColumnsOrNull(entitySet);
|
|
187
|
+
if (dataForge !== null) {
|
|
188
|
+
return this._textResult({ source: 'dataforge', entitySet, dataForge });
|
|
189
|
+
}
|
|
190
|
+
}
|
|
114
191
|
const schema = await crud.describeEntity(entitySet);
|
|
115
|
-
return {
|
|
116
|
-
content: [
|
|
117
|
-
{
|
|
118
|
-
type: 'text',
|
|
119
|
-
text: JSON.stringify(schema),
|
|
120
|
-
},
|
|
121
|
-
],
|
|
122
|
-
};
|
|
192
|
+
return this._textResult({ source: 'odata', entitySet, metadata: schema });
|
|
123
193
|
}));
|
|
124
|
-
this._registerHandlerWithDescriptor('read', tools_data_1.readDescriptor, (0, utils_1.withValidation)(tools_data_1.readInput, async ({ entity, filter, filters, select, top, expand, orderBy }) => {
|
|
194
|
+
this._registerHandlerWithDescriptor('read', tools_data_1.readDescriptor, (0, utils_1.withValidation)(tools_data_1.readInput, async ({ entity, filter, filters, select, top, expand, orderBy, skip, count }) => {
|
|
125
195
|
const structured = (0, filters_1.buildFilterFromStructured)(filters);
|
|
126
196
|
let finalFilter = filter || structured;
|
|
127
197
|
if (filter && structured) {
|
|
@@ -131,9 +201,11 @@ class Server {
|
|
|
131
201
|
entity,
|
|
132
202
|
filter: finalFilter ?? undefined,
|
|
133
203
|
select,
|
|
134
|
-
top,
|
|
204
|
+
top: top ?? DEFAULT_READ_TOP,
|
|
135
205
|
expand,
|
|
136
206
|
orderBy,
|
|
207
|
+
skip,
|
|
208
|
+
count,
|
|
137
209
|
});
|
|
138
210
|
}));
|
|
139
211
|
this._registerHandlerWithDescriptor('query-sys-settings', tools_data_1.querySysSettingsDescriptor, (0, utils_1.withValidation)(tools_data_1.querySysSettingsInput, async ({ sysSettingCodes }) => {
|
|
@@ -224,17 +296,13 @@ class Server {
|
|
|
224
296
|
...(description !== undefined ? { description } : {}),
|
|
225
297
|
});
|
|
226
298
|
return {
|
|
227
|
-
content: [
|
|
228
|
-
{ type: 'text', text: JSON.stringify(result, null, 2) },
|
|
229
|
-
],
|
|
299
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
230
300
|
};
|
|
231
301
|
}));
|
|
232
302
|
this._registerHandlerWithDescriptor('delete-admin-operation', tools_data_1.deleteAdminOperationDescriptor, (0, utils_1.withValidation)(tools_data_1.deleteAdminOperationInput, async ({ ids }) => {
|
|
233
303
|
const result = await adminOperation.deleteAdminOperation(ids);
|
|
234
304
|
return {
|
|
235
|
-
content: [
|
|
236
|
-
{ type: 'text', text: JSON.stringify(result, null, 2) },
|
|
237
|
-
],
|
|
305
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
238
306
|
};
|
|
239
307
|
}));
|
|
240
308
|
this._registerHandlerWithDescriptor('set-admin-operation-grantee', tools_data_1.setAdminOperationGranteeDescriptor, (0, utils_1.withValidation)(tools_data_1.setAdminOperationGranteeInput, async ({ adminOperationId, adminUnitIds, canExecute }) => {
|
|
@@ -244,17 +312,13 @@ class Server {
|
|
|
244
312
|
canExecute,
|
|
245
313
|
});
|
|
246
314
|
return {
|
|
247
|
-
content: [
|
|
248
|
-
{ type: 'text', text: JSON.stringify(result, null, 2) },
|
|
249
|
-
],
|
|
315
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
250
316
|
};
|
|
251
317
|
}));
|
|
252
318
|
this._registerHandlerWithDescriptor('delete-admin-operation-grantee', tools_data_1.deleteAdminOperationGranteeDescriptor, (0, utils_1.withValidation)(tools_data_1.deleteAdminOperationGranteeInput, async ({ ids }) => {
|
|
253
319
|
const result = await adminOperation.deleteAdminOperationGrantee(ids);
|
|
254
320
|
return {
|
|
255
|
-
content: [
|
|
256
|
-
{ type: 'text', text: JSON.stringify(result, null, 2) },
|
|
257
|
-
],
|
|
321
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
258
322
|
};
|
|
259
323
|
}));
|
|
260
324
|
this._registerHandlerWithDescriptor('call-configuration-service', tools_data_1.callConfigurationServiceDescriptor, (0, utils_1.withValidation)(tools_data_1.callConfigurationServiceInput, async ({ service, method, httpMethod, body, query }) => {
|
|
@@ -266,9 +330,7 @@ class Server {
|
|
|
266
330
|
...(query !== undefined ? { query } : {}),
|
|
267
331
|
});
|
|
268
332
|
return {
|
|
269
|
-
content: [
|
|
270
|
-
{ type: 'text', text: JSON.stringify(result, null, 2) },
|
|
271
|
-
],
|
|
333
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
272
334
|
};
|
|
273
335
|
}));
|
|
274
336
|
}
|
|
@@ -279,6 +341,12 @@ class Server {
|
|
|
279
341
|
}
|
|
280
342
|
this._mcp = new mcp_js_1.McpServer({ name: this._serverName, version: this._serverVersion });
|
|
281
343
|
this._registerData();
|
|
344
|
+
// Probe optional capabilities WITHOUT blocking the MCP handshake. These do
|
|
345
|
+
// network I/O (DataForge/Global Search probes, and the publishing app's
|
|
346
|
+
// tools/list, which can be slow) — awaiting here would delay connect past the
|
|
347
|
+
// client's init timeout. They register into the live _mcp as they resolve and
|
|
348
|
+
// the SDK emits notifications/tools/list_changed so clients pick them up.
|
|
349
|
+
void this._prepareTools().catch((err) => log_1.default.warn('mcp.prepare.error', { error: String(err) }));
|
|
282
350
|
log_1.default.serverStart(this._serverName, this._serverVersion, {
|
|
283
351
|
tools: Array.from(this._handlers.keys()),
|
|
284
352
|
prompts: prompts_data_1.ALL_PROMPTS.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool preparation contracts.
|
|
3
|
+
*
|
|
4
|
+
* A {@link ToolPreparer} encapsulates one optional capability: it probes the
|
|
5
|
+
* environment once at startup and, only when the capability is available,
|
|
6
|
+
* registers the MCP tools it owns through a {@link ToolRegistrar}. This keeps
|
|
7
|
+
* the Server open for extension (add a preparer) and closed for modification.
|
|
8
|
+
*/
|
|
9
|
+
export type ToolHandler = (payload: any) => Promise<any>;
|
|
10
|
+
/** Sink for tool registration, decoupling preparers from the Server internals. */
|
|
11
|
+
export interface ToolRegistrar {
|
|
12
|
+
register(name: string, descriptor: unknown, handler: ToolHandler): void;
|
|
13
|
+
}
|
|
14
|
+
/** A self-contained, probe-then-register unit for one optional capability. */
|
|
15
|
+
export interface ToolPreparer {
|
|
16
|
+
/** Stable capability key, also used to look up the prepare result. */
|
|
17
|
+
readonly name: string;
|
|
18
|
+
/**
|
|
19
|
+
* Probe the environment and, when the capability is available, register its
|
|
20
|
+
* tools via {@link registrar}.
|
|
21
|
+
*
|
|
22
|
+
* @returns `true` when the capability is enabled and its tools were registered.
|
|
23
|
+
*/
|
|
24
|
+
prepare(registrar: ToolRegistrar): Promise<boolean>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=tool-preparer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-preparer.d.ts","sourceRoot":"","sources":["../../../src/server/mcp/tool-preparer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAEzD,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;CACxE;AAED,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpD"}
|