@opencx/mcp 1.6.0 → 1.7.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.
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/tools/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAE1D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAwE5E"}
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/tools/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAgF1D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAgM5E"}
@@ -1,30 +1,174 @@
1
1
  import { z } from 'zod';
2
2
  import { safePath } from '../api-client.js';
3
+ const TRIGGER_TYPES = [
4
+ 'manual-trigger',
5
+ 'ai-trigger',
6
+ 'cron-trigger',
7
+ 'form-trigger',
8
+ 'webhook',
9
+ 'contact-created',
10
+ 'phone-call-started',
11
+ 'phone-call-finished',
12
+ 'ticket-created',
13
+ 'ticket-reassigned',
14
+ 'ticket-resolved',
15
+ 'ticket-handoff',
16
+ 'pre-ticket-handoff',
17
+ 'ticket-tag-added',
18
+ 'ticket-inactive',
19
+ 'sequence-completed',
20
+ 'csat-score-submit',
21
+ 'prohibited-topic-detected',
22
+ 'sla-first-reply-breached',
23
+ 'sla-next-reply-breached',
24
+ 'sla-resolution-breached',
25
+ ];
26
+ const triggerTypeSchema = z
27
+ .enum(TRIGGER_TYPES)
28
+ .describe('What starts the workflow. Common: "manual-trigger" (on-demand), "ai-trigger" (AI-initiated), ' +
29
+ '"webhook" (HTTP), "cron-trigger" (scheduled). Event-based: "ticket-created", "contact-created", etc. ' +
30
+ 'Call list_workflow_definitions to see all available types.');
31
+ const actionStepSchema = z
32
+ .object({
33
+ $kind: z.literal('Action'),
34
+ id: z.string().describe('Unique step ID (e.g. "step_1"). Used in references like {{step_1.output.field}}'),
35
+ type: z
36
+ .string()
37
+ .describe('Action type from list_workflow_definitions (e.g. "ask-ai", "hold-value", "send-webhook", "tag-ticket")'),
38
+ name: z.string().describe('Display name for this step'),
39
+ input: z
40
+ .record(z.string(), z.unknown())
41
+ .describe('Input fields for this action. See input_fields from list_workflow_definitions for available fields.'),
42
+ })
43
+ .describe('An action step that performs a single operation');
44
+ const conditionSchema = z
45
+ .object({
46
+ operatorName: z
47
+ .string()
48
+ .describe('Comparison operator: "equals", "not_equals", "contains", "not_contains", "greater_than", "less_than", "is_empty", "is_not_empty", "and", "or"'),
49
+ left: z.unknown().describe('Left operand — static value or {{step_id.output.field}} reference'),
50
+ right: z.unknown().optional().describe('Right operand (not needed for unary operators like is_empty)'),
51
+ })
52
+ .describe('A condition for if-else/switch blocks');
53
+ const blockStepSchema = z
54
+ .object({
55
+ $kind: z.literal('Block'),
56
+ type: z.enum(['if-else', 'switch']).describe('Block type'),
57
+ id: z.string().describe('Unique block ID'),
58
+ inputs: z.object({
59
+ condition: conditionSchema,
60
+ }),
61
+ branches: z
62
+ .record(z.string(), z.array(z.record(z.string(), z.unknown())))
63
+ .describe('Branch name → array of steps. For if-else: "then" and "else". For switch: "branch_0", "branch_1", "default".'),
64
+ })
65
+ .describe('A control-flow block (if-else or switch) that branches execution');
66
+ const workflowBlockSchema = z
67
+ .union([actionStepSchema, blockStepSchema])
68
+ .describe('A workflow step: either an Action or a Block');
3
69
  export function registerWorkflowTools(server, client) {
4
- server.tool('list_workflows', 'List all workflows in your organization. Workflows automate multi-step processes triggered by events, schedules, webhooks, or manual action. Returns the latest version of each workflow with its name, trigger type, and active status.', {}, async () => {
70
+ server.tool('list_workflow_definitions', 'List all available workflow action types (with their input/output field schemas), trigger types, and block types. ' +
71
+ 'ALWAYS call this first before creating a workflow — it tells you exactly what action types exist, ' +
72
+ 'what input fields each action expects, and what output fields you can reference with {{step_id.output.field}}.', {}, async () => {
73
+ const data = await client.get('/workflows/definitions');
74
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
75
+ });
76
+ server.tool('validate_workflow', 'Validate workflow blocks without creating a workflow. Returns issues and action types used. ' +
77
+ 'Use before create_workflow to catch errors early.', {
78
+ trigger_type: triggerTypeSchema,
79
+ workflow_blocks: z.array(workflowBlockSchema).describe('Workflow blocks to validate'),
80
+ }, async ({ trigger_type, workflow_blocks }) => {
81
+ const data = await client.post('/workflows/validate', {
82
+ trigger_type,
83
+ workflow_blocks,
84
+ });
85
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
86
+ });
87
+ server.tool('create_workflow', 'Create a new workflow. Created as an inactive draft — use activate_workflow to make it live. ' +
88
+ 'IMPORTANT: Call list_workflow_definitions first to see available action types and their input fields.', {
89
+ name: z.string().describe('Workflow name'),
90
+ description: z.string().optional().describe('Workflow description'),
91
+ trigger_type: triggerTypeSchema,
92
+ trigger_configuration: z
93
+ .record(z.string(), z.unknown())
94
+ .optional()
95
+ .describe('Trigger-specific config (e.g. cron expression for cron-trigger)'),
96
+ trigger_constraints: z
97
+ .record(z.string(), z.unknown())
98
+ .optional()
99
+ .describe('JSON Logic constraints that must be satisfied for the trigger to fire'),
100
+ workflow_blocks: z
101
+ .array(workflowBlockSchema)
102
+ .describe('Workflow steps and blocks. Use {{step_id.output.field}} to reference earlier step outputs.'),
103
+ }, async ({ name, description, trigger_type, trigger_configuration, trigger_constraints, workflow_blocks }) => {
104
+ const data = await client.post('/workflows/', {
105
+ name,
106
+ description,
107
+ trigger_type,
108
+ trigger_configuration: trigger_configuration ?? null,
109
+ trigger_constraints: trigger_constraints ?? null,
110
+ workflow_blocks,
111
+ });
112
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
113
+ });
114
+ server.tool('list_workflows', 'List all workflows in your organization. Returns the latest version of each with name, trigger type, and active status.', {}, async () => {
5
115
  const data = await client.get('/workflows/');
6
116
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
7
117
  });
8
- server.tool('get_workflow', 'Get a specific workflow by its UUID, including active status, trigger type, version number, and description.', { workflow_id: z.string().describe('The workflow UUID') }, async ({ workflow_id }) => {
118
+ server.tool('get_workflow', 'Get a specific workflow by UUID, including its blocks, trigger configuration, active status, and version number.', { workflow_id: z.string().describe('The workflow UUID') }, async ({ workflow_id }) => {
9
119
  const data = await client.get(`/workflows/${safePath(workflow_id)}`);
10
120
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
11
121
  });
12
- server.tool('trigger_workflow', 'Manually trigger a workflow. The workflow must have trigger type "manual-trigger" and be active. Runs asynchronously in the background.', { workflow_id: z.string().describe('The workflow UUID to trigger') }, async ({ workflow_id }) => {
122
+ server.tool('update_workflow', 'Update a workflow by creating a new version. Only provided fields change; omitted fields carry over. ' +
123
+ 'New version is inactive — use activate_workflow to make it live.', {
124
+ workflow_id: z.string().describe('The workflow UUID to update'),
125
+ name: z.string().optional().describe('New workflow name'),
126
+ description: z.string().optional().describe('New workflow description'),
127
+ trigger_type: triggerTypeSchema.optional(),
128
+ trigger_configuration: z
129
+ .record(z.string(), z.unknown())
130
+ .optional()
131
+ .describe('New trigger configuration'),
132
+ trigger_constraints: z
133
+ .record(z.string(), z.unknown())
134
+ .optional()
135
+ .describe('New trigger constraints'),
136
+ workflow_blocks: z
137
+ .array(workflowBlockSchema)
138
+ .optional()
139
+ .describe('New workflow blocks (replaces existing)'),
140
+ }, async ({ workflow_id, ...body }) => {
141
+ const data = await client.patch(`/workflows/${safePath(workflow_id)}`, body);
142
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
143
+ });
144
+ server.tool('delete_workflow', 'Delete a workflow and all its versions. Active versions are deactivated first. Cannot be undone.', { workflow_id: z.string().describe('The workflow UUID to delete') }, async ({ workflow_id }) => {
145
+ const data = await client.delete(`/workflows/${safePath(workflow_id)}`);
146
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
147
+ });
148
+ server.tool('activate_workflow', 'Activate the latest version of a workflow. Any previously active version is deactivated.', { workflow_id: z.string().describe('The workflow UUID to activate') }, async ({ workflow_id }) => {
149
+ const data = await client.post(`/workflows/${safePath(workflow_id)}/activate`);
150
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
151
+ });
152
+ server.tool('deactivate_workflow', 'Deactivate the currently active version of a workflow.', { workflow_id: z.string().describe('The workflow UUID to deactivate') }, async ({ workflow_id }) => {
153
+ const data = await client.post(`/workflows/${safePath(workflow_id)}/deactivate`);
154
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
155
+ });
156
+ server.tool('trigger_workflow', 'Manually trigger a workflow. Must be "manual-trigger" type and active. Runs in background.', { workflow_id: z.string().describe('The workflow UUID to trigger') }, async ({ workflow_id }) => {
13
157
  await client.post(`/workflows/${safePath(workflow_id)}/trigger`);
14
158
  return { content: [{ type: 'text', text: `Workflow ${workflow_id} triggered.` }] };
15
159
  });
16
- server.tool('list_workflow_runs', 'List execution runs for a workflow with optional filters. See which runs succeeded, failed, or are in progress.', {
160
+ server.tool('list_workflow_runs', 'List execution runs for a workflow with optional filters.', {
17
161
  workflow_id: z.string().describe('The workflow UUID'),
18
162
  page: z.number().optional().describe('Page number (default: 1)'),
19
163
  limit: z.number().optional().describe('Results per page (default: 20, max: 50)'),
20
164
  status: z
21
165
  .string()
22
166
  .optional()
23
- .describe('Comma-separated statuses to filter: completed, failed, in_progress, canceled, idle'),
167
+ .describe('Comma-separated: completed, failed, in_progress, canceled, idle'),
24
168
  trigger_cause: z
25
169
  .string()
26
170
  .optional()
27
- .describe('Comma-separated causes to filter: manual, automatic, scheduled'),
171
+ .describe('Comma-separated: manual, automatic, scheduled'),
28
172
  }, async ({ workflow_id, page, limit, status, trigger_cause }) => {
29
173
  const data = await client.get(`/workflows/${safePath(workflow_id)}/runs`, {
30
174
  page: page?.toString(),
@@ -34,7 +178,7 @@ export function registerWorkflowTools(server, client) {
34
178
  });
35
179
  return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
36
180
  });
37
- server.tool('get_workflow_run', 'Get details of a specific workflow run including status, duration, trigger cause, and timestamps.', {
181
+ server.tool('get_workflow_run', 'Get details of a specific workflow run.', {
38
182
  workflow_id: z.string().describe('The workflow UUID'),
39
183
  run_id: z.string().describe('The run UUID'),
40
184
  }, async ({ workflow_id, run_id }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/tools/workflows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/tools/workflows.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencx/mcp",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "private": false,
5
5
  "description": "MCP server for OpenCX — manage contacts, sessions, training, and more from Claude Desktop, Cursor, or any MCP client.",
6
6
  "type": "module",