mcp-creatio 0.3.10 → 0.4.1

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 (225) hide show
  1. package/README.md +117 -108
  2. package/dist/cli.d.ts +5 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +18 -11
  5. package/dist/cli.js.map +1 -1
  6. package/dist/creatio/auth/auth.d.ts +2 -0
  7. package/dist/creatio/auth/auth.d.ts.map +1 -1
  8. package/dist/creatio/auth/auth.js.map +1 -1
  9. package/dist/creatio/auth/providers/base-provider.d.ts +1 -0
  10. package/dist/creatio/auth/providers/base-provider.d.ts.map +1 -1
  11. package/dist/creatio/auth/providers/base-provider.js +3 -0
  12. package/dist/creatio/auth/providers/base-provider.js.map +1 -1
  13. package/dist/creatio/auth/providers/oauth2-code-provider.d.ts +3 -0
  14. package/dist/creatio/auth/providers/oauth2-code-provider.d.ts.map +1 -1
  15. package/dist/creatio/auth/providers/oauth2-code-provider.js +30 -24
  16. package/dist/creatio/auth/providers/oauth2-code-provider.js.map +1 -1
  17. package/dist/creatio/engines/admin-operation/admin-operation-engine.d.ts +13 -0
  18. package/dist/creatio/engines/admin-operation/admin-operation-engine.d.ts.map +1 -0
  19. package/dist/creatio/engines/admin-operation/admin-operation-engine.js +27 -0
  20. package/dist/creatio/engines/admin-operation/admin-operation-engine.js.map +1 -0
  21. package/dist/creatio/engines/configuration/configuration-engine.d.ts +10 -0
  22. package/dist/creatio/engines/configuration/configuration-engine.d.ts.map +1 -0
  23. package/dist/creatio/engines/configuration/configuration-engine.js +18 -0
  24. package/dist/creatio/engines/configuration/configuration-engine.js.map +1 -0
  25. package/dist/creatio/engines/engine-manager.d.ts +13 -1
  26. package/dist/creatio/engines/engine-manager.d.ts.map +1 -1
  27. package/dist/creatio/engines/engine-manager.js +17 -0
  28. package/dist/creatio/engines/engine-manager.js.map +1 -1
  29. package/dist/creatio/engines/engine-registry.d.ts +3 -0
  30. package/dist/creatio/engines/engine-registry.d.ts.map +1 -1
  31. package/dist/creatio/engines/engine-registry.js +3 -0
  32. package/dist/creatio/engines/engine-registry.js.map +1 -1
  33. package/dist/creatio/engines/feature/feature-engine.d.ts +10 -0
  34. package/dist/creatio/engines/feature/feature-engine.d.ts.map +1 -0
  35. package/dist/creatio/engines/feature/feature-engine.js +18 -0
  36. package/dist/creatio/engines/feature/feature-engine.js.map +1 -0
  37. package/dist/creatio/engines/index.d.ts +3 -0
  38. package/dist/creatio/engines/index.d.ts.map +1 -1
  39. package/dist/creatio/engines/index.js +3 -0
  40. package/dist/creatio/engines/index.js.map +1 -1
  41. package/dist/creatio/provider-context.d.ts +4 -1
  42. package/dist/creatio/provider-context.d.ts.map +1 -1
  43. package/dist/creatio/providers/admin-operation-provider.d.ts +27 -0
  44. package/dist/creatio/providers/admin-operation-provider.d.ts.map +1 -0
  45. package/dist/creatio/providers/admin-operation-provider.js +3 -0
  46. package/dist/creatio/providers/admin-operation-provider.js.map +1 -0
  47. package/dist/creatio/providers/configuration-provider.d.ts +19 -0
  48. package/dist/creatio/providers/configuration-provider.d.ts.map +1 -0
  49. package/dist/creatio/providers/configuration-provider.js +3 -0
  50. package/dist/creatio/providers/configuration-provider.js.map +1 -0
  51. package/dist/creatio/providers/feature-provider.d.ts +10 -0
  52. package/dist/creatio/providers/feature-provider.d.ts.map +1 -0
  53. package/dist/creatio/providers/feature-provider.js +3 -0
  54. package/dist/creatio/providers/feature-provider.js.map +1 -0
  55. package/dist/creatio/providers/index.d.ts +3 -0
  56. package/dist/creatio/providers/index.d.ts.map +1 -1
  57. package/dist/creatio/providers/index.js +3 -0
  58. package/dist/creatio/providers/index.js.map +1 -1
  59. package/dist/creatio/services/admin-operation-service-provider.d.ts +15 -0
  60. package/dist/creatio/services/admin-operation-service-provider.d.ts.map +1 -0
  61. package/dist/creatio/services/admin-operation-service-provider.js +69 -0
  62. package/dist/creatio/services/admin-operation-service-provider.js.map +1 -0
  63. package/dist/creatio/services/configuration-service-provider.d.ts +14 -0
  64. package/dist/creatio/services/configuration-service-provider.d.ts.map +1 -0
  65. package/dist/creatio/services/configuration-service-provider.js +90 -0
  66. package/dist/creatio/services/configuration-service-provider.js.map +1 -0
  67. package/dist/creatio/services/creatio-service-context.d.ts +4 -1
  68. package/dist/creatio/services/creatio-service-context.d.ts.map +1 -1
  69. package/dist/creatio/services/creatio-service-context.js +9 -0
  70. package/dist/creatio/services/creatio-service-context.js.map +1 -1
  71. package/dist/creatio/services/feature-service-provider.d.ts +10 -0
  72. package/dist/creatio/services/feature-service-provider.d.ts.map +1 -0
  73. package/dist/creatio/services/feature-service-provider.js +43 -0
  74. package/dist/creatio/services/feature-service-provider.js.map +1 -0
  75. package/dist/creatio/services/http-client.d.ts.map +1 -1
  76. package/dist/creatio/services/http-client.js +0 -1
  77. package/dist/creatio/services/http-client.js.map +1 -1
  78. package/dist/creatio/services/index.d.ts +3 -0
  79. package/dist/creatio/services/index.d.ts.map +1 -1
  80. package/dist/creatio/services/index.js +3 -0
  81. package/dist/creatio/services/index.js.map +1 -1
  82. package/dist/creatio/services/metadata-store.d.ts +5 -0
  83. package/dist/creatio/services/metadata-store.d.ts.map +1 -1
  84. package/dist/creatio/services/metadata-store.js +18 -6
  85. package/dist/creatio/services/metadata-store.js.map +1 -1
  86. package/dist/creatio/services/odata-crud-provider.d.ts +2 -0
  87. package/dist/creatio/services/odata-crud-provider.d.ts.map +1 -1
  88. package/dist/creatio/services/odata-crud-provider.js +10 -1
  89. package/dist/creatio/services/odata-crud-provider.js.map +1 -1
  90. package/dist/server/http/creatio-oauth-handlers.d.ts +0 -1
  91. package/dist/server/http/creatio-oauth-handlers.d.ts.map +1 -1
  92. package/dist/server/http/creatio-oauth-handlers.js +30 -23
  93. package/dist/server/http/creatio-oauth-handlers.js.map +1 -1
  94. package/dist/server/http/httpServer.d.ts +9 -0
  95. package/dist/server/http/httpServer.d.ts.map +1 -1
  96. package/dist/server/http/httpServer.js +34 -11
  97. package/dist/server/http/httpServer.js.map +1 -1
  98. package/dist/server/http/mcp-handlers.d.ts.map +1 -1
  99. package/dist/server/http/mcp-handlers.js +4 -1
  100. package/dist/server/http/mcp-handlers.js.map +1 -1
  101. package/dist/server/http/mcp-oauth-handlers.d.ts.map +1 -1
  102. package/dist/server/http/mcp-oauth-handlers.js +18 -6
  103. package/dist/server/http/mcp-oauth-handlers.js.map +1 -1
  104. package/dist/server/http/middleware.d.ts +7 -0
  105. package/dist/server/http/middleware.d.ts.map +1 -1
  106. package/dist/server/http/middleware.js +23 -0
  107. package/dist/server/http/middleware.js.map +1 -1
  108. package/dist/server/http/rate-limiter.d.ts +24 -0
  109. package/dist/server/http/rate-limiter.d.ts.map +1 -0
  110. package/dist/server/http/rate-limiter.js +42 -0
  111. package/dist/server/http/rate-limiter.js.map +1 -0
  112. package/dist/server/mcp/prompts-data.d.ts +58 -0
  113. package/dist/server/mcp/prompts-data.d.ts.map +1 -1
  114. package/dist/server/mcp/prompts-data.js +391 -1
  115. package/dist/server/mcp/prompts-data.js.map +1 -1
  116. package/dist/server/mcp/server.d.ts.map +1 -1
  117. package/dist/server/mcp/server.js +69 -0
  118. package/dist/server/mcp/server.js.map +1 -1
  119. package/dist/server/mcp/tools-data.d.ts +63 -0
  120. package/dist/server/mcp/tools-data.d.ts.map +1 -1
  121. package/dist/server/mcp/tools-data.js +110 -5
  122. package/dist/server/mcp/tools-data.js.map +1 -1
  123. package/dist/server/oauth/oauth-server.d.ts +0 -1
  124. package/dist/server/oauth/oauth-server.d.ts.map +1 -1
  125. package/dist/server/oauth/oauth-server.js +11 -21
  126. package/dist/server/oauth/oauth-server.js.map +1 -1
  127. package/dist/server/oauth/storage.d.ts +0 -2
  128. package/dist/server/oauth/storage.d.ts.map +1 -1
  129. package/dist/server/oauth/storage.js +0 -6
  130. package/dist/server/oauth/storage.js.map +1 -1
  131. package/dist/server/oauth/validators.d.ts +6 -0
  132. package/dist/server/oauth/validators.d.ts.map +1 -1
  133. package/dist/server/oauth/validators.js +28 -0
  134. package/dist/server/oauth/validators.js.map +1 -1
  135. package/dist/services/session-context.d.ts +8 -7
  136. package/dist/services/session-context.d.ts.map +1 -1
  137. package/dist/services/session-context.js +7 -27
  138. package/dist/services/session-context.js.map +1 -1
  139. package/package.json +19 -10
  140. package/.dockerignore +0 -12
  141. package/.editorconfig +0 -14
  142. package/.eslintrc.cjs +0 -18
  143. package/.gitattributes +0 -8
  144. package/.github/workflows/docker-publish.yml +0 -50
  145. package/.prettierignore +0 -3
  146. package/.prettierrc +0 -9
  147. package/.vscode/launch.json +0 -23
  148. package/.vscode/mcp.json +0 -13
  149. package/.vscode/settings.json +0 -16
  150. package/Agent.md +0 -187
  151. package/Debug.md +0 -32
  152. package/Dockerfile +0 -23
  153. package/docs/coding-style.md +0 -30
  154. package/eslint.config.cjs +0 -95
  155. package/src/cli.ts +0 -162
  156. package/src/config-builder.ts +0 -76
  157. package/src/consts.ts +0 -3
  158. package/src/creatio/auth/auth-manager.ts +0 -27
  159. package/src/creatio/auth/auth.ts +0 -31
  160. package/src/creatio/auth/index.ts +0 -3
  161. package/src/creatio/auth/providers/base-oauth2-provider.ts +0 -62
  162. package/src/creatio/auth/providers/base-provider.ts +0 -42
  163. package/src/creatio/auth/providers/index.ts +0 -4
  164. package/src/creatio/auth/providers/legacy-provider.ts +0 -70
  165. package/src/creatio/auth/providers/oauth2-code-provider.ts +0 -252
  166. package/src/creatio/auth/providers/oauth2-provider.ts +0 -91
  167. package/src/creatio/auth/providers/type.ts +0 -5
  168. package/src/creatio/client-config.ts +0 -34
  169. package/src/creatio/engines/crud/crud-engine.ts +0 -47
  170. package/src/creatio/engines/engine-manager.ts +0 -102
  171. package/src/creatio/engines/engine-registry.ts +0 -36
  172. package/src/creatio/engines/engine.ts +0 -3
  173. package/src/creatio/engines/index.ts +0 -7
  174. package/src/creatio/engines/process/process-engine.ts +0 -20
  175. package/src/creatio/engines/sys-settings/sys-settings-engine.ts +0 -41
  176. package/src/creatio/engines/user/user-engine.ts +0 -20
  177. package/src/creatio/index.ts +0 -6
  178. package/src/creatio/provider-context.ts +0 -10
  179. package/src/creatio/providers/crud-provider.ts +0 -45
  180. package/src/creatio/providers/index.ts +0 -4
  181. package/src/creatio/providers/process-provider.ts +0 -15
  182. package/src/creatio/providers/sys-settings-provider.ts +0 -63
  183. package/src/creatio/providers/user-provider.ts +0 -12
  184. package/src/creatio/services/creatio-service-context.ts +0 -38
  185. package/src/creatio/services/http-client.ts +0 -174
  186. package/src/creatio/services/index.ts +0 -7
  187. package/src/creatio/services/metadata-store.ts +0 -181
  188. package/src/creatio/services/odata-crud-provider.ts +0 -210
  189. package/src/creatio/services/process-service-provider.ts +0 -76
  190. package/src/creatio/services/sys-settings-service-provider.ts +0 -192
  191. package/src/creatio/services/user-info-provider.ts +0 -41
  192. package/src/index.ts +0 -44
  193. package/src/log.ts +0 -183
  194. package/src/server/http/creatio-oauth-handlers.ts +0 -146
  195. package/src/server/http/httpServer.ts +0 -150
  196. package/src/server/http/index.ts +0 -5
  197. package/src/server/http/mcp-handlers.ts +0 -92
  198. package/src/server/http/mcp-oauth-handlers.ts +0 -108
  199. package/src/server/http/middleware.ts +0 -91
  200. package/src/server/index.ts +0 -2
  201. package/src/server/mcp/filters.ts +0 -97
  202. package/src/server/mcp/index.ts +0 -1
  203. package/src/server/mcp/prompts-data.ts +0 -896
  204. package/src/server/mcp/server.ts +0 -331
  205. package/src/server/mcp/tools-data.ts +0 -592
  206. package/src/server/oauth/client-manager.ts +0 -47
  207. package/src/server/oauth/index.ts +0 -6
  208. package/src/server/oauth/oauth-server.ts +0 -185
  209. package/src/server/oauth/storage.ts +0 -106
  210. package/src/server/oauth/token-manager.ts +0 -80
  211. package/src/server/oauth/types.ts +0 -55
  212. package/src/server/oauth/validators.ts +0 -56
  213. package/src/services/index.ts +0 -2
  214. package/src/services/session-context.ts +0 -232
  215. package/src/services/token-refresh-scheduler.ts +0 -68
  216. package/src/types/index.ts +0 -1
  217. package/src/types/network.ts +0 -7
  218. package/src/utils/context.ts +0 -49
  219. package/src/utils/env.ts +0 -12
  220. package/src/utils/index.ts +0 -5
  221. package/src/utils/mcp.ts +0 -8
  222. package/src/utils/network.ts +0 -65
  223. package/src/utils/pkce.ts +0 -39
  224. package/src/version.ts +0 -15
  225. package/tsconfig.json +0 -28
@@ -1,331 +0,0 @@
1
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
-
3
- import {
4
- CreatioEngineManager,
5
- ICreatioAuthProvider,
6
- SysSettingDefinitionUpdate,
7
- } from '../../creatio';
8
- import log from '../../log';
9
- import { withValidation } from '../../utils';
10
- import { NAME, VERSION } from '../../version';
11
-
12
- import { buildFilterFromStructured } from './filters';
13
- import { ALL_PROMPTS } from './prompts-data';
14
- import {
15
- createDescriptor,
16
- createInput,
17
- createSysSettingDescriptor,
18
- createSysSettingInput,
19
- deleteDescriptor,
20
- deleteInput,
21
- describeEntityDescriptor,
22
- describeEntityInput,
23
- executeProcessDescriptor,
24
- executeProcessInput,
25
- getCurrentUserInfoDescriptor,
26
- getCurrentUserInfoInput,
27
- listEntitiesDescriptor,
28
- listEntitiesInput,
29
- querySysSettingsDescriptor,
30
- querySysSettingsInput,
31
- readDescriptor,
32
- readInput,
33
- setSysSettingsValueDescriptor,
34
- setSysSettingsValueInput,
35
- updateDescriptor,
36
- updateInput,
37
- updateSysSettingDefinitionDescriptor,
38
- updateSysSettingDefinitionInput,
39
- } from './tools-data';
40
-
41
- type ToolHandler = (payload: any) => Promise<any>;
42
-
43
- export interface ServerConfig {
44
- readonlyMode?: boolean;
45
- }
46
-
47
- export class Server {
48
- private readonly _engines: CreatioEngineManager;
49
- private readonly _descriptors = new Map<string, any>();
50
- private readonly _handlers = new Map<string, ToolHandler>();
51
- private _mcp?: McpServer;
52
- private _readonly = false;
53
- private _serverName = NAME;
54
- private _serverVersion = VERSION;
55
-
56
- public get authProvider(): ICreatioAuthProvider {
57
- return this._engines.authProvider;
58
- }
59
-
60
- constructor(engines: CreatioEngineManager, config: ServerConfig) {
61
- this._engines = engines;
62
- this._readonly = config.readonlyMode ?? false;
63
- this._registerClientTools();
64
- }
65
-
66
- private _registerData() {
67
- for (const [name, handler] of this._handlers.entries()) {
68
- this._registerAsTool(name, handler);
69
- }
70
- this._registerPrompts();
71
- }
72
-
73
- private _registerHandlerWithDescriptor(name: string, descriptor: any, handler: ToolHandler) {
74
- this._handlers.set(name, handler);
75
- this._descriptors.set(name, descriptor);
76
- if (this._mcp) {
77
- this._registerAsTool(name, handler);
78
- }
79
- }
80
-
81
- private _normalizeToToolHandler(handler: ToolHandler) {
82
- return async (args: any) => {
83
- const result = await handler(args);
84
- if (result && typeof result === 'object' && 'content' in result) {
85
- return result;
86
- }
87
- return {
88
- content: [
89
- {
90
- type: 'text',
91
- text: typeof result === 'string' ? result : JSON.stringify(result, null, 2),
92
- },
93
- ],
94
- };
95
- };
96
- }
97
-
98
- private _registerAsTool(name: string, handler: ToolHandler) {
99
- if (!this._mcp) {
100
- return;
101
- }
102
- try {
103
- const descriptor =
104
- this._descriptors.get(name) ||
105
- ({
106
- title: name,
107
- description: `Tool ${name}`,
108
- inputSchema: {},
109
- } as any);
110
- this._mcp.registerTool(name, descriptor, async (args: any) => {
111
- return this._normalizeToToolHandler(handler)(args);
112
- });
113
- log.info('mcp.tool.register', { tool: name });
114
- } catch (err) {
115
- log.warn('mcp.tool.register.failed', { tool: name, error: String(err) });
116
- }
117
- }
118
-
119
- private _registerPrompts() {
120
- if (!this._mcp) {
121
- return;
122
- }
123
- try {
124
- for (const prompt of ALL_PROMPTS) {
125
- this._mcp.registerPrompt(
126
- prompt.name,
127
- {
128
- title: prompt.title,
129
- description: prompt.description,
130
- argsSchema: prompt.argsSchema,
131
- },
132
- prompt.callback,
133
- );
134
- log.info('mcp.prompt.register', { prompt: prompt.name });
135
- }
136
- } catch (err) {
137
- log.warn('mcp.prompts.register.failed', { error: String(err) });
138
- }
139
- }
140
-
141
- private _registerClientTools() {
142
- const crud = this._engines.crud;
143
- const user = this._engines.user;
144
- const sysSettings = this._engines.sysSettings;
145
- this._registerHandlerWithDescriptor(
146
- 'get-current-user-info',
147
- getCurrentUserInfoDescriptor,
148
- withValidation(getCurrentUserInfoInput, () => user.getCurrentUserInfo()),
149
- );
150
- this._registerHandlerWithDescriptor(
151
- 'list-entities',
152
- listEntitiesDescriptor,
153
- withValidation(listEntitiesInput, async () => {
154
- const sets = await crud.listEntitySets();
155
- return {
156
- content: [
157
- {
158
- type: 'text',
159
- text: JSON.stringify({ results: sets }),
160
- },
161
- ],
162
- };
163
- }),
164
- );
165
- this._registerHandlerWithDescriptor(
166
- 'describe-entity',
167
- describeEntityDescriptor,
168
- withValidation(describeEntityInput, async ({ entitySet }) => {
169
- const schema = await crud.describeEntity(entitySet);
170
- return {
171
- content: [
172
- {
173
- type: 'text',
174
- text: JSON.stringify(schema),
175
- },
176
- ],
177
- };
178
- }),
179
- );
180
- this._registerHandlerWithDescriptor(
181
- 'read',
182
- readDescriptor,
183
- withValidation(
184
- readInput,
185
- async ({ entity, filter, filters, select, top, expand, orderBy }) => {
186
- const structured = buildFilterFromStructured(filters);
187
- let finalFilter = filter || structured;
188
- if (filter && structured) {
189
- finalFilter = `(${filter}) and (${structured})`;
190
- }
191
- return crud.read({
192
- entity,
193
- filter: finalFilter ?? undefined,
194
- select,
195
- top,
196
- expand,
197
- orderBy,
198
- });
199
- },
200
- ),
201
- );
202
- this._registerHandlerWithDescriptor(
203
- 'query-sys-settings',
204
- querySysSettingsDescriptor,
205
- withValidation(querySysSettingsInput, async ({ sysSettingCodes }) => {
206
- const result = await sysSettings.queryValues(sysSettingCodes);
207
- return {
208
- content: [
209
- {
210
- type: 'text',
211
- text: JSON.stringify(result, null, 2),
212
- },
213
- ],
214
- };
215
- }),
216
- );
217
- if (!this._readonly) {
218
- const process = this._engines.process;
219
- this._registerHandlerWithDescriptor(
220
- 'create',
221
- createDescriptor,
222
- withValidation(createInput, async ({ entity, data }) =>
223
- crud.create({ entity, data }),
224
- ),
225
- );
226
- this._registerHandlerWithDescriptor(
227
- 'update',
228
- updateDescriptor,
229
- withValidation(updateInput, async ({ entity, id, data }) =>
230
- crud.update({ entity, id, data }),
231
- ),
232
- );
233
- this._registerHandlerWithDescriptor(
234
- 'delete',
235
- deleteDescriptor,
236
- withValidation(deleteInput, async ({ entity, id }) => crud.delete({ entity, id })),
237
- );
238
- this._registerHandlerWithDescriptor(
239
- 'execute-process',
240
- executeProcessDescriptor,
241
- withValidation(executeProcessInput, async ({ processName, parameters }) => {
242
- const result = await process.execute({
243
- processName,
244
- parameters: parameters || {},
245
- });
246
- return {
247
- content: [
248
- {
249
- type: 'text',
250
- text: JSON.stringify(result, null, 2),
251
- },
252
- ],
253
- };
254
- }),
255
- );
256
- this._registerHandlerWithDescriptor(
257
- 'set-sys-settings-value',
258
- setSysSettingsValueDescriptor,
259
- withValidation(setSysSettingsValueInput, async ({ sysSettingsValues }) => {
260
- const result = await sysSettings.setValues(sysSettingsValues);
261
- return {
262
- content: [
263
- {
264
- type: 'text',
265
- text: JSON.stringify(result),
266
- },
267
- ],
268
- };
269
- }),
270
- );
271
- this._registerHandlerWithDescriptor(
272
- 'create-sys-setting',
273
- createSysSettingDescriptor,
274
- withValidation(createSysSettingInput, async ({ definition, initialValue }) => {
275
- const result = await sysSettings.createSetting({ definition, initialValue });
276
- return {
277
- content: [
278
- {
279
- type: 'text',
280
- text: JSON.stringify(result, null, 2),
281
- },
282
- ],
283
- };
284
- }),
285
- );
286
- this._registerHandlerWithDescriptor(
287
- 'update-sys-setting-definition',
288
- updateSysSettingDefinitionDescriptor,
289
- withValidation(updateSysSettingDefinitionInput, async ({ id, definition }) => {
290
- const result = await sysSettings.updateDefinition({
291
- ...(definition as SysSettingDefinitionUpdate),
292
- id,
293
- });
294
- return {
295
- content: [
296
- {
297
- type: 'text',
298
- text: JSON.stringify(result, null, 2),
299
- },
300
- ],
301
- };
302
- }),
303
- );
304
- }
305
- }
306
-
307
- public async startMcp() {
308
- if (this._mcp) {
309
- return this._mcp;
310
- }
311
- this._mcp = new McpServer({ name: this._serverName, version: this._serverVersion });
312
- this._registerData();
313
- log.serverStart(this._serverName, this._serverVersion, {
314
- tools: Array.from(this._handlers.keys()),
315
- prompts: ALL_PROMPTS.length,
316
- });
317
- return this._mcp;
318
- }
319
-
320
- public async stopMcp() {
321
- if (!this._mcp) {
322
- return;
323
- }
324
- try {
325
- this._mcp.close();
326
- log.serverStop(this._serverName, this._serverVersion);
327
- } catch (err) {
328
- log.warn('mcp.stop.failed', { error: String(err) });
329
- }
330
- }
331
- }