@camunda/connectors-element-templates 1.0.13 → 1.0.14

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,4 +1,1126 @@
1
1
  [
2
+ {
3
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4
+ "name": "MCP Remote Client (early access)",
5
+ "id": "io.camunda.connectors.agenticai.mcp.remoteclient.v0",
6
+ "description": "MCP (Model Context Protocol) client, operating on temporary remote connections.",
7
+ "metadata": {
8
+ "keywords": []
9
+ },
10
+ "version": 1,
11
+ "category": {
12
+ "id": "connectors",
13
+ "name": "Connectors"
14
+ },
15
+ "appliesTo": ["bpmn:Task"],
16
+ "elementType": {
17
+ "value": "bpmn:ServiceTask"
18
+ },
19
+ "engines": {
20
+ "camunda": "^8.9"
21
+ },
22
+ "groups": [
23
+ {
24
+ "id": "transport",
25
+ "label": "Transport",
26
+ "tooltip": "Configure the connection to the remote MCP server."
27
+ },
28
+ {
29
+ "id": "authentication",
30
+ "label": "Authentication"
31
+ },
32
+ {
33
+ "id": "options",
34
+ "label": "Options"
35
+ },
36
+ {
37
+ "id": "connectorMode",
38
+ "label": "Connector mode",
39
+ "tooltip": "Select how this connector is used. When the connector is used as an AI agent tool, select the AI Agent tool mode."
40
+ },
41
+ {
42
+ "id": "operation",
43
+ "label": "Operation"
44
+ },
45
+ {
46
+ "id": "tools",
47
+ "label": "Tools",
48
+ "openByDefault": false
49
+ },
50
+ {
51
+ "id": "connector",
52
+ "label": "Connector"
53
+ },
54
+ {
55
+ "id": "output",
56
+ "label": "Output mapping"
57
+ },
58
+ {
59
+ "id": "error",
60
+ "label": "Error handling"
61
+ },
62
+ {
63
+ "id": "retries",
64
+ "label": "Retries"
65
+ }
66
+ ],
67
+ "properties": [
68
+ {
69
+ "value": "io.camunda.agenticai:mcpremoteclient:1",
70
+ "binding": {
71
+ "property": "type",
72
+ "type": "zeebe:taskDefinition"
73
+ },
74
+ "type": "Hidden"
75
+ },
76
+ {
77
+ "value": "mcpClient",
78
+ "binding": {
79
+ "name": "io.camunda.agenticai.gateway.type",
80
+ "type": "zeebe:property"
81
+ },
82
+ "condition": {
83
+ "property": "data.connectorMode.type",
84
+ "equals": "aiAgentTool",
85
+ "type": "simple"
86
+ },
87
+ "type": "Hidden"
88
+ },
89
+ {
90
+ "id": "data.transport.type",
91
+ "label": "Type",
92
+ "description": "Specify the MCP transport type.",
93
+ "value": "http",
94
+ "group": "transport",
95
+ "binding": {
96
+ "name": "data.transport.type",
97
+ "type": "zeebe:input"
98
+ },
99
+ "type": "Dropdown",
100
+ "choices": [
101
+ {
102
+ "name": "Streamable HTTP",
103
+ "value": "http"
104
+ },
105
+ {
106
+ "name": "SSE",
107
+ "value": "sse"
108
+ }
109
+ ]
110
+ },
111
+ {
112
+ "id": "data.transport.http.url",
113
+ "label": "URL",
114
+ "description": "URL to connect to the MCP server. Typically ends with <code>/mcp</code>.",
115
+ "optional": false,
116
+ "constraints": {
117
+ "notEmpty": true
118
+ },
119
+ "feel": "optional",
120
+ "group": "transport",
121
+ "binding": {
122
+ "name": "data.transport.http.url",
123
+ "type": "zeebe:input"
124
+ },
125
+ "condition": {
126
+ "property": "data.transport.type",
127
+ "equals": "http",
128
+ "type": "simple"
129
+ },
130
+ "type": "String"
131
+ },
132
+ {
133
+ "id": "data.transport.http.headers",
134
+ "label": "HTTP headers",
135
+ "description": "Map of HTTP headers to add to the request.",
136
+ "optional": true,
137
+ "feel": "required",
138
+ "group": "transport",
139
+ "binding": {
140
+ "name": "data.transport.http.headers",
141
+ "type": "zeebe:input"
142
+ },
143
+ "condition": {
144
+ "property": "data.transport.type",
145
+ "equals": "http",
146
+ "type": "simple"
147
+ },
148
+ "type": "String"
149
+ },
150
+ {
151
+ "id": "data.transport.http.timeout",
152
+ "label": "Timeout",
153
+ "description": "Timeout for individual HTTP requests as ISO-8601 duration (example: <code>PT30S</code>)",
154
+ "optional": true,
155
+ "feel": "optional",
156
+ "group": "transport",
157
+ "binding": {
158
+ "name": "data.transport.http.timeout",
159
+ "type": "zeebe:input"
160
+ },
161
+ "condition": {
162
+ "property": "data.transport.type",
163
+ "equals": "http",
164
+ "type": "simple"
165
+ },
166
+ "type": "String"
167
+ },
168
+ {
169
+ "id": "data.transport.sse.url",
170
+ "label": "URL",
171
+ "description": "URL to connect to the MCP server. Typically ends with <code>/sse</code>.",
172
+ "optional": false,
173
+ "constraints": {
174
+ "notEmpty": true
175
+ },
176
+ "feel": "optional",
177
+ "group": "transport",
178
+ "binding": {
179
+ "name": "data.transport.sse.url",
180
+ "type": "zeebe:input"
181
+ },
182
+ "condition": {
183
+ "property": "data.transport.type",
184
+ "equals": "sse",
185
+ "type": "simple"
186
+ },
187
+ "type": "String"
188
+ },
189
+ {
190
+ "id": "data.transport.sse.headers",
191
+ "label": "HTTP headers",
192
+ "description": "Map of HTTP headers to add to the request.",
193
+ "optional": true,
194
+ "feel": "required",
195
+ "group": "transport",
196
+ "binding": {
197
+ "name": "data.transport.sse.headers",
198
+ "type": "zeebe:input"
199
+ },
200
+ "condition": {
201
+ "property": "data.transport.type",
202
+ "equals": "sse",
203
+ "type": "simple"
204
+ },
205
+ "type": "String"
206
+ },
207
+ {
208
+ "id": "data.transport.sse.timeout",
209
+ "label": "Timeout",
210
+ "description": "Timeout for individual HTTP requests as ISO-8601 duration (example: <code>PT30S</code>)",
211
+ "optional": true,
212
+ "feel": "optional",
213
+ "group": "transport",
214
+ "binding": {
215
+ "name": "data.transport.sse.timeout",
216
+ "type": "zeebe:input"
217
+ },
218
+ "condition": {
219
+ "property": "data.transport.type",
220
+ "equals": "sse",
221
+ "type": "simple"
222
+ },
223
+ "type": "String"
224
+ },
225
+ {
226
+ "id": "data.transport.http.authentication.type",
227
+ "label": "Type",
228
+ "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
229
+ "value": "noAuth",
230
+ "group": "authentication",
231
+ "binding": {
232
+ "name": "data.transport.http.authentication.type",
233
+ "type": "zeebe:input"
234
+ },
235
+ "condition": {
236
+ "property": "data.transport.type",
237
+ "equals": "http",
238
+ "type": "simple"
239
+ },
240
+ "type": "Dropdown",
241
+ "choices": [
242
+ {
243
+ "name": "None",
244
+ "value": "noAuth"
245
+ },
246
+ {
247
+ "name": "Basic",
248
+ "value": "basic"
249
+ },
250
+ {
251
+ "name": "Bearer token",
252
+ "value": "bearer"
253
+ },
254
+ {
255
+ "name": "OAuth 2.0",
256
+ "value": "oauth-client-credentials-flow"
257
+ }
258
+ ]
259
+ },
260
+ {
261
+ "id": "data.transport.http.authentication.username",
262
+ "label": "Username",
263
+ "optional": false,
264
+ "constraints": {
265
+ "notEmpty": true
266
+ },
267
+ "feel": "optional",
268
+ "group": "authentication",
269
+ "binding": {
270
+ "name": "data.transport.http.authentication.username",
271
+ "type": "zeebe:input"
272
+ },
273
+ "condition": {
274
+ "allMatch": [
275
+ {
276
+ "property": "data.transport.http.authentication.type",
277
+ "equals": "basic",
278
+ "type": "simple"
279
+ },
280
+ {
281
+ "property": "data.transport.type",
282
+ "equals": "http",
283
+ "type": "simple"
284
+ }
285
+ ]
286
+ },
287
+ "type": "String"
288
+ },
289
+ {
290
+ "id": "data.transport.http.authentication.password",
291
+ "label": "Password",
292
+ "optional": false,
293
+ "constraints": {
294
+ "notEmpty": true
295
+ },
296
+ "feel": "optional",
297
+ "group": "authentication",
298
+ "binding": {
299
+ "name": "data.transport.http.authentication.password",
300
+ "type": "zeebe:input"
301
+ },
302
+ "condition": {
303
+ "allMatch": [
304
+ {
305
+ "property": "data.transport.http.authentication.type",
306
+ "equals": "basic",
307
+ "type": "simple"
308
+ },
309
+ {
310
+ "property": "data.transport.type",
311
+ "equals": "http",
312
+ "type": "simple"
313
+ }
314
+ ]
315
+ },
316
+ "type": "String"
317
+ },
318
+ {
319
+ "id": "data.transport.http.authentication.token",
320
+ "label": "Bearer token",
321
+ "optional": false,
322
+ "constraints": {
323
+ "notEmpty": true
324
+ },
325
+ "feel": "optional",
326
+ "group": "authentication",
327
+ "binding": {
328
+ "name": "data.transport.http.authentication.token",
329
+ "type": "zeebe:input"
330
+ },
331
+ "condition": {
332
+ "allMatch": [
333
+ {
334
+ "property": "data.transport.http.authentication.type",
335
+ "equals": "bearer",
336
+ "type": "simple"
337
+ },
338
+ {
339
+ "property": "data.transport.type",
340
+ "equals": "http",
341
+ "type": "simple"
342
+ }
343
+ ]
344
+ },
345
+ "type": "String"
346
+ },
347
+ {
348
+ "id": "data.transport.http.authentication.oauthTokenEndpoint",
349
+ "label": "OAuth 2.0 token endpoint",
350
+ "description": "The OAuth token endpoint",
351
+ "optional": false,
352
+ "constraints": {
353
+ "notEmpty": true,
354
+ "pattern": {
355
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
356
+ "message": "Must be a http(s) URL"
357
+ }
358
+ },
359
+ "feel": "optional",
360
+ "group": "authentication",
361
+ "binding": {
362
+ "name": "data.transport.http.authentication.oauthTokenEndpoint",
363
+ "type": "zeebe:input"
364
+ },
365
+ "condition": {
366
+ "allMatch": [
367
+ {
368
+ "property": "data.transport.http.authentication.type",
369
+ "equals": "oauth-client-credentials-flow",
370
+ "type": "simple"
371
+ },
372
+ {
373
+ "property": "data.transport.type",
374
+ "equals": "http",
375
+ "type": "simple"
376
+ }
377
+ ]
378
+ },
379
+ "type": "String"
380
+ },
381
+ {
382
+ "id": "data.transport.http.authentication.clientId",
383
+ "label": "Client ID",
384
+ "description": "Your application's client ID from the OAuth client",
385
+ "optional": false,
386
+ "constraints": {
387
+ "notEmpty": true
388
+ },
389
+ "feel": "optional",
390
+ "group": "authentication",
391
+ "binding": {
392
+ "name": "data.transport.http.authentication.clientId",
393
+ "type": "zeebe:input"
394
+ },
395
+ "condition": {
396
+ "allMatch": [
397
+ {
398
+ "property": "data.transport.http.authentication.type",
399
+ "equals": "oauth-client-credentials-flow",
400
+ "type": "simple"
401
+ },
402
+ {
403
+ "property": "data.transport.type",
404
+ "equals": "http",
405
+ "type": "simple"
406
+ }
407
+ ]
408
+ },
409
+ "type": "String"
410
+ },
411
+ {
412
+ "id": "data.transport.http.authentication.clientSecret",
413
+ "label": "Client secret",
414
+ "description": "Your application's client secret from the OAuth client",
415
+ "optional": false,
416
+ "constraints": {
417
+ "notEmpty": true
418
+ },
419
+ "feel": "optional",
420
+ "group": "authentication",
421
+ "binding": {
422
+ "name": "data.transport.http.authentication.clientSecret",
423
+ "type": "zeebe:input"
424
+ },
425
+ "condition": {
426
+ "allMatch": [
427
+ {
428
+ "property": "data.transport.http.authentication.type",
429
+ "equals": "oauth-client-credentials-flow",
430
+ "type": "simple"
431
+ },
432
+ {
433
+ "property": "data.transport.type",
434
+ "equals": "http",
435
+ "type": "simple"
436
+ }
437
+ ]
438
+ },
439
+ "type": "String"
440
+ },
441
+ {
442
+ "id": "data.transport.http.authentication.audience",
443
+ "label": "Audience",
444
+ "description": "The unique identifier of the target API you want to access",
445
+ "optional": true,
446
+ "feel": "optional",
447
+ "group": "authentication",
448
+ "binding": {
449
+ "name": "data.transport.http.authentication.audience",
450
+ "type": "zeebe:input"
451
+ },
452
+ "condition": {
453
+ "allMatch": [
454
+ {
455
+ "property": "data.transport.http.authentication.type",
456
+ "equals": "oauth-client-credentials-flow",
457
+ "type": "simple"
458
+ },
459
+ {
460
+ "property": "data.transport.type",
461
+ "equals": "http",
462
+ "type": "simple"
463
+ }
464
+ ]
465
+ },
466
+ "type": "String"
467
+ },
468
+ {
469
+ "id": "data.transport.http.authentication.clientAuthentication",
470
+ "label": "Client authentication",
471
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
472
+ "optional": false,
473
+ "value": "BASIC_AUTH_HEADER",
474
+ "constraints": {
475
+ "notEmpty": true
476
+ },
477
+ "group": "authentication",
478
+ "binding": {
479
+ "name": "data.transport.http.authentication.clientAuthentication",
480
+ "type": "zeebe:input"
481
+ },
482
+ "condition": {
483
+ "allMatch": [
484
+ {
485
+ "property": "data.transport.http.authentication.type",
486
+ "equals": "oauth-client-credentials-flow",
487
+ "type": "simple"
488
+ },
489
+ {
490
+ "property": "data.transport.type",
491
+ "equals": "http",
492
+ "type": "simple"
493
+ }
494
+ ]
495
+ },
496
+ "type": "Dropdown",
497
+ "choices": [
498
+ {
499
+ "name": "Send as Basic Auth header",
500
+ "value": "BASIC_AUTH_HEADER"
501
+ },
502
+ {
503
+ "name": "Send client credentials in body",
504
+ "value": "CREDENTIALS_BODY"
505
+ }
506
+ ]
507
+ },
508
+ {
509
+ "id": "data.transport.http.authentication.scopes",
510
+ "label": "Scopes",
511
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
512
+ "optional": true,
513
+ "feel": "optional",
514
+ "group": "authentication",
515
+ "binding": {
516
+ "name": "data.transport.http.authentication.scopes",
517
+ "type": "zeebe:input"
518
+ },
519
+ "condition": {
520
+ "allMatch": [
521
+ {
522
+ "property": "data.transport.http.authentication.type",
523
+ "equals": "oauth-client-credentials-flow",
524
+ "type": "simple"
525
+ },
526
+ {
527
+ "property": "data.transport.type",
528
+ "equals": "http",
529
+ "type": "simple"
530
+ }
531
+ ]
532
+ },
533
+ "type": "String"
534
+ },
535
+ {
536
+ "id": "data.transport.sse.authentication.type",
537
+ "label": "Type",
538
+ "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
539
+ "value": "noAuth",
540
+ "group": "authentication",
541
+ "binding": {
542
+ "name": "data.transport.sse.authentication.type",
543
+ "type": "zeebe:input"
544
+ },
545
+ "condition": {
546
+ "property": "data.transport.type",
547
+ "equals": "sse",
548
+ "type": "simple"
549
+ },
550
+ "type": "Dropdown",
551
+ "choices": [
552
+ {
553
+ "name": "None",
554
+ "value": "noAuth"
555
+ },
556
+ {
557
+ "name": "Basic",
558
+ "value": "basic"
559
+ },
560
+ {
561
+ "name": "Bearer token",
562
+ "value": "bearer"
563
+ },
564
+ {
565
+ "name": "OAuth 2.0",
566
+ "value": "oauth-client-credentials-flow"
567
+ }
568
+ ]
569
+ },
570
+ {
571
+ "id": "data.transport.sse.authentication.username",
572
+ "label": "Username",
573
+ "optional": false,
574
+ "constraints": {
575
+ "notEmpty": true
576
+ },
577
+ "feel": "optional",
578
+ "group": "authentication",
579
+ "binding": {
580
+ "name": "data.transport.sse.authentication.username",
581
+ "type": "zeebe:input"
582
+ },
583
+ "condition": {
584
+ "allMatch": [
585
+ {
586
+ "property": "data.transport.sse.authentication.type",
587
+ "equals": "basic",
588
+ "type": "simple"
589
+ },
590
+ {
591
+ "property": "data.transport.type",
592
+ "equals": "sse",
593
+ "type": "simple"
594
+ }
595
+ ]
596
+ },
597
+ "type": "String"
598
+ },
599
+ {
600
+ "id": "data.transport.sse.authentication.password",
601
+ "label": "Password",
602
+ "optional": false,
603
+ "constraints": {
604
+ "notEmpty": true
605
+ },
606
+ "feel": "optional",
607
+ "group": "authentication",
608
+ "binding": {
609
+ "name": "data.transport.sse.authentication.password",
610
+ "type": "zeebe:input"
611
+ },
612
+ "condition": {
613
+ "allMatch": [
614
+ {
615
+ "property": "data.transport.sse.authentication.type",
616
+ "equals": "basic",
617
+ "type": "simple"
618
+ },
619
+ {
620
+ "property": "data.transport.type",
621
+ "equals": "sse",
622
+ "type": "simple"
623
+ }
624
+ ]
625
+ },
626
+ "type": "String"
627
+ },
628
+ {
629
+ "id": "data.transport.sse.authentication.token",
630
+ "label": "Bearer token",
631
+ "optional": false,
632
+ "constraints": {
633
+ "notEmpty": true
634
+ },
635
+ "feel": "optional",
636
+ "group": "authentication",
637
+ "binding": {
638
+ "name": "data.transport.sse.authentication.token",
639
+ "type": "zeebe:input"
640
+ },
641
+ "condition": {
642
+ "allMatch": [
643
+ {
644
+ "property": "data.transport.sse.authentication.type",
645
+ "equals": "bearer",
646
+ "type": "simple"
647
+ },
648
+ {
649
+ "property": "data.transport.type",
650
+ "equals": "sse",
651
+ "type": "simple"
652
+ }
653
+ ]
654
+ },
655
+ "type": "String"
656
+ },
657
+ {
658
+ "id": "data.transport.sse.authentication.oauthTokenEndpoint",
659
+ "label": "OAuth 2.0 token endpoint",
660
+ "description": "The OAuth token endpoint",
661
+ "optional": false,
662
+ "constraints": {
663
+ "notEmpty": true,
664
+ "pattern": {
665
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
666
+ "message": "Must be a http(s) URL"
667
+ }
668
+ },
669
+ "feel": "optional",
670
+ "group": "authentication",
671
+ "binding": {
672
+ "name": "data.transport.sse.authentication.oauthTokenEndpoint",
673
+ "type": "zeebe:input"
674
+ },
675
+ "condition": {
676
+ "allMatch": [
677
+ {
678
+ "property": "data.transport.sse.authentication.type",
679
+ "equals": "oauth-client-credentials-flow",
680
+ "type": "simple"
681
+ },
682
+ {
683
+ "property": "data.transport.type",
684
+ "equals": "sse",
685
+ "type": "simple"
686
+ }
687
+ ]
688
+ },
689
+ "type": "String"
690
+ },
691
+ {
692
+ "id": "data.transport.sse.authentication.clientId",
693
+ "label": "Client ID",
694
+ "description": "Your application's client ID from the OAuth client",
695
+ "optional": false,
696
+ "constraints": {
697
+ "notEmpty": true
698
+ },
699
+ "feel": "optional",
700
+ "group": "authentication",
701
+ "binding": {
702
+ "name": "data.transport.sse.authentication.clientId",
703
+ "type": "zeebe:input"
704
+ },
705
+ "condition": {
706
+ "allMatch": [
707
+ {
708
+ "property": "data.transport.sse.authentication.type",
709
+ "equals": "oauth-client-credentials-flow",
710
+ "type": "simple"
711
+ },
712
+ {
713
+ "property": "data.transport.type",
714
+ "equals": "sse",
715
+ "type": "simple"
716
+ }
717
+ ]
718
+ },
719
+ "type": "String"
720
+ },
721
+ {
722
+ "id": "data.transport.sse.authentication.clientSecret",
723
+ "label": "Client secret",
724
+ "description": "Your application's client secret from the OAuth client",
725
+ "optional": false,
726
+ "constraints": {
727
+ "notEmpty": true
728
+ },
729
+ "feel": "optional",
730
+ "group": "authentication",
731
+ "binding": {
732
+ "name": "data.transport.sse.authentication.clientSecret",
733
+ "type": "zeebe:input"
734
+ },
735
+ "condition": {
736
+ "allMatch": [
737
+ {
738
+ "property": "data.transport.sse.authentication.type",
739
+ "equals": "oauth-client-credentials-flow",
740
+ "type": "simple"
741
+ },
742
+ {
743
+ "property": "data.transport.type",
744
+ "equals": "sse",
745
+ "type": "simple"
746
+ }
747
+ ]
748
+ },
749
+ "type": "String"
750
+ },
751
+ {
752
+ "id": "data.transport.sse.authentication.audience",
753
+ "label": "Audience",
754
+ "description": "The unique identifier of the target API you want to access",
755
+ "optional": true,
756
+ "feel": "optional",
757
+ "group": "authentication",
758
+ "binding": {
759
+ "name": "data.transport.sse.authentication.audience",
760
+ "type": "zeebe:input"
761
+ },
762
+ "condition": {
763
+ "allMatch": [
764
+ {
765
+ "property": "data.transport.sse.authentication.type",
766
+ "equals": "oauth-client-credentials-flow",
767
+ "type": "simple"
768
+ },
769
+ {
770
+ "property": "data.transport.type",
771
+ "equals": "sse",
772
+ "type": "simple"
773
+ }
774
+ ]
775
+ },
776
+ "type": "String"
777
+ },
778
+ {
779
+ "id": "data.transport.sse.authentication.clientAuthentication",
780
+ "label": "Client authentication",
781
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
782
+ "optional": false,
783
+ "value": "BASIC_AUTH_HEADER",
784
+ "constraints": {
785
+ "notEmpty": true
786
+ },
787
+ "group": "authentication",
788
+ "binding": {
789
+ "name": "data.transport.sse.authentication.clientAuthentication",
790
+ "type": "zeebe:input"
791
+ },
792
+ "condition": {
793
+ "allMatch": [
794
+ {
795
+ "property": "data.transport.sse.authentication.type",
796
+ "equals": "oauth-client-credentials-flow",
797
+ "type": "simple"
798
+ },
799
+ {
800
+ "property": "data.transport.type",
801
+ "equals": "sse",
802
+ "type": "simple"
803
+ }
804
+ ]
805
+ },
806
+ "type": "Dropdown",
807
+ "choices": [
808
+ {
809
+ "name": "Send as Basic Auth header",
810
+ "value": "BASIC_AUTH_HEADER"
811
+ },
812
+ {
813
+ "name": "Send client credentials in body",
814
+ "value": "CREDENTIALS_BODY"
815
+ }
816
+ ]
817
+ },
818
+ {
819
+ "id": "data.transport.sse.authentication.scopes",
820
+ "label": "Scopes",
821
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
822
+ "optional": true,
823
+ "feel": "optional",
824
+ "group": "authentication",
825
+ "binding": {
826
+ "name": "data.transport.sse.authentication.scopes",
827
+ "type": "zeebe:input"
828
+ },
829
+ "condition": {
830
+ "allMatch": [
831
+ {
832
+ "property": "data.transport.sse.authentication.type",
833
+ "equals": "oauth-client-credentials-flow",
834
+ "type": "simple"
835
+ },
836
+ {
837
+ "property": "data.transport.type",
838
+ "equals": "sse",
839
+ "type": "simple"
840
+ }
841
+ ]
842
+ },
843
+ "type": "String"
844
+ },
845
+ {
846
+ "id": "data.options.clientCache",
847
+ "label": "Enable client caching",
848
+ "description": "If enabled, the MCP client instance is cached on the connector runtime and reused across requests.",
849
+ "optional": true,
850
+ "feel": "static",
851
+ "group": "options",
852
+ "binding": {
853
+ "name": "data.options.clientCache",
854
+ "type": "zeebe:input"
855
+ },
856
+ "tooltip": "Only enable this option if you are sure that the configuration or authentication details of this client will not change between invocations.<br>Caching the client instance can improve performance by reusing existing connections.",
857
+ "type": "Boolean"
858
+ },
859
+ {
860
+ "id": "data.connectorMode.type",
861
+ "label": "Connector mode",
862
+ "description": "Select how this connector is used.",
863
+ "value": "aiAgentTool",
864
+ "group": "connectorMode",
865
+ "binding": {
866
+ "name": "data.connectorMode.type",
867
+ "type": "zeebe:input"
868
+ },
869
+ "type": "Dropdown",
870
+ "choices": [
871
+ {
872
+ "name": "Standalone",
873
+ "value": "standalone"
874
+ },
875
+ {
876
+ "name": "AI Agent tool",
877
+ "value": "aiAgentTool"
878
+ }
879
+ ]
880
+ },
881
+ {
882
+ "id": "data.connectorMode.operation.type",
883
+ "label": "Operation",
884
+ "description": "The type of operation to perform.",
885
+ "value": "tools/list",
886
+ "group": "operation",
887
+ "binding": {
888
+ "name": "data.connectorMode.operation.type",
889
+ "type": "zeebe:input"
890
+ },
891
+ "condition": {
892
+ "property": "data.connectorMode.type",
893
+ "equals": "standalone",
894
+ "type": "simple"
895
+ },
896
+ "type": "Dropdown",
897
+ "choices": [
898
+ {
899
+ "name": "Call Tool",
900
+ "value": "tools/call"
901
+ },
902
+ {
903
+ "name": "List Tools",
904
+ "value": "tools/list"
905
+ }
906
+ ]
907
+ },
908
+ {
909
+ "id": "data.connectorMode.operation.toolName",
910
+ "label": "Tool name",
911
+ "description": "The name of the tool to call.",
912
+ "optional": false,
913
+ "constraints": {
914
+ "notEmpty": true
915
+ },
916
+ "feel": "optional",
917
+ "group": "operation",
918
+ "binding": {
919
+ "name": "data.connectorMode.operation.toolName",
920
+ "type": "zeebe:input"
921
+ },
922
+ "condition": {
923
+ "allMatch": [
924
+ {
925
+ "property": "data.connectorMode.operation.type",
926
+ "equals": "tools/call",
927
+ "type": "simple"
928
+ },
929
+ {
930
+ "property": "data.connectorMode.type",
931
+ "equals": "standalone",
932
+ "type": "simple"
933
+ }
934
+ ]
935
+ },
936
+ "type": "String"
937
+ },
938
+ {
939
+ "id": "data.connectorMode.operation.toolArguments",
940
+ "label": "Tool arguments",
941
+ "description": "The arguments to pass to the tool.",
942
+ "optional": true,
943
+ "feel": "required",
944
+ "group": "operation",
945
+ "binding": {
946
+ "name": "data.connectorMode.operation.toolArguments",
947
+ "type": "zeebe:input"
948
+ },
949
+ "condition": {
950
+ "allMatch": [
951
+ {
952
+ "property": "data.connectorMode.operation.type",
953
+ "equals": "tools/call",
954
+ "type": "simple"
955
+ },
956
+ {
957
+ "property": "data.connectorMode.type",
958
+ "equals": "standalone",
959
+ "type": "simple"
960
+ }
961
+ ]
962
+ },
963
+ "type": "String"
964
+ },
965
+ {
966
+ "id": "data.connectorMode.toolOperation.method",
967
+ "label": "Method",
968
+ "description": "The MCP method to be called, e.g. <code>tools/list</code>.",
969
+ "optional": false,
970
+ "value": "=toolCall.method",
971
+ "constraints": {
972
+ "notEmpty": true
973
+ },
974
+ "feel": "optional",
975
+ "group": "operation",
976
+ "binding": {
977
+ "name": "data.connectorMode.toolOperation.method",
978
+ "type": "zeebe:input"
979
+ },
980
+ "condition": {
981
+ "property": "data.connectorMode.type",
982
+ "equals": "aiAgentTool",
983
+ "type": "simple"
984
+ },
985
+ "tooltip": "The method to be called on the MCP server. See the <a href=\"https://modelcontextprotocol.io/specification/2024-11-05/server\">MCP specification</a> for a list of available methods.<br><br>Currently supported:<br><code>tools/list</code>, <code>tools/call</code>",
986
+ "type": "String"
987
+ },
988
+ {
989
+ "id": "data.connectorMode.toolOperation.params",
990
+ "label": "Parameters",
991
+ "description": "The parameters to be passed to the MCP method.",
992
+ "optional": true,
993
+ "value": "=toolCall.params",
994
+ "feel": "required",
995
+ "group": "operation",
996
+ "binding": {
997
+ "name": "data.connectorMode.toolOperation.params",
998
+ "type": "zeebe:input"
999
+ },
1000
+ "condition": {
1001
+ "property": "data.connectorMode.type",
1002
+ "equals": "aiAgentTool",
1003
+ "type": "simple"
1004
+ },
1005
+ "tooltip": "The parameter structure depends on the method being called. See the <a href=\"https://modelcontextprotocol.io/specification/2024-11-05/server/tools#calling-tools\">MCP specification</a> for an example of the parameters for the <code>tools/call</code> method.",
1006
+ "type": "String"
1007
+ },
1008
+ {
1009
+ "id": "data.tools.included",
1010
+ "label": "Included tools",
1011
+ "description": "List of tools that can be used by the MCP client. By default, all tools are allowed.",
1012
+ "optional": true,
1013
+ "feel": "required",
1014
+ "group": "tools",
1015
+ "binding": {
1016
+ "name": "data.tools.included",
1017
+ "type": "zeebe:input"
1018
+ },
1019
+ "type": "Text"
1020
+ },
1021
+ {
1022
+ "id": "data.tools.excluded",
1023
+ "label": "Excluded tools",
1024
+ "description": "List of tools that are not allowed to be used by the MCP client. Will override any included tools.",
1025
+ "optional": true,
1026
+ "feel": "required",
1027
+ "group": "tools",
1028
+ "binding": {
1029
+ "name": "data.tools.excluded",
1030
+ "type": "zeebe:input"
1031
+ },
1032
+ "type": "Text"
1033
+ },
1034
+ {
1035
+ "id": "version",
1036
+ "label": "Version",
1037
+ "description": "Version of the element template",
1038
+ "value": "1",
1039
+ "group": "connector",
1040
+ "binding": {
1041
+ "key": "elementTemplateVersion",
1042
+ "type": "zeebe:taskHeader"
1043
+ },
1044
+ "type": "Hidden"
1045
+ },
1046
+ {
1047
+ "id": "id",
1048
+ "label": "ID",
1049
+ "description": "ID of the element template",
1050
+ "value": "io.camunda.connectors.agenticai.mcp.remoteclient.v0",
1051
+ "group": "connector",
1052
+ "binding": {
1053
+ "key": "elementTemplateId",
1054
+ "type": "zeebe:taskHeader"
1055
+ },
1056
+ "type": "Hidden"
1057
+ },
1058
+ {
1059
+ "id": "resultVariable",
1060
+ "label": "Result variable",
1061
+ "description": "Name of variable to store the response in",
1062
+ "value": "toolCallResult",
1063
+ "group": "output",
1064
+ "binding": {
1065
+ "key": "resultVariable",
1066
+ "type": "zeebe:taskHeader"
1067
+ },
1068
+ "type": "String"
1069
+ },
1070
+ {
1071
+ "id": "resultExpression",
1072
+ "label": "Result expression",
1073
+ "description": "Expression to map the response into process variables",
1074
+ "feel": "required",
1075
+ "group": "output",
1076
+ "binding": {
1077
+ "key": "resultExpression",
1078
+ "type": "zeebe:taskHeader"
1079
+ },
1080
+ "type": "Text"
1081
+ },
1082
+ {
1083
+ "id": "errorExpression",
1084
+ "label": "Error expression",
1085
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
1086
+ "feel": "required",
1087
+ "group": "error",
1088
+ "binding": {
1089
+ "key": "errorExpression",
1090
+ "type": "zeebe:taskHeader"
1091
+ },
1092
+ "type": "Text"
1093
+ },
1094
+ {
1095
+ "id": "retryCount",
1096
+ "label": "Retries",
1097
+ "description": "Number of retries",
1098
+ "value": "3",
1099
+ "feel": "optional",
1100
+ "group": "retries",
1101
+ "binding": {
1102
+ "property": "retries",
1103
+ "type": "zeebe:taskDefinition"
1104
+ },
1105
+ "type": "String"
1106
+ },
1107
+ {
1108
+ "id": "retryBackoff",
1109
+ "label": "Retry backoff",
1110
+ "description": "ISO-8601 duration to wait between retries",
1111
+ "value": "PT0S",
1112
+ "group": "retries",
1113
+ "binding": {
1114
+ "key": "retryBackoff",
1115
+ "type": "zeebe:taskHeader"
1116
+ },
1117
+ "type": "String"
1118
+ }
1119
+ ],
1120
+ "icon": {
1121
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAwIDIwMCI+CiAgICA8cGF0aCBkPSJNMjUgOTcuODUyOEw5Mi44ODIzIDI5Ljk3MDZDMTAyLjI1NSAyMC41OTggMTE3LjQ1MSAyMC41OTggMTI2LjgyMyAyOS45NzA2VjI5Ljk3MDZDMTM2LjE5NiAzOS4zNDMxIDEzNi4xOTYgNTQuNTM5MSAxMjYuODIzIDYzLjkxMTdMNzUuNTU4MSAxMTUuMTc3IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgIDxwYXRoIGQ9Ik03Ni4yNjUzIDExNC40N0wxMjYuODIzIDYzLjkxMTdDMTM2LjE5NiA1NC41MzkxIDE1MS4zOTIgNTQuNTM5MSAxNjAuNzY1IDYzLjkxMTdMMTYxLjExOCA2NC4yNjUyQzE3MC40OTEgNzMuNjM3OCAxNzAuNDkxIDg4LjgzMzggMTYxLjExOCA5OC4yMDYzTDk5LjcyNDggMTU5LjZDOTYuNjAwNiAxNjIuNzI0IDk2LjYwMDYgMTY3Ljc4OSA5OS43MjQ4IDE3MC45MTNMMTEyLjMzMSAxODMuNTIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgPHBhdGggZD0iTTEwOS44NTMgNDYuOTQxMUw1OS42NDgyIDk3LjE0NTdDNTAuMjc1NyAxMDYuNTE4IDUwLjI3NTcgMTIxLjcxNCA1OS42NDgyIDEzMS4wODdWMTMxLjA4N0M2OS4wMjA4IDE0MC40NTkgODQuMjE2OCAxNDAuNDU5IDkzLjU4OTQgMTMxLjA4N0wxNDMuNzk0IDgwLjg4MjIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K"
1122
+ }
1123
+ },
2
1124
  {
3
1125
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4
1126
  "name": "MCP Remote Client (early access)",
@@ -264,7 +1386,7 @@
264
1386
  "metadata": {
265
1387
  "keywords": []
266
1388
  },
267
- "version": 1,
1389
+ "version": 2,
268
1390
  "category": {
269
1391
  "id": "connectors",
270
1392
  "name": "Connectors"
@@ -1152,13 +2274,17 @@
1152
2274
  },
1153
2275
  "type": "Dropdown",
1154
2276
  "choices": [
2277
+ {
2278
+ "name": "Call Tool",
2279
+ "value": "tools/call"
2280
+ },
1155
2281
  {
1156
2282
  "name": "List Tools",
1157
2283
  "value": "tools/list"
1158
2284
  },
1159
2285
  {
1160
- "name": "Call Tool",
1161
- "value": "tools/call"
2286
+ "name": "List Resources",
2287
+ "value": "resources/list"
1162
2288
  }
1163
2289
  ]
1164
2290
  },
@@ -1292,7 +2418,7 @@
1292
2418
  "id": "version",
1293
2419
  "label": "Version",
1294
2420
  "description": "Version of the element template",
1295
- "value": "1",
2421
+ "value": "2",
1296
2422
  "group": "connector",
1297
2423
  "binding": {
1298
2424
  "key": "elementTemplateVersion",