@cognigy/mcp-server 0.1.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.
@@ -0,0 +1,430 @@
1
+ /**
2
+ * Tool handlers for executing API operations
3
+ */
4
+ import { logger } from '../utils/logger.js';
5
+ import * as schemas from '../schemas/tools.js';
6
+ export class ToolHandlers {
7
+ apiClient;
8
+ constructor(apiClient) {
9
+ this.apiClient = apiClient;
10
+ }
11
+ /**
12
+ * 1. AI Agent Management (with automatic flow + endpoint creation)
13
+ */
14
+ async handleAiAgents(args) {
15
+ const { operation, ...params } = args;
16
+ switch (operation) {
17
+ case 'create':
18
+ const createData = schemas.aiAgentCreateSchema.parse(params);
19
+ // Create the AI Agent resource (only send defined fields)
20
+ const agentPayload = {
21
+ projectId: createData.projectId,
22
+ name: createData.name,
23
+ };
24
+ if (createData.description)
25
+ agentPayload.description = createData.description;
26
+ if (createData.knowledgeReferenceId)
27
+ agentPayload.knowledgeReferenceId = createData.knowledgeReferenceId;
28
+ if (createData.image)
29
+ agentPayload.image = createData.image;
30
+ if (createData.speakingStyle)
31
+ agentPayload.speakingStyle = createData.speakingStyle;
32
+ const agent = await this.apiClient.post(`/v2.0/aiagents`, agentPayload);
33
+ // Automatically create flow and endpoint (always do this)
34
+ try {
35
+ // Create a flow for this agent
36
+ const flow = await this.apiClient.post(`/v2.0/flows`, {
37
+ projectId: createData.projectId,
38
+ name: `${createData.name} Flow`,
39
+ description: `Auto-generated flow for ${createData.name}`,
40
+ });
41
+ // Get the flow's entry point node to attach our AI Agent Job node
42
+ const flowNodes = await this.apiClient.get(`/v2.0/flows/${flow._id}/chart/nodes`, {
43
+ params: { limit: 10 },
44
+ });
45
+ const entryNode = flowNodes.items?.find((n) => n.isEntryPoint) || flowNodes.items?.[0];
46
+ if (!entryNode) {
47
+ throw new Error('Could not find entry node in flow');
48
+ }
49
+ // Create AI Agent Job Node in the flow
50
+ await this.apiClient.post(`/v2.0/flows/${flow._id}/chart/nodes`, {
51
+ mode: 'append',
52
+ target: entryNode._id,
53
+ type: 'aiAgentJob', // Correct type!
54
+ extension: '@cognigy/basic-nodes',
55
+ label: 'AI Agent',
56
+ config: {
57
+ aiAgent: agent.referenceId, // Reference to the AI Agent UUID
58
+ },
59
+ });
60
+ // Create REST endpoint pointing to the flow
61
+ const endpoint = await this.apiClient.post(`/v2.0/endpoints`, {
62
+ projectId: createData.projectId,
63
+ channel: 'rest',
64
+ flowId: flow.referenceId, // Use UUID
65
+ name: `${createData.name} REST Endpoint`,
66
+ });
67
+ // Return everything
68
+ return {
69
+ agent,
70
+ flow,
71
+ endpoint,
72
+ endpointUrl: endpoint.URLToken
73
+ ? `https://endpoint-trial.cognigy.ai/${endpoint.URLToken}`
74
+ : 'URL not available',
75
+ message: '🎉 COMPLETE! Created AI Agent, Flow, AI Agent Job Node, and REST Endpoint! Ready to use!',
76
+ instructions: `The agent is ready to use with talk_to_agent tool!
77
+
78
+ To test: Use talk_to_agent with the endpointUrl above
79
+ To improve: Configure job description in Cognigy UI → Flow: ${flow.name} → AI Agent Job Node
80
+ To iterate: Update job description, then talk_to_agent again to compare responses`,
81
+ };
82
+ }
83
+ catch (error) {
84
+ // If automatic setup fails, return the agent anyway
85
+ return {
86
+ agent,
87
+ error: `Agent created but automatic setup failed: ${error.message}`,
88
+ message: 'AI Agent created, but you may need to manually create flow and endpoint',
89
+ };
90
+ }
91
+ case 'get':
92
+ const getData = schemas.aiAgentGetSchema.parse(params);
93
+ return await this.apiClient.get(`/v2.0/aiagents/${getData.aiAgentId}`);
94
+ case 'update':
95
+ const updateData = schemas.aiAgentUpdateSchema.parse(params);
96
+ const { aiAgentId, ...updatePayload } = updateData;
97
+ return await this.apiClient.patch(`/v2.0/aiagents/${aiAgentId}`, updatePayload);
98
+ case 'delete':
99
+ const deleteData = schemas.aiAgentDeleteSchema.parse(params);
100
+ return await this.apiClient.delete(`/v2.0/aiagents/${deleteData.aiAgentId}`);
101
+ case 'list':
102
+ const listData = schemas.aiAgentListSchema.parse(params);
103
+ return await this.apiClient.get(`/v2.0/aiagents`, {
104
+ params: { projectId: listData.projectId, limit: listData.limit, skip: listData.skip },
105
+ });
106
+ case 'hire':
107
+ const hireData = schemas.aiAgentHireSchema.parse(params);
108
+ return await this.apiClient.post(`/v2.0/aiagents/${hireData.aiAgentId}/hire`, {
109
+ templateId: hireData.templateId,
110
+ });
111
+ default:
112
+ throw new Error(`Unknown operation: ${operation}`);
113
+ }
114
+ }
115
+ /**
116
+ * 2. Knowledge Management
117
+ */
118
+ async handleKnowledge(args) {
119
+ const { operation, ...params } = args;
120
+ switch (operation) {
121
+ case 'create_store':
122
+ const createStoreData = schemas.knowledgeStoreCreateSchema.parse(params);
123
+ return await this.apiClient.post(`/v2.0/knowledgestores`, createStoreData);
124
+ case 'create_source':
125
+ const createSourceData = schemas.knowledgeSourceCreateSchema.parse(params);
126
+ const { knowledgeStoreId, ...sourcePayload } = createSourceData;
127
+ return await this.apiClient.post(`/v2.0/knowledgestores/${knowledgeStoreId}/sources`, sourcePayload);
128
+ case 'search_chunks':
129
+ const searchData = schemas.knowledgeChunkSearchSchema.parse(params);
130
+ return await this.apiClient.post(`/v2.0/knowledgestores/${searchData.knowledgeStoreId}/chunks/search`, { query: searchData.query, limit: searchData.limit });
131
+ case 'list_stores':
132
+ return await this.apiClient.get(`/v2.0/knowledgestores`, {
133
+ params: { projectId: params.projectId },
134
+ });
135
+ default:
136
+ throw new Error(`Unknown operation: ${operation}`);
137
+ }
138
+ }
139
+ /**
140
+ * 3. Conversation Management
141
+ */
142
+ async handleConversations(args) {
143
+ const { operation, ...params } = args;
144
+ switch (operation) {
145
+ case 'list':
146
+ const listData = schemas.conversationListSchema.parse(params);
147
+ return await this.apiClient.get(`/v2.0/conversations`, { params: listData });
148
+ case 'get':
149
+ const getData = schemas.conversationGetSchema.parse(params);
150
+ return await this.apiClient.get(`/v2.0/conversations/${getData.sessionId}`);
151
+ case 'get_session_state':
152
+ const stateData = schemas.sessionStateGetSchema.parse(params);
153
+ return await this.apiClient.get(`/v2.0/sessions/${stateData.sessionId}/state`);
154
+ default:
155
+ throw new Error(`Unknown operation: ${operation}`);
156
+ }
157
+ }
158
+ /**
159
+ * 4. Flow Management
160
+ */
161
+ async handleFlows(args) {
162
+ const { operation, ...params } = args;
163
+ switch (operation) {
164
+ case 'create':
165
+ const createData = schemas.flowCreateSchema.parse(params);
166
+ return await this.apiClient.post(`/v2.0/flows`, createData);
167
+ case 'update':
168
+ const updateData = schemas.flowUpdateSchema.parse(params);
169
+ const { flowId, ...updatePayload } = updateData;
170
+ return await this.apiClient.patch(`/v2.0/flows/${flowId}`, updatePayload);
171
+ case 'list':
172
+ const listData = schemas.flowListSchema.parse(params);
173
+ return await this.apiClient.get(`/v2.0/flows`, { params: listData });
174
+ case 'create_node':
175
+ const nodeData = schemas.flowNodeCreateSchema.parse(params);
176
+ const { flowId: nodeFlowId, type, label, config } = nodeData;
177
+ // Build payload with required fields
178
+ const nodePayload = {
179
+ type,
180
+ extension: '@cognigy/basic-nodes',
181
+ mode: 'simple', // Required field - try 'simple'
182
+ };
183
+ if (label)
184
+ nodePayload.label = label;
185
+ if (config)
186
+ nodePayload.config = config;
187
+ // API uses /chart/nodes, and flowId must be MongoDB _id (not UUID)
188
+ return await this.apiClient.post(`/v2.0/flows/${nodeFlowId}/chart/nodes`, nodePayload);
189
+ case 'get_node':
190
+ const getNodeData = schemas.flowNodeGetSchema.parse(params);
191
+ const getParams = {};
192
+ if (getNodeData.localeId)
193
+ getParams.preferredLocaleId = getNodeData.localeId;
194
+ return await this.apiClient.get(`/v2.0/flows/${getNodeData.flowId}/chart/nodes/${getNodeData.nodeId}`, { params: getParams });
195
+ case 'update_node':
196
+ const updateNodeData = schemas.flowNodeUpdateSchema.parse(params);
197
+ const { flowId: updateFlowId, nodeId, ...updateNodePayload } = updateNodeData;
198
+ // Build the payload - only include fields that are provided
199
+ const patchPayload = {};
200
+ if (updateNodePayload.localeId)
201
+ patchPayload.localeId = updateNodePayload.localeId;
202
+ if (updateNodePayload.config)
203
+ patchPayload.config = updateNodePayload.config;
204
+ if (updateNodePayload.label)
205
+ patchPayload.label = updateNodePayload.label;
206
+ if (updateNodePayload.comment !== undefined)
207
+ patchPayload.comment = updateNodePayload.comment;
208
+ return await this.apiClient.patch(`/v2.0/flows/${updateFlowId}/chart/nodes/${nodeId}`, patchPayload);
209
+ default:
210
+ throw new Error(`Unknown operation: ${operation}`);
211
+ }
212
+ }
213
+ /**
214
+ * 5. Intent & NLU Management
215
+ */
216
+ async handleIntents(args) {
217
+ const { operation, ...params } = args;
218
+ switch (operation) {
219
+ case 'create':
220
+ const createData = schemas.intentCreateSchema.parse(params);
221
+ const { flowId, ...intentPayload } = createData;
222
+ return await this.apiClient.post(`/v2.0/flows/${flowId}/intents`, intentPayload);
223
+ case 'update':
224
+ const updateData = schemas.intentUpdateSchema.parse(params);
225
+ const { intentId, ...updatePayload } = updateData;
226
+ return await this.apiClient.patch(`/v2.0/intents/${intentId}`, updatePayload);
227
+ case 'list':
228
+ const listData = schemas.intentListSchema.parse(params);
229
+ return await this.apiClient.get(`/v2.0/flows/${listData.flowId}/intents`, {
230
+ params: { limit: listData.limit, skip: listData.skip },
231
+ });
232
+ case 'train':
233
+ const trainData = schemas.intentTrainSchema.parse(params);
234
+ return await this.apiClient.post(`/v2.0/flows/${trainData.flowId}/train`, {
235
+ localeId: trainData.localeId,
236
+ });
237
+ default:
238
+ throw new Error(`Unknown operation: ${operation}`);
239
+ }
240
+ }
241
+ /**
242
+ * 6. Analytics & Monitoring
243
+ */
244
+ async handleAnalytics(args) {
245
+ const { operation, projectId, ...params } = args;
246
+ switch (operation) {
247
+ case 'conversation_count':
248
+ const convData = schemas.analyticsConversationCountSchema.parse({ projectId, ...params });
249
+ return await this.apiClient.get(`/v2.0/analytics/projects/${projectId}/conversationcount`, {
250
+ params: { year: convData.year, month: convData.month, channel: convData.channel },
251
+ });
252
+ case 'call_count':
253
+ const callData = schemas.analyticsCallCountSchema.parse({ projectId, ...params });
254
+ return await this.apiClient.get(`/v2.0/analytics/projects/${projectId}/callcount`, {
255
+ params: { year: callData.year, month: callData.month },
256
+ });
257
+ case 'logs':
258
+ const logsData = schemas.logsListSchema.parse({ projectId, ...params });
259
+ return await this.apiClient.get(`/v2.0/logs`, { params: logsData });
260
+ case 'audit_events':
261
+ const auditData = schemas.auditEventsListSchema.parse({ projectId, ...params });
262
+ return await this.apiClient.get(`/v2.0/auditevents`, { params: auditData });
263
+ default:
264
+ throw new Error(`Unknown operation: ${operation}`);
265
+ }
266
+ }
267
+ /**
268
+ * 7. Project & Endpoint Management
269
+ */
270
+ async handleProjects(args) {
271
+ const { operation, ...params } = args;
272
+ switch (operation) {
273
+ case 'create_project':
274
+ const createData = schemas.projectCreateSchema.parse(params);
275
+ return await this.apiClient.post(`/v2.0/projects`, createData);
276
+ case 'list_projects':
277
+ const listData = schemas.projectListSchema.parse(params);
278
+ return await this.apiClient.get(`/v2.0/projects`, { params: listData });
279
+ case 'create_endpoint':
280
+ const createEndpointData = schemas.endpointCreateSchema.parse(params);
281
+ // API expects projectId in the body, flowId is the flow's referenceId (UUID)
282
+ return await this.apiClient.post(`/v2.0/endpoints`, {
283
+ projectId: createEndpointData.projectId,
284
+ channel: createEndpointData.channel,
285
+ flowId: createEndpointData.flowId,
286
+ name: createEndpointData.name,
287
+ localeId: createEndpointData.localeId,
288
+ settings: createEndpointData.settings,
289
+ });
290
+ case 'list_endpoints':
291
+ const listEndpointsData = schemas.endpointListSchema.parse(params);
292
+ return await this.apiClient.get(`/v2.0/projects/${listEndpointsData.projectId}/endpoints`, {
293
+ params: { limit: listEndpointsData.limit, skip: listEndpointsData.skip },
294
+ });
295
+ default:
296
+ throw new Error(`Unknown operation: ${operation}`);
297
+ }
298
+ }
299
+ /**
300
+ * 8. Extension Management
301
+ */
302
+ async handleExtensions(args) {
303
+ const { operation, projectId, ...params } = args;
304
+ switch (operation) {
305
+ case 'list_extensions':
306
+ const listExtData = schemas.extensionListSchema.parse({ projectId, ...params });
307
+ return await this.apiClient.get(`/v2.0/projects/${projectId}/extensions`, {
308
+ params: { limit: listExtData.limit, skip: listExtData.skip },
309
+ });
310
+ case 'create_function':
311
+ const createData = schemas.functionCreateSchema.parse({ projectId, ...params });
312
+ const { projectId: pid, ...funcPayload } = createData;
313
+ return await this.apiClient.post(`/v2.0/projects/${pid}/functions`, funcPayload);
314
+ case 'update_function':
315
+ const updateData = schemas.functionUpdateSchema.parse(params);
316
+ const { functionId, ...updatePayload } = updateData;
317
+ return await this.apiClient.patch(`/v2.0/functions/${functionId}`, updatePayload);
318
+ case 'list_functions':
319
+ const listFuncData = schemas.functionListSchema.parse({ projectId, ...params });
320
+ return await this.apiClient.get(`/v2.0/projects/${projectId}/functions`, {
321
+ params: { limit: listFuncData.limit, skip: listFuncData.skip },
322
+ });
323
+ default:
324
+ throw new Error(`Unknown operation: ${operation}`);
325
+ }
326
+ }
327
+ /**
328
+ * 9. Talk to AI Agent (Iterative Improvement)
329
+ */
330
+ async handleTalkToAgent(args) {
331
+ const { endpointUrl, message, sessionId, userId, data } = args;
332
+ // Generate session ID if not provided
333
+ const finalSessionId = sessionId || `mcp-session-${Date.now()}`;
334
+ const finalUserId = userId || 'mcp-user';
335
+ // Construct the payload in Cognigy REST endpoint format
336
+ const payload = {
337
+ userId: finalUserId,
338
+ sessionId: finalSessionId,
339
+ text: message,
340
+ };
341
+ if (data) {
342
+ payload.data = data;
343
+ }
344
+ // Make the request to the Cognigy endpoint
345
+ // Note: Using axios directly here since this goes to a different URL
346
+ const axios = (await import('axios')).default;
347
+ try {
348
+ const response = await axios.post(endpointUrl, payload, {
349
+ headers: {
350
+ 'Content-Type': 'application/json',
351
+ 'Accept': 'application/json',
352
+ },
353
+ timeout: 30000,
354
+ });
355
+ // Extract the agent's response text from multiple possible locations
356
+ let agentResponse = response.data.text || '';
357
+ // Also check outputStack for text responses
358
+ const outputStack = response.data.outputStack || [];
359
+ const textOutputs = outputStack
360
+ .filter((output) => output.text && output.text.trim())
361
+ .map((output) => output.text)
362
+ .filter(Boolean);
363
+ if (textOutputs.length > 0) {
364
+ agentResponse = textOutputs.join(' ');
365
+ }
366
+ return {
367
+ success: true,
368
+ agentResponse: agentResponse || 'No text response from agent',
369
+ rawResponse: response.data,
370
+ sessionId: finalSessionId,
371
+ userId: finalUserId,
372
+ };
373
+ }
374
+ catch (error) {
375
+ return {
376
+ success: false,
377
+ error: error.message,
378
+ details: error.response?.data || {},
379
+ sessionId: finalSessionId,
380
+ };
381
+ }
382
+ }
383
+ /**
384
+ * Main dispatcher for all tool calls
385
+ */
386
+ async handleToolCall(toolName, args) {
387
+ logger.info(`Handling tool call: ${toolName}`, { args });
388
+ try {
389
+ let result;
390
+ switch (toolName) {
391
+ case 'manage_ai_agents':
392
+ result = await this.handleAiAgents(args);
393
+ break;
394
+ case 'manage_knowledge':
395
+ result = await this.handleKnowledge(args);
396
+ break;
397
+ case 'manage_conversations':
398
+ result = await this.handleConversations(args);
399
+ break;
400
+ case 'manage_flows':
401
+ result = await this.handleFlows(args);
402
+ break;
403
+ case 'manage_intents':
404
+ result = await this.handleIntents(args);
405
+ break;
406
+ case 'get_analytics':
407
+ result = await this.handleAnalytics(args);
408
+ break;
409
+ case 'manage_projects':
410
+ result = await this.handleProjects(args);
411
+ break;
412
+ case 'manage_extensions':
413
+ result = await this.handleExtensions(args);
414
+ break;
415
+ case 'talk_to_agent':
416
+ result = await this.handleTalkToAgent(args);
417
+ break;
418
+ default:
419
+ throw new Error(`Unknown tool: ${toolName}`);
420
+ }
421
+ logger.info(`Tool call successful: ${toolName}`);
422
+ return result;
423
+ }
424
+ catch (error) {
425
+ logger.error(`Tool call failed: ${toolName}`, { error: error.message });
426
+ throw error;
427
+ }
428
+ }
429
+ }
430
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Tool definitions for the MCP server
3
+ */
4
+ export interface ToolDefinition {
5
+ name: string;
6
+ description: string;
7
+ inputSchema: {
8
+ type: 'object';
9
+ properties: Record<string, any>;
10
+ required?: string[];
11
+ };
12
+ }
13
+ /**
14
+ * MCP Tool Definitions - 8 high-level workflow tools
15
+ */
16
+ export declare const tools: ToolDefinition[];
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,cAAc,EAgcjC,CAAC"}