@camunda/connectors-element-templates 1.0.19 → 1.0.21

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 (116) hide show
  1. package/package.json +2 -2
  2. package/src/connectors-template.js +1 -3
  3. package/src/connectors.js +4 -0
  4. package/src/element-templates/agenticai-a2a-client-outbound-connector.json +1 -1
  5. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +43 -43
  6. package/src/element-templates/agenticai-aiagent-job-worker.json +2230 -222
  7. package/src/element-templates/agenticai-aiagent-outbound-connector.json +6281 -4356
  8. package/src/element-templates/agenticai-mcp-client-outbound-connector.json +718 -36
  9. package/src/element-templates/agenticai-mcp-remote-client-outbound-connector.json +2394 -949
  10. package/src/element-templates/app-integrations-connector.json +1047 -0
  11. package/src/element-templates/asana-connector.json +943 -109
  12. package/src/element-templates/automation-anywhere-outbound-connector.json +2240 -1747
  13. package/src/element-templates/aws-bedrock-agentcore-long-term-memory-outbound-connector.json +1068 -30
  14. package/src/element-templates/aws-bedrock-agentcore-runtime-outbound-connector.json +386 -5
  15. package/src/element-templates/aws-bedrock-codeinterpreter-outbound-connector.json +442 -5
  16. package/src/element-templates/aws-bedrock-knowledgebase-outbound-connector.json +417 -5
  17. package/src/element-templates/aws-bedrock-outbound-connector.json +2273 -623
  18. package/src/element-templates/aws-comprehend-outbound-connector.json +1573 -1
  19. package/src/element-templates/aws-dynamodb-outbound-connector.json +2950 -162
  20. package/src/element-templates/aws-eventbridge-connector-boundary.json +40 -40
  21. package/src/element-templates/aws-eventbridge-connector-intermediate.json +62 -62
  22. package/src/element-templates/aws-eventbridge-connector-start-event.json +33 -33
  23. package/src/element-templates/aws-eventbridge-outbound-connector.json +838 -424
  24. package/src/element-templates/aws-lambda-outbound-connector.json +495 -96
  25. package/src/element-templates/aws-s3-outbound-connector.json +2238 -44
  26. package/src/element-templates/aws-sagemaker-outbound-connector.json +681 -52
  27. package/src/element-templates/aws-sns-inbound-boundary.json +4 -3
  28. package/src/element-templates/aws-sns-inbound-intermediate.json +341 -340
  29. package/src/element-templates/aws-sns-inbound-message-start.json +241 -240
  30. package/src/element-templates/aws-sns-inbound-receive.json +4 -3
  31. package/src/element-templates/aws-sns-inbound-start-event.json +133 -133
  32. package/src/element-templates/aws-sns-outbound-connector.json +581 -124
  33. package/src/element-templates/aws-sqs-boundary-connector.json +939 -420
  34. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +851 -332
  35. package/src/element-templates/aws-sqs-outbound-connector.json +589 -136
  36. package/src/element-templates/aws-sqs-receive-connector.json +525 -7
  37. package/src/element-templates/aws-sqs-start-event-connector.json +380 -380
  38. package/src/element-templates/aws-sqs-start-message.json +736 -185
  39. package/src/element-templates/aws-textract-outbound-connector.json +866 -131
  40. package/src/element-templates/azure-blobstorage-outbound-connector.json +1648 -225
  41. package/src/element-templates/azure-open-ai-connector.json +1371 -8
  42. package/src/element-templates/blue-prism-connector.json +609 -30
  43. package/src/element-templates/box-outbound-connector.json +2356 -272
  44. package/src/element-templates/csv-outbound-connector.json +449 -0
  45. package/src/element-templates/easy-post-connector.json +1251 -170
  46. package/src/element-templates/email-outbound-connector.json +3087 -1013
  47. package/src/element-templates/embeddings-vector-database-outbound-connector.json +2161 -1
  48. package/src/element-templates/github-connector.json +18554 -14368
  49. package/src/element-templates/github-webhook-connector-boundary.json +24 -24
  50. package/src/element-templates/github-webhook-connector-intermediate.json +8 -8
  51. package/src/element-templates/github-webhook-connector-message-start.json +8 -8
  52. package/src/element-templates/github-webhook-connector-receive.json +8 -8
  53. package/src/element-templates/github-webhook-connector-start-event.json +58 -58
  54. package/src/element-templates/gitlab-connector.json +3022 -1120
  55. package/src/element-templates/google-cloud-storage-outbound-connector.json +1447 -240
  56. package/src/element-templates/google-drive-outbound-connector.json +2980 -1428
  57. package/src/element-templates/google-gemini-outbound-connector.json +41 -55
  58. package/src/element-templates/google-maps-platform-connector.json +688 -137
  59. package/src/element-templates/google-sheets-outbound-connector.json +3186 -2030
  60. package/src/element-templates/graphql-outbound-connector.json +4149 -1485
  61. package/src/element-templates/http-json-connector.json +6143 -2053
  62. package/src/element-templates/http-polling-boundary-catch-event-connector.json +2426 -364
  63. package/src/element-templates/http-polling-connector.json +3312 -1250
  64. package/src/element-templates/hubspot-outbound-connector.json +2817 -67
  65. package/src/element-templates/hugging-face-connector.json +83 -82
  66. package/src/element-templates/jdbc-outbound-connector.json +506 -9
  67. package/src/element-templates/kafka-inbound-connector-boundary.json +968 -971
  68. package/src/element-templates/kafka-inbound-connector-intermediate.json +53 -56
  69. package/src/element-templates/kafka-inbound-connector-receive.json +9 -12
  70. package/src/element-templates/kafka-inbound-connector-start-message.json +545 -548
  71. package/src/element-templates/kafka-inbound-connector.json +240 -240
  72. package/src/element-templates/kafka-outbound-connector.json +304 -308
  73. package/src/element-templates/microsoft-o365-email-boundary-event-connector.json +7 -10
  74. package/src/element-templates/microsoft-o365-email-intermediate-catch-event-connector.json +7 -10
  75. package/src/element-templates/microsoft-o365-email-message-start-event-connector.json +7 -10
  76. package/src/element-templates/microsoft-office365-mail-connector.json +2077 -35
  77. package/src/element-templates/microsoft-teams-outbound-connector.json +2897 -456
  78. package/src/element-templates/openai-connector.json +701 -207
  79. package/src/element-templates/operate-connector.json +83 -86
  80. package/src/element-templates/orchestration-connector.json +1843 -0
  81. package/src/element-templates/power-automate-connector.json +62 -62
  82. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +772 -774
  83. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +456 -458
  84. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +573 -575
  85. package/src/element-templates/rabbitmq-inbound-connector-receive.json +5 -7
  86. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +347 -347
  87. package/src/element-templates/rabbitmq-outbound-connector.json +631 -631
  88. package/src/element-templates/rpa-connector.json +6 -6
  89. package/src/element-templates/salesforce-connector.json +653 -19
  90. package/src/element-templates/send-message-connector-intermediate-throw-event.json +301 -1
  91. package/src/element-templates/send-message-connector-message-end-event.json +301 -1
  92. package/src/element-templates/send-message-connector-send-task.json +300 -1
  93. package/src/element-templates/sendgrid-outbound-connector.json +790 -790
  94. package/src/element-templates/servicenow-connector.json +1364 -7
  95. package/src/element-templates/servicenow-flow-starter-connector.json +16 -16
  96. package/src/element-templates/servicenow-incident-connector.json +1075 -29
  97. package/src/element-templates/slack-inbound-boundary.json +493 -493
  98. package/src/element-templates/slack-inbound-intermediate.json +448 -448
  99. package/src/element-templates/slack-inbound-message-start.json +369 -369
  100. package/src/element-templates/slack-inbound-receive.json +2 -2
  101. package/src/element-templates/slack-inbound-start-event.json +328 -328
  102. package/src/element-templates/slack-outbound-connector.json +2365 -1262
  103. package/src/element-templates/soap-outbound-connector.json +113 -117
  104. package/src/element-templates/twilio-connector.json +1186 -373
  105. package/src/element-templates/twilio-webhook-boundary-connector.json +9 -10
  106. package/src/element-templates/twilio-webhook-connector.json +60 -61
  107. package/src/element-templates/twilio-webhook-intermediate-connector.json +31 -32
  108. package/src/element-templates/twilio-webhook-message-start-connector.json +10 -11
  109. package/src/element-templates/twilio-webhook-receive-connector.json +9 -10
  110. package/src/element-templates/uipath-connector.json +668 -50
  111. package/src/element-templates/webhook-connector-boundary.json +1040 -385
  112. package/src/element-templates/webhook-connector-intermediate.json +2100 -1445
  113. package/src/element-templates/webhook-connector-receive.json +659 -5
  114. package/src/element-templates/webhook-connector-start-event.json +1860 -1299
  115. package/src/element-templates/webhook-connector-start-message.json +1535 -848
  116. package/src/element-templates/whatsapp-connector.json +393 -23
@@ -1,13 +1,11 @@
1
1
  [
2
2
  {
3
3
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4
- "name": "MCP Remote Client (early access)",
4
+ "name": "MCP Remote Client",
5
5
  "id": "io.camunda.connectors.agenticai.mcp.remoteclient.v0",
6
- "description": "MCP (Model Context Protocol) client, operating on temporary remote connections. Only supports tool operations.",
7
- "metadata": {
8
- "keywords": []
9
- },
10
- "version": 0,
6
+ "description": "MCP (Model Context Protocol) client, operating on temporary remote connections.",
7
+ "documentationRef": "https://docs.camunda.io/docs/8.9/components/connectors/out-of-the-box-connectors/agentic-ai-mcp-remote-client-connector/",
8
+ "version": 3,
11
9
  "category": {
12
10
  "id": "aiTools",
13
11
  "name": "AI Tools"
@@ -17,22 +15,36 @@
17
15
  "value": "bpmn:ServiceTask"
18
16
  },
19
17
  "engines": {
20
- "camunda": "^8.8"
18
+ "camunda": "^8.9"
21
19
  },
22
20
  "groups": [
23
21
  {
24
- "id": "connection",
25
- "label": "HTTP Connection",
26
- "tooltip": "Configure the HTTP/SSE connection to the remote MCP server. Setting authentication headers is not supported yet."
22
+ "id": "transport",
23
+ "label": "Transport",
24
+ "tooltip": "Configure the connection to the remote MCP server."
27
25
  },
28
26
  {
29
- "id": "tools",
30
- "label": "Tools"
27
+ "id": "authentication",
28
+ "label": "Authentication"
29
+ },
30
+ {
31
+ "id": "options",
32
+ "label": "Options"
33
+ },
34
+ {
35
+ "id": "connectorMode",
36
+ "label": "Connector mode",
37
+ "tooltip": "Select how this connector is used. When the connector is used as an AI agent tool, select the AI Agent tool mode."
31
38
  },
32
39
  {
33
40
  "id": "operation",
34
41
  "label": "Operation"
35
42
  },
43
+ {
44
+ "id": "filters",
45
+ "label": "Filters",
46
+ "openByDefault": false
47
+ },
36
48
  {
37
49
  "id": "connector",
38
50
  "label": "Connector"
@@ -52,7 +64,7 @@
52
64
  ],
53
65
  "properties": [
54
66
  {
55
- "value": "io.camunda.agenticai:mcpremoteclient:0",
67
+ "value": "io.camunda.agenticai:mcpremoteclient:1",
56
68
  "binding": {
57
69
  "property": "type",
58
70
  "type": "zeebe:taskDefinition"
@@ -65,588 +77,317 @@
65
77
  "name": "io.camunda.agenticai.gateway.type",
66
78
  "type": "zeebe:property"
67
79
  },
80
+ "condition": {
81
+ "property": "data.connectorMode.type",
82
+ "equals": "aiAgentTool",
83
+ "type": "simple"
84
+ },
68
85
  "type": "Hidden"
69
86
  },
70
87
  {
71
- "id": "data.connection.sseUrl",
72
- "label": "SSE URL",
73
- "description": "SSE URL to connect to the MCP server. Typically ends with <code>/sse</code>.",
88
+ "id": "data.transport.type",
89
+ "label": "Type",
90
+ "description": "Specify the MCP transport type.",
91
+ "value": "http",
92
+ "group": "transport",
93
+ "binding": {
94
+ "name": "data.transport.type",
95
+ "type": "zeebe:input"
96
+ },
97
+ "type": "Dropdown",
98
+ "choices": [
99
+ {
100
+ "name": "Streamable HTTP",
101
+ "value": "http"
102
+ },
103
+ {
104
+ "name": "SSE",
105
+ "value": "sse"
106
+ }
107
+ ]
108
+ },
109
+ {
110
+ "id": "data.transport.http.url",
111
+ "label": "URL",
112
+ "description": "URL to connect to the MCP server. Typically ends with <code>/mcp</code>.",
74
113
  "optional": false,
75
114
  "constraints": {
76
115
  "notEmpty": true
77
116
  },
78
117
  "feel": "optional",
79
- "group": "connection",
118
+ "group": "transport",
80
119
  "binding": {
81
- "name": "data.connection.sseUrl",
120
+ "name": "data.transport.http.url",
82
121
  "type": "zeebe:input"
83
122
  },
123
+ "condition": {
124
+ "property": "data.transport.type",
125
+ "equals": "http",
126
+ "type": "simple"
127
+ },
84
128
  "type": "String"
85
129
  },
86
130
  {
87
- "id": "data.connection.headers",
131
+ "id": "data.transport.http.headers",
88
132
  "label": "HTTP headers",
89
- "description": "Map of HTTP headers to add to the request <strong>(NOT SUPPORTED YET)</strong>.",
133
+ "description": "Map of HTTP headers to add to the request.",
90
134
  "optional": true,
91
- "group": "connection",
135
+ "feel": "required",
136
+ "group": "transport",
92
137
  "binding": {
93
- "name": "data.connection.headers",
138
+ "name": "data.transport.http.headers",
94
139
  "type": "zeebe:input"
95
140
  },
96
- "type": "Hidden"
141
+ "condition": {
142
+ "property": "data.transport.type",
143
+ "equals": "http",
144
+ "type": "simple"
145
+ },
146
+ "type": "String"
97
147
  },
98
148
  {
99
- "id": "data.connection.timeout",
149
+ "id": "data.transport.http.timeout",
100
150
  "label": "Timeout",
101
151
  "description": "Timeout for individual HTTP requests as ISO-8601 duration (example: <code>PT30S</code>)",
102
152
  "optional": true,
103
- "group": "connection",
104
- "binding": {
105
- "name": "data.connection.timeout",
106
- "type": "zeebe:input"
107
- },
108
- "type": "Hidden"
109
- },
110
- {
111
- "id": "data.tools.included",
112
- "label": "Included tools",
113
- "description": "List of tools that can be used by the MCP client. By default, all tools are allowed.",
114
- "optional": true,
115
- "feel": "required",
116
- "group": "tools",
153
+ "feel": "optional",
154
+ "group": "transport",
117
155
  "binding": {
118
- "name": "data.tools.included",
156
+ "name": "data.transport.http.timeout",
119
157
  "type": "zeebe:input"
120
158
  },
121
- "type": "Text"
122
- },
123
- {
124
- "id": "data.tools.excluded",
125
- "label": "Excluded tools",
126
- "description": "List of tools that are not allowed to be used by the MCP client. Will override any included tools.",
127
- "optional": true,
128
- "feel": "required",
129
- "group": "tools",
130
- "binding": {
131
- "name": "data.tools.excluded",
132
- "type": "zeebe:input"
159
+ "condition": {
160
+ "property": "data.transport.type",
161
+ "equals": "http",
162
+ "type": "simple"
133
163
  },
134
- "type": "Text"
164
+ "type": "String"
135
165
  },
136
166
  {
137
- "id": "data.operation.method",
138
- "label": "Method",
139
- "description": "The MCP method to be called, e.g. <code>tools/list</code>.",
167
+ "id": "data.transport.sse.url",
168
+ "label": "URL",
169
+ "description": "URL to connect to the MCP server. Typically ends with <code>/sse</code>.",
140
170
  "optional": false,
141
- "value": "=toolCall.method",
142
171
  "constraints": {
143
172
  "notEmpty": true
144
173
  },
145
174
  "feel": "optional",
146
- "group": "operation",
175
+ "group": "transport",
147
176
  "binding": {
148
- "name": "data.operation.method",
177
+ "name": "data.transport.sse.url",
149
178
  "type": "zeebe:input"
150
179
  },
151
- "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>",
180
+ "condition": {
181
+ "property": "data.transport.type",
182
+ "equals": "sse",
183
+ "type": "simple"
184
+ },
152
185
  "type": "String"
153
186
  },
154
187
  {
155
- "id": "data.operation.params",
156
- "label": "Parameters",
157
- "description": "The parameters to be passed to the MCP method.",
188
+ "id": "data.transport.sse.headers",
189
+ "label": "HTTP headers",
190
+ "description": "Map of HTTP headers to add to the request.",
158
191
  "optional": true,
159
- "value": "=toolCall.params",
160
192
  "feel": "required",
161
- "group": "operation",
193
+ "group": "transport",
162
194
  "binding": {
163
- "name": "data.operation.params",
195
+ "name": "data.transport.sse.headers",
164
196
  "type": "zeebe:input"
165
197
  },
166
- "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.",
198
+ "condition": {
199
+ "property": "data.transport.type",
200
+ "equals": "sse",
201
+ "type": "simple"
202
+ },
167
203
  "type": "String"
168
204
  },
169
205
  {
170
- "id": "version",
171
- "label": "Version",
172
- "description": "Version of the element template",
173
- "value": "0",
174
- "group": "connector",
206
+ "id": "data.transport.sse.timeout",
207
+ "label": "Timeout",
208
+ "description": "Timeout for individual HTTP requests as ISO-8601 duration (example: <code>PT30S</code>)",
209
+ "optional": true,
210
+ "feel": "optional",
211
+ "group": "transport",
175
212
  "binding": {
176
- "key": "elementTemplateVersion",
177
- "type": "zeebe:taskHeader"
213
+ "name": "data.transport.sse.timeout",
214
+ "type": "zeebe:input"
178
215
  },
179
- "type": "Hidden"
180
- },
181
- {
182
- "id": "id",
183
- "label": "ID",
184
- "description": "ID of the element template",
185
- "value": "io.camunda.connectors.agenticai.mcp.remoteclient.v0",
186
- "group": "connector",
187
- "binding": {
188
- "key": "elementTemplateId",
189
- "type": "zeebe:taskHeader"
216
+ "condition": {
217
+ "property": "data.transport.type",
218
+ "equals": "sse",
219
+ "type": "simple"
190
220
  },
191
- "type": "Hidden"
221
+ "type": "String"
192
222
  },
193
223
  {
194
- "id": "resultVariable",
195
- "label": "Result variable",
196
- "description": "Name of variable to store the response in",
197
- "value": "toolCallResult",
198
- "group": "output",
224
+ "id": "data.transport.http.authentication.type",
225
+ "label": "Type",
226
+ "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
227
+ "value": "noAuth",
228
+ "group": "authentication",
199
229
  "binding": {
200
- "key": "resultVariable",
201
- "type": "zeebe:taskHeader"
230
+ "name": "data.transport.http.authentication.type",
231
+ "type": "zeebe:input"
202
232
  },
203
- "type": "String"
233
+ "condition": {
234
+ "property": "data.transport.type",
235
+ "equals": "http",
236
+ "type": "simple"
237
+ },
238
+ "type": "Dropdown",
239
+ "choices": [
240
+ {
241
+ "name": "None",
242
+ "value": "noAuth"
243
+ },
244
+ {
245
+ "name": "Basic",
246
+ "value": "basic"
247
+ },
248
+ {
249
+ "name": "Bearer token",
250
+ "value": "bearer"
251
+ },
252
+ {
253
+ "name": "OAuth 2.0",
254
+ "value": "oauth-client-credentials-flow"
255
+ }
256
+ ]
204
257
  },
205
258
  {
206
- "id": "resultExpression",
207
- "label": "Result expression",
208
- "description": "Expression to map the response into process variables",
209
- "feel": "required",
210
- "group": "output",
259
+ "id": "data.transport.http.authentication.username",
260
+ "label": "Username",
261
+ "optional": false,
262
+ "constraints": {
263
+ "notEmpty": true
264
+ },
265
+ "feel": "optional",
266
+ "group": "authentication",
211
267
  "binding": {
212
- "key": "resultExpression",
213
- "type": "zeebe:taskHeader"
268
+ "name": "data.transport.http.authentication.username",
269
+ "type": "zeebe:input"
214
270
  },
215
- "type": "Text"
216
- },
217
- {
218
- "id": "errorExpression",
219
- "label": "Error expression",
220
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
221
- "feel": "required",
222
- "group": "error",
223
- "binding": {
224
- "key": "errorExpression",
225
- "type": "zeebe:taskHeader"
226
- },
227
- "type": "Text"
228
- },
229
- {
230
- "id": "retryCount",
231
- "label": "Retries",
232
- "description": "Number of retries",
233
- "value": "3",
234
- "feel": "optional",
235
- "group": "retries",
236
- "binding": {
237
- "property": "retries",
238
- "type": "zeebe:taskDefinition"
239
- },
240
- "type": "String"
241
- },
242
- {
243
- "id": "retryBackoff",
244
- "label": "Retry backoff",
245
- "description": "ISO-8601 duration to wait between retries",
246
- "value": "PT0S",
247
- "group": "retries",
248
- "binding": {
249
- "key": "retryBackoff",
250
- "type": "zeebe:taskHeader"
271
+ "condition": {
272
+ "allMatch": [
273
+ {
274
+ "property": "data.transport.http.authentication.type",
275
+ "equals": "basic",
276
+ "type": "simple"
277
+ },
278
+ {
279
+ "property": "data.transport.type",
280
+ "equals": "http",
281
+ "type": "simple"
282
+ }
283
+ ]
251
284
  },
252
285
  "type": "String"
253
- }
254
- ],
255
- "icon": {
256
- "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAwIDIwMCI+CiAgICA8cGF0aCBkPSJNMjUgOTcuODUyOEw5Mi44ODIzIDI5Ljk3MDZDMTAyLjI1NSAyMC41OTggMTE3LjQ1MSAyMC41OTggMTI2LjgyMyAyOS45NzA2VjI5Ljk3MDZDMTM2LjE5NiAzOS4zNDMxIDEzNi4xOTYgNTQuNTM5MSAxMjYuODIzIDYzLjkxMTdMNzUuNTU4MSAxMTUuMTc3IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgIDxwYXRoIGQ9Ik03Ni4yNjUzIDExNC40N0wxMjYuODIzIDYzLjkxMTdDMTM2LjE5NiA1NC41MzkxIDE1MS4zOTIgNTQuNTM5MSAxNjAuNzY1IDYzLjkxMTdMMTYxLjExOCA2NC4yNjUyQzE3MC40OTEgNzMuNjM3OCAxNzAuNDkxIDg4LjgzMzggMTYxLjExOCA5OC4yMDYzTDk5LjcyNDggMTU5LjZDOTYuNjAwNiAxNjIuNzI0IDk2LjYwMDYgMTY3Ljc4OSA5OS43MjQ4IDE3MC45MTNMMTEyLjMzMSAxODMuNTIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgPHBhdGggZD0iTTEwOS44NTMgNDYuOTQxMUw1OS42NDgyIDk3LjE0NTdDNTAuMjc1NyAxMDYuNTE4IDUwLjI3NTcgMTIxLjcxNCA1OS42NDgyIDEzMS4wODdWMTMxLjA4N0M2OS4wMjA4IDE0MC40NTkgODQuMjE2OCAxNDAuNDU5IDkzLjU4OTQgMTMxLjA4N0wxNDMuNzk0IDgwLjg4MjIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K"
257
- }
258
- },
259
- {
260
- "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
261
- "name": "MCP Remote Client (early access)",
262
- "id": "io.camunda.connectors.agenticai.mcp.remoteclient.v0",
263
- "description": "MCP (Model Context Protocol) client, operating on temporary remote connections.",
264
- "metadata": {
265
- "keywords": []
266
- },
267
- "version": 1,
268
- "category": {
269
- "id": "aiTools",
270
- "name": "AI Tools"
271
- },
272
- "appliesTo": ["bpmn:Task"],
273
- "elementType": {
274
- "value": "bpmn:ServiceTask"
275
- },
276
- "engines": {
277
- "camunda": "^8.9"
278
- },
279
- "groups": [
280
- {
281
- "id": "transport",
282
- "label": "Transport",
283
- "tooltip": "Configure the connection to the remote MCP server."
284
- },
285
- {
286
- "id": "authentication",
287
- "label": "Authentication"
288
- },
289
- {
290
- "id": "options",
291
- "label": "Options"
292
- },
293
- {
294
- "id": "connectorMode",
295
- "label": "Connector mode",
296
- "tooltip": "Select how this connector is used. When the connector is used as an AI agent tool, select the AI Agent tool mode."
297
- },
298
- {
299
- "id": "operation",
300
- "label": "Operation"
301
286
  },
302
287
  {
303
- "id": "tools",
304
- "label": "Tools",
305
- "openByDefault": false
306
- },
307
- {
308
- "id": "connector",
309
- "label": "Connector"
310
- },
311
- {
312
- "id": "output",
313
- "label": "Output mapping"
314
- },
315
- {
316
- "id": "error",
317
- "label": "Error handling"
318
- },
319
- {
320
- "id": "retries",
321
- "label": "Retries"
322
- }
323
- ],
324
- "properties": [
325
- {
326
- "value": "io.camunda.agenticai:mcpremoteclient:1",
327
- "binding": {
328
- "property": "type",
329
- "type": "zeebe:taskDefinition"
288
+ "id": "data.transport.http.authentication.password",
289
+ "label": "Password",
290
+ "optional": false,
291
+ "constraints": {
292
+ "notEmpty": true
330
293
  },
331
- "type": "Hidden"
332
- },
333
- {
334
- "value": "mcpClient",
294
+ "feel": "optional",
295
+ "group": "authentication",
335
296
  "binding": {
336
- "name": "io.camunda.agenticai.gateway.type",
337
- "type": "zeebe:property"
297
+ "name": "data.transport.http.authentication.password",
298
+ "type": "zeebe:input"
338
299
  },
339
300
  "condition": {
340
- "property": "data.connectorMode.type",
341
- "equals": "aiAgentTool",
342
- "type": "simple"
343
- },
344
- "type": "Hidden"
345
- },
346
- {
347
- "id": "data.transport.type",
348
- "label": "Type",
349
- "description": "Specify the MCP transport type.",
350
- "value": "http",
351
- "group": "transport",
352
- "binding": {
353
- "name": "data.transport.type",
354
- "type": "zeebe:input"
301
+ "allMatch": [
302
+ {
303
+ "property": "data.transport.http.authentication.type",
304
+ "equals": "basic",
305
+ "type": "simple"
306
+ },
307
+ {
308
+ "property": "data.transport.type",
309
+ "equals": "http",
310
+ "type": "simple"
311
+ }
312
+ ]
355
313
  },
356
- "type": "Dropdown",
357
- "choices": [
358
- {
359
- "name": "Streamable HTTP",
360
- "value": "http"
361
- },
362
- {
363
- "name": "SSE",
364
- "value": "sse"
365
- }
366
- ]
314
+ "type": "String"
367
315
  },
368
316
  {
369
- "id": "data.transport.http.url",
370
- "label": "URL",
371
- "description": "URL to connect to the MCP server. Typically ends with <code>/mcp</code>.",
317
+ "id": "data.transport.http.authentication.token",
318
+ "label": "Bearer token",
372
319
  "optional": false,
373
320
  "constraints": {
374
321
  "notEmpty": true
375
322
  },
376
323
  "feel": "optional",
377
- "group": "transport",
324
+ "group": "authentication",
378
325
  "binding": {
379
- "name": "data.transport.http.url",
326
+ "name": "data.transport.http.authentication.token",
380
327
  "type": "zeebe:input"
381
328
  },
382
329
  "condition": {
383
- "property": "data.transport.type",
384
- "equals": "http",
385
- "type": "simple"
330
+ "allMatch": [
331
+ {
332
+ "property": "data.transport.http.authentication.type",
333
+ "equals": "bearer",
334
+ "type": "simple"
335
+ },
336
+ {
337
+ "property": "data.transport.type",
338
+ "equals": "http",
339
+ "type": "simple"
340
+ }
341
+ ]
386
342
  },
387
343
  "type": "String"
388
344
  },
389
345
  {
390
- "id": "data.transport.http.headers",
391
- "label": "HTTP headers",
392
- "description": "Map of HTTP headers to add to the request.",
393
- "optional": true,
394
- "feel": "required",
395
- "group": "transport",
346
+ "id": "data.transport.http.authentication.oauthTokenEndpoint",
347
+ "label": "OAuth 2.0 token endpoint",
348
+ "description": "The OAuth token endpoint",
349
+ "optional": false,
350
+ "constraints": {
351
+ "notEmpty": true,
352
+ "pattern": {
353
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
354
+ "message": "Must be a http(s) URL"
355
+ }
356
+ },
357
+ "feel": "optional",
358
+ "group": "authentication",
396
359
  "binding": {
397
- "name": "data.transport.http.headers",
360
+ "name": "data.transport.http.authentication.oauthTokenEndpoint",
398
361
  "type": "zeebe:input"
399
362
  },
400
363
  "condition": {
401
- "property": "data.transport.type",
402
- "equals": "http",
403
- "type": "simple"
364
+ "allMatch": [
365
+ {
366
+ "property": "data.transport.http.authentication.type",
367
+ "equals": "oauth-client-credentials-flow",
368
+ "type": "simple"
369
+ },
370
+ {
371
+ "property": "data.transport.type",
372
+ "equals": "http",
373
+ "type": "simple"
374
+ }
375
+ ]
404
376
  },
405
377
  "type": "String"
406
378
  },
407
379
  {
408
- "id": "data.transport.http.timeout",
409
- "label": "Timeout",
410
- "description": "Timeout for individual HTTP requests as ISO-8601 duration (example: <code>PT30S</code>)",
411
- "optional": true,
380
+ "id": "data.transport.http.authentication.clientId",
381
+ "label": "Client ID",
382
+ "description": "Your application's client ID from the OAuth client",
383
+ "optional": false,
384
+ "constraints": {
385
+ "notEmpty": true
386
+ },
412
387
  "feel": "optional",
413
- "group": "transport",
388
+ "group": "authentication",
414
389
  "binding": {
415
- "name": "data.transport.http.timeout",
416
- "type": "zeebe:input"
417
- },
418
- "condition": {
419
- "property": "data.transport.type",
420
- "equals": "http",
421
- "type": "simple"
422
- },
423
- "type": "String"
424
- },
425
- {
426
- "id": "data.transport.sse.url",
427
- "label": "URL",
428
- "description": "URL to connect to the MCP server. Typically ends with <code>/sse</code>.",
429
- "optional": false,
430
- "constraints": {
431
- "notEmpty": true
432
- },
433
- "feel": "optional",
434
- "group": "transport",
435
- "binding": {
436
- "name": "data.transport.sse.url",
437
- "type": "zeebe:input"
438
- },
439
- "condition": {
440
- "property": "data.transport.type",
441
- "equals": "sse",
442
- "type": "simple"
443
- },
444
- "type": "String"
445
- },
446
- {
447
- "id": "data.transport.sse.headers",
448
- "label": "HTTP headers",
449
- "description": "Map of HTTP headers to add to the request.",
450
- "optional": true,
451
- "feel": "required",
452
- "group": "transport",
453
- "binding": {
454
- "name": "data.transport.sse.headers",
455
- "type": "zeebe:input"
456
- },
457
- "condition": {
458
- "property": "data.transport.type",
459
- "equals": "sse",
460
- "type": "simple"
461
- },
462
- "type": "String"
463
- },
464
- {
465
- "id": "data.transport.sse.timeout",
466
- "label": "Timeout",
467
- "description": "Timeout for individual HTTP requests as ISO-8601 duration (example: <code>PT30S</code>)",
468
- "optional": true,
469
- "feel": "optional",
470
- "group": "transport",
471
- "binding": {
472
- "name": "data.transport.sse.timeout",
473
- "type": "zeebe:input"
474
- },
475
- "condition": {
476
- "property": "data.transport.type",
477
- "equals": "sse",
478
- "type": "simple"
479
- },
480
- "type": "String"
481
- },
482
- {
483
- "id": "data.transport.http.authentication.type",
484
- "label": "Type",
485
- "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
486
- "value": "noAuth",
487
- "group": "authentication",
488
- "binding": {
489
- "name": "data.transport.http.authentication.type",
490
- "type": "zeebe:input"
491
- },
492
- "condition": {
493
- "property": "data.transport.type",
494
- "equals": "http",
495
- "type": "simple"
496
- },
497
- "type": "Dropdown",
498
- "choices": [
499
- {
500
- "name": "None",
501
- "value": "noAuth"
502
- },
503
- {
504
- "name": "Basic",
505
- "value": "basic"
506
- },
507
- {
508
- "name": "Bearer token",
509
- "value": "bearer"
510
- },
511
- {
512
- "name": "OAuth 2.0",
513
- "value": "oauth-client-credentials-flow"
514
- }
515
- ]
516
- },
517
- {
518
- "id": "data.transport.http.authentication.username",
519
- "label": "Username",
520
- "optional": false,
521
- "constraints": {
522
- "notEmpty": true
523
- },
524
- "feel": "optional",
525
- "group": "authentication",
526
- "binding": {
527
- "name": "data.transport.http.authentication.username",
528
- "type": "zeebe:input"
529
- },
530
- "condition": {
531
- "allMatch": [
532
- {
533
- "property": "data.transport.http.authentication.type",
534
- "equals": "basic",
535
- "type": "simple"
536
- },
537
- {
538
- "property": "data.transport.type",
539
- "equals": "http",
540
- "type": "simple"
541
- }
542
- ]
543
- },
544
- "type": "String"
545
- },
546
- {
547
- "id": "data.transport.http.authentication.password",
548
- "label": "Password",
549
- "optional": false,
550
- "constraints": {
551
- "notEmpty": true
552
- },
553
- "feel": "optional",
554
- "group": "authentication",
555
- "binding": {
556
- "name": "data.transport.http.authentication.password",
557
- "type": "zeebe:input"
558
- },
559
- "condition": {
560
- "allMatch": [
561
- {
562
- "property": "data.transport.http.authentication.type",
563
- "equals": "basic",
564
- "type": "simple"
565
- },
566
- {
567
- "property": "data.transport.type",
568
- "equals": "http",
569
- "type": "simple"
570
- }
571
- ]
572
- },
573
- "type": "String"
574
- },
575
- {
576
- "id": "data.transport.http.authentication.token",
577
- "label": "Bearer token",
578
- "optional": false,
579
- "constraints": {
580
- "notEmpty": true
581
- },
582
- "feel": "optional",
583
- "group": "authentication",
584
- "binding": {
585
- "name": "data.transport.http.authentication.token",
586
- "type": "zeebe:input"
587
- },
588
- "condition": {
589
- "allMatch": [
590
- {
591
- "property": "data.transport.http.authentication.type",
592
- "equals": "bearer",
593
- "type": "simple"
594
- },
595
- {
596
- "property": "data.transport.type",
597
- "equals": "http",
598
- "type": "simple"
599
- }
600
- ]
601
- },
602
- "type": "String"
603
- },
604
- {
605
- "id": "data.transport.http.authentication.oauthTokenEndpoint",
606
- "label": "OAuth 2.0 token endpoint",
607
- "description": "The OAuth token endpoint",
608
- "optional": false,
609
- "constraints": {
610
- "notEmpty": true,
611
- "pattern": {
612
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
613
- "message": "Must be a http(s) URL"
614
- }
615
- },
616
- "feel": "optional",
617
- "group": "authentication",
618
- "binding": {
619
- "name": "data.transport.http.authentication.oauthTokenEndpoint",
620
- "type": "zeebe:input"
621
- },
622
- "condition": {
623
- "allMatch": [
624
- {
625
- "property": "data.transport.http.authentication.type",
626
- "equals": "oauth-client-credentials-flow",
627
- "type": "simple"
628
- },
629
- {
630
- "property": "data.transport.type",
631
- "equals": "http",
632
- "type": "simple"
633
- }
634
- ]
635
- },
636
- "type": "String"
637
- },
638
- {
639
- "id": "data.transport.http.authentication.clientId",
640
- "label": "Client ID",
641
- "description": "Your application's client ID from the OAuth client",
642
- "optional": false,
643
- "constraints": {
644
- "notEmpty": true
645
- },
646
- "feel": "optional",
647
- "group": "authentication",
648
- "binding": {
649
- "name": "data.transport.http.authentication.clientId",
390
+ "name": "data.transport.http.authentication.clientId",
650
391
  "type": "zeebe:input"
651
392
  },
652
393
  "condition": {
@@ -1152,13 +893,33 @@
1152
893
  },
1153
894
  "type": "Dropdown",
1154
895
  "choices": [
896
+ {
897
+ "name": "List Tools",
898
+ "value": "tools/list"
899
+ },
1155
900
  {
1156
901
  "name": "Call Tool",
1157
902
  "value": "tools/call"
1158
903
  },
1159
904
  {
1160
- "name": "List Tools",
1161
- "value": "tools/list"
905
+ "name": "List Resources",
906
+ "value": "resources/list"
907
+ },
908
+ {
909
+ "name": "List Resource Templates",
910
+ "value": "resources/templates/list"
911
+ },
912
+ {
913
+ "name": "Read Resource",
914
+ "value": "resources/read"
915
+ },
916
+ {
917
+ "name": "List Prompts",
918
+ "value": "prompts/list"
919
+ },
920
+ {
921
+ "name": "Get Prompt",
922
+ "value": "prompts/get"
1162
923
  }
1163
924
  ]
1164
925
  },
@@ -1220,8 +981,114 @@
1220
981
  "type": "String"
1221
982
  },
1222
983
  {
1223
- "id": "data.connectorMode.toolOperation.method",
1224
- "label": "Method",
984
+ "id": "data.connectorMode.operation.resourceUri",
985
+ "label": "Resource URI",
986
+ "description": "The URI of the resource to read.",
987
+ "optional": false,
988
+ "constraints": {
989
+ "notEmpty": true
990
+ },
991
+ "feel": "optional",
992
+ "group": "operation",
993
+ "binding": {
994
+ "name": "data.connectorMode.operation.resourceUri",
995
+ "type": "zeebe:input"
996
+ },
997
+ "condition": {
998
+ "allMatch": [
999
+ {
1000
+ "property": "data.connectorMode.operation.type",
1001
+ "equals": "resources/read",
1002
+ "type": "simple"
1003
+ },
1004
+ {
1005
+ "property": "data.connectorMode.type",
1006
+ "equals": "standalone",
1007
+ "type": "simple"
1008
+ }
1009
+ ]
1010
+ },
1011
+ "type": "String"
1012
+ },
1013
+ {
1014
+ "id": "data.connectorMode.operation.promptName",
1015
+ "label": "Prompt name",
1016
+ "description": "The name of the prompt to get.",
1017
+ "optional": false,
1018
+ "constraints": {
1019
+ "notEmpty": true
1020
+ },
1021
+ "feel": "optional",
1022
+ "group": "operation",
1023
+ "binding": {
1024
+ "name": "data.connectorMode.operation.promptName",
1025
+ "type": "zeebe:input"
1026
+ },
1027
+ "condition": {
1028
+ "allMatch": [
1029
+ {
1030
+ "property": "data.connectorMode.operation.type",
1031
+ "equals": "prompts/get",
1032
+ "type": "simple"
1033
+ },
1034
+ {
1035
+ "property": "data.connectorMode.type",
1036
+ "equals": "standalone",
1037
+ "type": "simple"
1038
+ }
1039
+ ]
1040
+ },
1041
+ "type": "String"
1042
+ },
1043
+ {
1044
+ "id": "data.connectorMode.operation.promptArguments",
1045
+ "label": "Prompt arguments",
1046
+ "description": "The arguments to pass to the prompt generation.",
1047
+ "optional": true,
1048
+ "feel": "required",
1049
+ "group": "operation",
1050
+ "binding": {
1051
+ "name": "data.connectorMode.operation.promptArguments",
1052
+ "type": "zeebe:input"
1053
+ },
1054
+ "condition": {
1055
+ "allMatch": [
1056
+ {
1057
+ "property": "data.connectorMode.operation.type",
1058
+ "equals": "prompts/get",
1059
+ "type": "simple"
1060
+ },
1061
+ {
1062
+ "property": "data.connectorMode.type",
1063
+ "equals": "standalone",
1064
+ "type": "simple"
1065
+ }
1066
+ ]
1067
+ },
1068
+ "type": "String"
1069
+ },
1070
+ {
1071
+ "id": "data.connectorMode.standaloneModeMeta",
1072
+ "label": "Metadata",
1073
+ "description": "MCP <code>_meta</code> parameters to be passed to the MCP request.",
1074
+ "optional": true,
1075
+ "feel": "required",
1076
+ "group": "operation",
1077
+ "binding": {
1078
+ "name": "data.connectorMode.meta",
1079
+ "type": "zeebe:input"
1080
+ },
1081
+ "condition": {
1082
+ "property": "data.connectorMode.type",
1083
+ "equals": "standalone",
1084
+ "type": "simple"
1085
+ },
1086
+ "tooltip": "Forwarded unmodified as the <code>_meta</code> field of the MCP request. Required metadata is defined by the MCP server. See the <a href=\"https://modelcontextprotocol.io/specification/2025-11-25/basic/index#_meta\">MCP specification</a> for details.",
1087
+ "type": "String"
1088
+ },
1089
+ {
1090
+ "id": "data.connectorMode.toolOperation.method",
1091
+ "label": "Method",
1225
1092
  "description": "The MCP method to be called, e.g. <code>tools/list</code>.",
1226
1093
  "optional": false,
1227
1094
  "value": "=toolCall.method",
@@ -1263,88 +1130,287 @@
1263
1130
  "type": "String"
1264
1131
  },
1265
1132
  {
1266
- "id": "data.tools.included",
1133
+ "id": "data.connectorMode.toolModeMeta",
1134
+ "label": "Metadata",
1135
+ "description": "MCP <code>_meta</code> parameters to be passed to the MCP request.",
1136
+ "optional": true,
1137
+ "feel": "required",
1138
+ "group": "operation",
1139
+ "binding": {
1140
+ "name": "data.connectorMode.meta",
1141
+ "type": "zeebe:input"
1142
+ },
1143
+ "condition": {
1144
+ "property": "data.connectorMode.type",
1145
+ "equals": "aiAgentTool",
1146
+ "type": "simple"
1147
+ },
1148
+ "tooltip": "Forwarded unmodified as the <code>_meta</code> field of the MCP request. Required metadata is defined by the MCP server. See the <a href=\"https://modelcontextprotocol.io/specification/2025-11-25/basic/index#_meta\">MCP specification</a> for details.",
1149
+ "type": "String"
1150
+ },
1151
+ {
1152
+ "id": "data.connectorMode.standaloneModeFilters.tools.included",
1267
1153
  "label": "Included tools",
1268
1154
  "description": "List of tools that can be used by the MCP client. By default, all tools are allowed.",
1269
1155
  "optional": true,
1270
1156
  "feel": "required",
1271
- "group": "tools",
1157
+ "group": "filters",
1272
1158
  "binding": {
1273
- "name": "data.tools.included",
1159
+ "name": "data.connectorMode.standaloneModeFilters.tools.included",
1274
1160
  "type": "zeebe:input"
1275
1161
  },
1162
+ "condition": {
1163
+ "allMatch": [
1164
+ {
1165
+ "property": "data.connectorMode.operation.type",
1166
+ "oneOf": ["tools/call", "tools/list"],
1167
+ "type": "simple"
1168
+ },
1169
+ {
1170
+ "property": "data.connectorMode.type",
1171
+ "equals": "standalone",
1172
+ "type": "simple"
1173
+ }
1174
+ ]
1175
+ },
1276
1176
  "type": "Text"
1277
1177
  },
1278
1178
  {
1279
- "id": "data.tools.excluded",
1179
+ "id": "data.connectorMode.standaloneModeFilters.tools.excluded",
1280
1180
  "label": "Excluded tools",
1281
1181
  "description": "List of tools that are not allowed to be used by the MCP client. Will override any included tools.",
1282
1182
  "optional": true,
1283
1183
  "feel": "required",
1284
- "group": "tools",
1184
+ "group": "filters",
1285
1185
  "binding": {
1286
- "name": "data.tools.excluded",
1186
+ "name": "data.connectorMode.standaloneModeFilters.tools.excluded",
1287
1187
  "type": "zeebe:input"
1288
1188
  },
1289
- "type": "Text"
1290
- },
1291
- {
1292
- "id": "version",
1293
- "label": "Version",
1294
- "description": "Version of the element template",
1295
- "value": "1",
1296
- "group": "connector",
1297
- "binding": {
1298
- "key": "elementTemplateVersion",
1299
- "type": "zeebe:taskHeader"
1189
+ "condition": {
1190
+ "allMatch": [
1191
+ {
1192
+ "property": "data.connectorMode.operation.type",
1193
+ "oneOf": ["tools/call", "tools/list"],
1194
+ "type": "simple"
1195
+ },
1196
+ {
1197
+ "property": "data.connectorMode.type",
1198
+ "equals": "standalone",
1199
+ "type": "simple"
1200
+ }
1201
+ ]
1300
1202
  },
1301
- "type": "Hidden"
1203
+ "type": "Text"
1302
1204
  },
1303
1205
  {
1304
- "id": "id",
1305
- "label": "ID",
1306
- "description": "ID of the element template",
1307
- "value": "io.camunda.connectors.agenticai.mcp.remoteclient.v0",
1308
- "group": "connector",
1206
+ "id": "data.connectorMode.standaloneModeFilters.resources.included",
1207
+ "label": "Included resources",
1208
+ "description": "List of resources that can be accessed by the MCP client. By default, all resources are allowed.",
1209
+ "optional": true,
1210
+ "feel": "required",
1211
+ "group": "filters",
1309
1212
  "binding": {
1310
- "key": "elementTemplateId",
1311
- "type": "zeebe:taskHeader"
1213
+ "name": "data.connectorMode.standaloneModeFilters.resources.included",
1214
+ "type": "zeebe:input"
1312
1215
  },
1313
- "type": "Hidden"
1314
- },
1315
- {
1316
- "id": "resultVariable",
1317
- "label": "Result variable",
1318
- "description": "Name of variable to store the response in",
1319
- "value": "toolCallResult",
1320
- "group": "output",
1321
- "binding": {
1322
- "key": "resultVariable",
1323
- "type": "zeebe:taskHeader"
1216
+ "condition": {
1217
+ "allMatch": [
1218
+ {
1219
+ "property": "data.connectorMode.operation.type",
1220
+ "oneOf": [
1221
+ "resources/read",
1222
+ "resources/list",
1223
+ "resources/templates/list"
1224
+ ],
1225
+ "type": "simple"
1226
+ },
1227
+ {
1228
+ "property": "data.connectorMode.type",
1229
+ "equals": "standalone",
1230
+ "type": "simple"
1231
+ }
1232
+ ]
1324
1233
  },
1325
- "type": "String"
1234
+ "type": "Text"
1326
1235
  },
1327
1236
  {
1328
- "id": "resultExpression",
1329
- "label": "Result expression",
1330
- "description": "Expression to map the response into process variables",
1237
+ "id": "data.connectorMode.standaloneModeFilters.resources.excluded",
1238
+ "label": "Excluded resources",
1239
+ "description": "List of resources that are not allowed to be accessed by the MCP client. Will override any included resources.",
1240
+ "optional": true,
1331
1241
  "feel": "required",
1332
- "group": "output",
1242
+ "group": "filters",
1333
1243
  "binding": {
1334
- "key": "resultExpression",
1335
- "type": "zeebe:taskHeader"
1244
+ "name": "data.connectorMode.standaloneModeFilters.resources.excluded",
1245
+ "type": "zeebe:input"
1246
+ },
1247
+ "condition": {
1248
+ "allMatch": [
1249
+ {
1250
+ "property": "data.connectorMode.operation.type",
1251
+ "oneOf": [
1252
+ "resources/read",
1253
+ "resources/list",
1254
+ "resources/templates/list"
1255
+ ],
1256
+ "type": "simple"
1257
+ },
1258
+ {
1259
+ "property": "data.connectorMode.type",
1260
+ "equals": "standalone",
1261
+ "type": "simple"
1262
+ }
1263
+ ]
1336
1264
  },
1337
1265
  "type": "Text"
1338
1266
  },
1339
1267
  {
1340
- "id": "errorExpression",
1341
- "label": "Error expression",
1342
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
1268
+ "id": "data.connectorMode.standaloneModeFilters.prompts.included",
1269
+ "label": "Included prompts",
1270
+ "description": "List of prompts that can be accessed by the MCP client. By default, all prompts are allowed.",
1271
+ "optional": true,
1343
1272
  "feel": "required",
1344
- "group": "error",
1273
+ "group": "filters",
1345
1274
  "binding": {
1346
- "key": "errorExpression",
1347
- "type": "zeebe:taskHeader"
1275
+ "name": "data.connectorMode.standaloneModeFilters.prompts.included",
1276
+ "type": "zeebe:input"
1277
+ },
1278
+ "condition": {
1279
+ "allMatch": [
1280
+ {
1281
+ "property": "data.connectorMode.operation.type",
1282
+ "oneOf": ["prompts/get", "prompts/list"],
1283
+ "type": "simple"
1284
+ },
1285
+ {
1286
+ "property": "data.connectorMode.type",
1287
+ "equals": "standalone",
1288
+ "type": "simple"
1289
+ }
1290
+ ]
1291
+ },
1292
+ "type": "Text"
1293
+ },
1294
+ {
1295
+ "id": "data.connectorMode.standaloneModeFilters.prompts.excluded",
1296
+ "label": "Excluded prompts",
1297
+ "description": "List of prompts that are not allowed to be accessed by the MCP client. Will override any included prompts.",
1298
+ "optional": true,
1299
+ "feel": "required",
1300
+ "group": "filters",
1301
+ "binding": {
1302
+ "name": "data.connectorMode.standaloneModeFilters.prompts.excluded",
1303
+ "type": "zeebe:input"
1304
+ },
1305
+ "condition": {
1306
+ "allMatch": [
1307
+ {
1308
+ "property": "data.connectorMode.operation.type",
1309
+ "oneOf": ["prompts/get", "prompts/list"],
1310
+ "type": "simple"
1311
+ },
1312
+ {
1313
+ "property": "data.connectorMode.type",
1314
+ "equals": "standalone",
1315
+ "type": "simple"
1316
+ }
1317
+ ]
1318
+ },
1319
+ "type": "Text"
1320
+ },
1321
+ {
1322
+ "id": "data.connectorMode.toolModeFilters.tools.included",
1323
+ "label": "Included tools",
1324
+ "description": "List of tools that can be used by the MCP client. By default, all tools are allowed.",
1325
+ "optional": true,
1326
+ "feel": "required",
1327
+ "group": "filters",
1328
+ "binding": {
1329
+ "name": "data.connectorMode.toolModeFilters.tools.included",
1330
+ "type": "zeebe:input"
1331
+ },
1332
+ "condition": {
1333
+ "property": "data.connectorMode.type",
1334
+ "equals": "aiAgentTool",
1335
+ "type": "simple"
1336
+ },
1337
+ "type": "Text"
1338
+ },
1339
+ {
1340
+ "id": "data.connectorMode.toolModeFilters.tools.excluded",
1341
+ "label": "Excluded tools",
1342
+ "description": "List of tools that are not allowed to be used by the MCP client. Will override any included tools.",
1343
+ "optional": true,
1344
+ "feel": "required",
1345
+ "group": "filters",
1346
+ "binding": {
1347
+ "name": "data.connectorMode.toolModeFilters.tools.excluded",
1348
+ "type": "zeebe:input"
1349
+ },
1350
+ "condition": {
1351
+ "property": "data.connectorMode.type",
1352
+ "equals": "aiAgentTool",
1353
+ "type": "simple"
1354
+ },
1355
+ "type": "Text"
1356
+ },
1357
+ {
1358
+ "id": "version",
1359
+ "label": "Version",
1360
+ "description": "Version of the element template",
1361
+ "value": "3",
1362
+ "group": "connector",
1363
+ "binding": {
1364
+ "key": "elementTemplateVersion",
1365
+ "type": "zeebe:taskHeader"
1366
+ },
1367
+ "type": "Hidden"
1368
+ },
1369
+ {
1370
+ "id": "id",
1371
+ "label": "ID",
1372
+ "description": "ID of the element template",
1373
+ "value": "io.camunda.connectors.agenticai.mcp.remoteclient.v0",
1374
+ "group": "connector",
1375
+ "binding": {
1376
+ "key": "elementTemplateId",
1377
+ "type": "zeebe:taskHeader"
1378
+ },
1379
+ "type": "Hidden"
1380
+ },
1381
+ {
1382
+ "id": "resultVariable",
1383
+ "label": "Result variable",
1384
+ "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>.",
1385
+ "value": "toolCallResult",
1386
+ "group": "output",
1387
+ "binding": {
1388
+ "key": "resultVariable",
1389
+ "type": "zeebe:taskHeader"
1390
+ },
1391
+ "type": "String"
1392
+ },
1393
+ {
1394
+ "id": "resultExpression",
1395
+ "label": "Result expression",
1396
+ "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>.",
1397
+ "feel": "required",
1398
+ "group": "output",
1399
+ "binding": {
1400
+ "key": "resultExpression",
1401
+ "type": "zeebe:taskHeader"
1402
+ },
1403
+ "type": "Text"
1404
+ },
1405
+ {
1406
+ "id": "errorExpression",
1407
+ "label": "Error expression",
1408
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
1409
+ "feel": "required",
1410
+ "group": "error",
1411
+ "binding": {
1412
+ "key": "errorExpression",
1413
+ "type": "zeebe:taskHeader"
1348
1414
  },
1349
1415
  "type": "Text"
1350
1416
  },
@@ -1365,7 +1431,7 @@
1365
1431
  "id": "retryBackoff",
1366
1432
  "label": "Retry backoff",
1367
1433
  "description": "ISO-8601 duration to wait between retries",
1368
- "value": "PT0S",
1434
+ "value": "PT30S",
1369
1435
  "group": "retries",
1370
1436
  "binding": {
1371
1437
  "key": "retryBackoff",
@@ -1736,192 +1802,1548 @@
1736
1802
  "feel": "optional",
1737
1803
  "group": "authentication",
1738
1804
  "binding": {
1739
- "name": "data.transport.http.authentication.oauthTokenEndpoint",
1805
+ "name": "data.transport.http.authentication.oauthTokenEndpoint",
1806
+ "type": "zeebe:input"
1807
+ },
1808
+ "condition": {
1809
+ "allMatch": [
1810
+ {
1811
+ "property": "data.transport.http.authentication.type",
1812
+ "equals": "oauth-client-credentials-flow",
1813
+ "type": "simple"
1814
+ },
1815
+ {
1816
+ "property": "data.transport.type",
1817
+ "equals": "http",
1818
+ "type": "simple"
1819
+ }
1820
+ ]
1821
+ },
1822
+ "type": "String"
1823
+ },
1824
+ {
1825
+ "id": "data.transport.http.authentication.clientId",
1826
+ "label": "Client ID",
1827
+ "description": "Your application's client ID from the OAuth client",
1828
+ "optional": false,
1829
+ "constraints": {
1830
+ "notEmpty": true
1831
+ },
1832
+ "feel": "optional",
1833
+ "group": "authentication",
1834
+ "binding": {
1835
+ "name": "data.transport.http.authentication.clientId",
1836
+ "type": "zeebe:input"
1837
+ },
1838
+ "condition": {
1839
+ "allMatch": [
1840
+ {
1841
+ "property": "data.transport.http.authentication.type",
1842
+ "equals": "oauth-client-credentials-flow",
1843
+ "type": "simple"
1844
+ },
1845
+ {
1846
+ "property": "data.transport.type",
1847
+ "equals": "http",
1848
+ "type": "simple"
1849
+ }
1850
+ ]
1851
+ },
1852
+ "type": "String"
1853
+ },
1854
+ {
1855
+ "id": "data.transport.http.authentication.clientSecret",
1856
+ "label": "Client secret",
1857
+ "description": "Your application's client secret from the OAuth client",
1858
+ "optional": false,
1859
+ "constraints": {
1860
+ "notEmpty": true
1861
+ },
1862
+ "feel": "optional",
1863
+ "group": "authentication",
1864
+ "binding": {
1865
+ "name": "data.transport.http.authentication.clientSecret",
1866
+ "type": "zeebe:input"
1867
+ },
1868
+ "condition": {
1869
+ "allMatch": [
1870
+ {
1871
+ "property": "data.transport.http.authentication.type",
1872
+ "equals": "oauth-client-credentials-flow",
1873
+ "type": "simple"
1874
+ },
1875
+ {
1876
+ "property": "data.transport.type",
1877
+ "equals": "http",
1878
+ "type": "simple"
1879
+ }
1880
+ ]
1881
+ },
1882
+ "type": "String"
1883
+ },
1884
+ {
1885
+ "id": "data.transport.http.authentication.audience",
1886
+ "label": "Audience",
1887
+ "description": "The unique identifier of the target API you want to access",
1888
+ "optional": true,
1889
+ "feel": "optional",
1890
+ "group": "authentication",
1891
+ "binding": {
1892
+ "name": "data.transport.http.authentication.audience",
1893
+ "type": "zeebe:input"
1894
+ },
1895
+ "condition": {
1896
+ "allMatch": [
1897
+ {
1898
+ "property": "data.transport.http.authentication.type",
1899
+ "equals": "oauth-client-credentials-flow",
1900
+ "type": "simple"
1901
+ },
1902
+ {
1903
+ "property": "data.transport.type",
1904
+ "equals": "http",
1905
+ "type": "simple"
1906
+ }
1907
+ ]
1908
+ },
1909
+ "type": "String"
1910
+ },
1911
+ {
1912
+ "id": "data.transport.http.authentication.clientAuthentication",
1913
+ "label": "Client authentication",
1914
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
1915
+ "optional": false,
1916
+ "value": "BASIC_AUTH_HEADER",
1917
+ "constraints": {
1918
+ "notEmpty": true
1919
+ },
1920
+ "group": "authentication",
1921
+ "binding": {
1922
+ "name": "data.transport.http.authentication.clientAuthentication",
1923
+ "type": "zeebe:input"
1924
+ },
1925
+ "condition": {
1926
+ "allMatch": [
1927
+ {
1928
+ "property": "data.transport.http.authentication.type",
1929
+ "equals": "oauth-client-credentials-flow",
1930
+ "type": "simple"
1931
+ },
1932
+ {
1933
+ "property": "data.transport.type",
1934
+ "equals": "http",
1935
+ "type": "simple"
1936
+ }
1937
+ ]
1938
+ },
1939
+ "type": "Dropdown",
1940
+ "choices": [
1941
+ {
1942
+ "name": "Send as Basic Auth header",
1943
+ "value": "BASIC_AUTH_HEADER"
1944
+ },
1945
+ {
1946
+ "name": "Send client credentials in body",
1947
+ "value": "CREDENTIALS_BODY"
1948
+ }
1949
+ ]
1950
+ },
1951
+ {
1952
+ "id": "data.transport.http.authentication.scopes",
1953
+ "label": "Scopes",
1954
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
1955
+ "optional": true,
1956
+ "feel": "optional",
1957
+ "group": "authentication",
1958
+ "binding": {
1959
+ "name": "data.transport.http.authentication.scopes",
1960
+ "type": "zeebe:input"
1961
+ },
1962
+ "condition": {
1963
+ "allMatch": [
1964
+ {
1965
+ "property": "data.transport.http.authentication.type",
1966
+ "equals": "oauth-client-credentials-flow",
1967
+ "type": "simple"
1968
+ },
1969
+ {
1970
+ "property": "data.transport.type",
1971
+ "equals": "http",
1972
+ "type": "simple"
1973
+ }
1974
+ ]
1975
+ },
1976
+ "type": "String"
1977
+ },
1978
+ {
1979
+ "id": "data.transport.sse.authentication.type",
1980
+ "label": "Type",
1981
+ "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
1982
+ "value": "noAuth",
1983
+ "group": "authentication",
1984
+ "binding": {
1985
+ "name": "data.transport.sse.authentication.type",
1986
+ "type": "zeebe:input"
1987
+ },
1988
+ "condition": {
1989
+ "property": "data.transport.type",
1990
+ "equals": "sse",
1991
+ "type": "simple"
1992
+ },
1993
+ "type": "Dropdown",
1994
+ "choices": [
1995
+ {
1996
+ "name": "None",
1997
+ "value": "noAuth"
1998
+ },
1999
+ {
2000
+ "name": "Basic",
2001
+ "value": "basic"
2002
+ },
2003
+ {
2004
+ "name": "Bearer token",
2005
+ "value": "bearer"
2006
+ },
2007
+ {
2008
+ "name": "OAuth 2.0",
2009
+ "value": "oauth-client-credentials-flow"
2010
+ }
2011
+ ]
2012
+ },
2013
+ {
2014
+ "id": "data.transport.sse.authentication.username",
2015
+ "label": "Username",
2016
+ "optional": false,
2017
+ "constraints": {
2018
+ "notEmpty": true
2019
+ },
2020
+ "feel": "optional",
2021
+ "group": "authentication",
2022
+ "binding": {
2023
+ "name": "data.transport.sse.authentication.username",
2024
+ "type": "zeebe:input"
2025
+ },
2026
+ "condition": {
2027
+ "allMatch": [
2028
+ {
2029
+ "property": "data.transport.sse.authentication.type",
2030
+ "equals": "basic",
2031
+ "type": "simple"
2032
+ },
2033
+ {
2034
+ "property": "data.transport.type",
2035
+ "equals": "sse",
2036
+ "type": "simple"
2037
+ }
2038
+ ]
2039
+ },
2040
+ "type": "String"
2041
+ },
2042
+ {
2043
+ "id": "data.transport.sse.authentication.password",
2044
+ "label": "Password",
2045
+ "optional": false,
2046
+ "constraints": {
2047
+ "notEmpty": true
2048
+ },
2049
+ "feel": "optional",
2050
+ "group": "authentication",
2051
+ "binding": {
2052
+ "name": "data.transport.sse.authentication.password",
2053
+ "type": "zeebe:input"
2054
+ },
2055
+ "condition": {
2056
+ "allMatch": [
2057
+ {
2058
+ "property": "data.transport.sse.authentication.type",
2059
+ "equals": "basic",
2060
+ "type": "simple"
2061
+ },
2062
+ {
2063
+ "property": "data.transport.type",
2064
+ "equals": "sse",
2065
+ "type": "simple"
2066
+ }
2067
+ ]
2068
+ },
2069
+ "type": "String"
2070
+ },
2071
+ {
2072
+ "id": "data.transport.sse.authentication.token",
2073
+ "label": "Bearer token",
2074
+ "optional": false,
2075
+ "constraints": {
2076
+ "notEmpty": true
2077
+ },
2078
+ "feel": "optional",
2079
+ "group": "authentication",
2080
+ "binding": {
2081
+ "name": "data.transport.sse.authentication.token",
2082
+ "type": "zeebe:input"
2083
+ },
2084
+ "condition": {
2085
+ "allMatch": [
2086
+ {
2087
+ "property": "data.transport.sse.authentication.type",
2088
+ "equals": "bearer",
2089
+ "type": "simple"
2090
+ },
2091
+ {
2092
+ "property": "data.transport.type",
2093
+ "equals": "sse",
2094
+ "type": "simple"
2095
+ }
2096
+ ]
2097
+ },
2098
+ "type": "String"
2099
+ },
2100
+ {
2101
+ "id": "data.transport.sse.authentication.oauthTokenEndpoint",
2102
+ "label": "OAuth 2.0 token endpoint",
2103
+ "description": "The OAuth token endpoint",
2104
+ "optional": false,
2105
+ "constraints": {
2106
+ "notEmpty": true,
2107
+ "pattern": {
2108
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2109
+ "message": "Must be a http(s) URL"
2110
+ }
2111
+ },
2112
+ "feel": "optional",
2113
+ "group": "authentication",
2114
+ "binding": {
2115
+ "name": "data.transport.sse.authentication.oauthTokenEndpoint",
2116
+ "type": "zeebe:input"
2117
+ },
2118
+ "condition": {
2119
+ "allMatch": [
2120
+ {
2121
+ "property": "data.transport.sse.authentication.type",
2122
+ "equals": "oauth-client-credentials-flow",
2123
+ "type": "simple"
2124
+ },
2125
+ {
2126
+ "property": "data.transport.type",
2127
+ "equals": "sse",
2128
+ "type": "simple"
2129
+ }
2130
+ ]
2131
+ },
2132
+ "type": "String"
2133
+ },
2134
+ {
2135
+ "id": "data.transport.sse.authentication.clientId",
2136
+ "label": "Client ID",
2137
+ "description": "Your application's client ID from the OAuth client",
2138
+ "optional": false,
2139
+ "constraints": {
2140
+ "notEmpty": true
2141
+ },
2142
+ "feel": "optional",
2143
+ "group": "authentication",
2144
+ "binding": {
2145
+ "name": "data.transport.sse.authentication.clientId",
2146
+ "type": "zeebe:input"
2147
+ },
2148
+ "condition": {
2149
+ "allMatch": [
2150
+ {
2151
+ "property": "data.transport.sse.authentication.type",
2152
+ "equals": "oauth-client-credentials-flow",
2153
+ "type": "simple"
2154
+ },
2155
+ {
2156
+ "property": "data.transport.type",
2157
+ "equals": "sse",
2158
+ "type": "simple"
2159
+ }
2160
+ ]
2161
+ },
2162
+ "type": "String"
2163
+ },
2164
+ {
2165
+ "id": "data.transport.sse.authentication.clientSecret",
2166
+ "label": "Client secret",
2167
+ "description": "Your application's client secret from the OAuth client",
2168
+ "optional": false,
2169
+ "constraints": {
2170
+ "notEmpty": true
2171
+ },
2172
+ "feel": "optional",
2173
+ "group": "authentication",
2174
+ "binding": {
2175
+ "name": "data.transport.sse.authentication.clientSecret",
2176
+ "type": "zeebe:input"
2177
+ },
2178
+ "condition": {
2179
+ "allMatch": [
2180
+ {
2181
+ "property": "data.transport.sse.authentication.type",
2182
+ "equals": "oauth-client-credentials-flow",
2183
+ "type": "simple"
2184
+ },
2185
+ {
2186
+ "property": "data.transport.type",
2187
+ "equals": "sse",
2188
+ "type": "simple"
2189
+ }
2190
+ ]
2191
+ },
2192
+ "type": "String"
2193
+ },
2194
+ {
2195
+ "id": "data.transport.sse.authentication.audience",
2196
+ "label": "Audience",
2197
+ "description": "The unique identifier of the target API you want to access",
2198
+ "optional": true,
2199
+ "feel": "optional",
2200
+ "group": "authentication",
2201
+ "binding": {
2202
+ "name": "data.transport.sse.authentication.audience",
2203
+ "type": "zeebe:input"
2204
+ },
2205
+ "condition": {
2206
+ "allMatch": [
2207
+ {
2208
+ "property": "data.transport.sse.authentication.type",
2209
+ "equals": "oauth-client-credentials-flow",
2210
+ "type": "simple"
2211
+ },
2212
+ {
2213
+ "property": "data.transport.type",
2214
+ "equals": "sse",
2215
+ "type": "simple"
2216
+ }
2217
+ ]
2218
+ },
2219
+ "type": "String"
2220
+ },
2221
+ {
2222
+ "id": "data.transport.sse.authentication.clientAuthentication",
2223
+ "label": "Client authentication",
2224
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
2225
+ "optional": false,
2226
+ "value": "BASIC_AUTH_HEADER",
2227
+ "constraints": {
2228
+ "notEmpty": true
2229
+ },
2230
+ "group": "authentication",
2231
+ "binding": {
2232
+ "name": "data.transport.sse.authentication.clientAuthentication",
2233
+ "type": "zeebe:input"
2234
+ },
2235
+ "condition": {
2236
+ "allMatch": [
2237
+ {
2238
+ "property": "data.transport.sse.authentication.type",
2239
+ "equals": "oauth-client-credentials-flow",
2240
+ "type": "simple"
2241
+ },
2242
+ {
2243
+ "property": "data.transport.type",
2244
+ "equals": "sse",
2245
+ "type": "simple"
2246
+ }
2247
+ ]
2248
+ },
2249
+ "type": "Dropdown",
2250
+ "choices": [
2251
+ {
2252
+ "name": "Send as Basic Auth header",
2253
+ "value": "BASIC_AUTH_HEADER"
2254
+ },
2255
+ {
2256
+ "name": "Send client credentials in body",
2257
+ "value": "CREDENTIALS_BODY"
2258
+ }
2259
+ ]
2260
+ },
2261
+ {
2262
+ "id": "data.transport.sse.authentication.scopes",
2263
+ "label": "Scopes",
2264
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2265
+ "optional": true,
2266
+ "feel": "optional",
2267
+ "group": "authentication",
2268
+ "binding": {
2269
+ "name": "data.transport.sse.authentication.scopes",
2270
+ "type": "zeebe:input"
2271
+ },
2272
+ "condition": {
2273
+ "allMatch": [
2274
+ {
2275
+ "property": "data.transport.sse.authentication.type",
2276
+ "equals": "oauth-client-credentials-flow",
2277
+ "type": "simple"
2278
+ },
2279
+ {
2280
+ "property": "data.transport.type",
2281
+ "equals": "sse",
2282
+ "type": "simple"
2283
+ }
2284
+ ]
2285
+ },
2286
+ "type": "String"
2287
+ },
2288
+ {
2289
+ "id": "data.options.clientCache",
2290
+ "label": "Enable client caching",
2291
+ "description": "If enabled, the MCP client instance is cached on the connector runtime and reused across requests.",
2292
+ "optional": true,
2293
+ "feel": "static",
2294
+ "group": "options",
2295
+ "binding": {
2296
+ "name": "data.options.clientCache",
2297
+ "type": "zeebe:input"
2298
+ },
2299
+ "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.",
2300
+ "type": "Boolean"
2301
+ },
2302
+ {
2303
+ "id": "data.connectorMode.type",
2304
+ "label": "Connector mode",
2305
+ "description": "Select how this connector is used.",
2306
+ "value": "aiAgentTool",
2307
+ "group": "connectorMode",
2308
+ "binding": {
2309
+ "name": "data.connectorMode.type",
2310
+ "type": "zeebe:input"
2311
+ },
2312
+ "type": "Dropdown",
2313
+ "choices": [
2314
+ {
2315
+ "name": "Standalone",
2316
+ "value": "standalone"
2317
+ },
2318
+ {
2319
+ "name": "AI Agent tool",
2320
+ "value": "aiAgentTool"
2321
+ }
2322
+ ]
2323
+ },
2324
+ {
2325
+ "id": "data.connectorMode.operation.type",
2326
+ "label": "Operation",
2327
+ "description": "The type of operation to perform.",
2328
+ "value": "tools/list",
2329
+ "group": "operation",
2330
+ "binding": {
2331
+ "name": "data.connectorMode.operation.type",
2332
+ "type": "zeebe:input"
2333
+ },
2334
+ "condition": {
2335
+ "property": "data.connectorMode.type",
2336
+ "equals": "standalone",
2337
+ "type": "simple"
2338
+ },
2339
+ "type": "Dropdown",
2340
+ "choices": [
2341
+ {
2342
+ "name": "List Tools",
2343
+ "value": "tools/list"
2344
+ },
2345
+ {
2346
+ "name": "Call Tool",
2347
+ "value": "tools/call"
2348
+ },
2349
+ {
2350
+ "name": "List Resources",
2351
+ "value": "resources/list"
2352
+ },
2353
+ {
2354
+ "name": "List Resource Templates",
2355
+ "value": "resources/templates/list"
2356
+ },
2357
+ {
2358
+ "name": "Read Resource",
2359
+ "value": "resources/read"
2360
+ },
2361
+ {
2362
+ "name": "List Prompts",
2363
+ "value": "prompts/list"
2364
+ },
2365
+ {
2366
+ "name": "Get Prompt",
2367
+ "value": "prompts/get"
2368
+ }
2369
+ ]
2370
+ },
2371
+ {
2372
+ "id": "data.connectorMode.operation.toolName",
2373
+ "label": "Tool name",
2374
+ "description": "The name of the tool to call.",
2375
+ "optional": false,
2376
+ "constraints": {
2377
+ "notEmpty": true
2378
+ },
2379
+ "feel": "optional",
2380
+ "group": "operation",
2381
+ "binding": {
2382
+ "name": "data.connectorMode.operation.toolName",
2383
+ "type": "zeebe:input"
2384
+ },
2385
+ "condition": {
2386
+ "allMatch": [
2387
+ {
2388
+ "property": "data.connectorMode.operation.type",
2389
+ "equals": "tools/call",
2390
+ "type": "simple"
2391
+ },
2392
+ {
2393
+ "property": "data.connectorMode.type",
2394
+ "equals": "standalone",
2395
+ "type": "simple"
2396
+ }
2397
+ ]
2398
+ },
2399
+ "type": "String"
2400
+ },
2401
+ {
2402
+ "id": "data.connectorMode.operation.toolArguments",
2403
+ "label": "Tool arguments",
2404
+ "description": "The arguments to pass to the tool.",
2405
+ "optional": true,
2406
+ "feel": "required",
2407
+ "group": "operation",
2408
+ "binding": {
2409
+ "name": "data.connectorMode.operation.toolArguments",
2410
+ "type": "zeebe:input"
2411
+ },
2412
+ "condition": {
2413
+ "allMatch": [
2414
+ {
2415
+ "property": "data.connectorMode.operation.type",
2416
+ "equals": "tools/call",
2417
+ "type": "simple"
2418
+ },
2419
+ {
2420
+ "property": "data.connectorMode.type",
2421
+ "equals": "standalone",
2422
+ "type": "simple"
2423
+ }
2424
+ ]
2425
+ },
2426
+ "type": "String"
2427
+ },
2428
+ {
2429
+ "id": "data.connectorMode.operation.resourceUri",
2430
+ "label": "Resource URI",
2431
+ "description": "The URI of the resource to read.",
2432
+ "optional": false,
2433
+ "constraints": {
2434
+ "notEmpty": true
2435
+ },
2436
+ "feel": "optional",
2437
+ "group": "operation",
2438
+ "binding": {
2439
+ "name": "data.connectorMode.operation.resourceUri",
2440
+ "type": "zeebe:input"
2441
+ },
2442
+ "condition": {
2443
+ "allMatch": [
2444
+ {
2445
+ "property": "data.connectorMode.operation.type",
2446
+ "equals": "resources/read",
2447
+ "type": "simple"
2448
+ },
2449
+ {
2450
+ "property": "data.connectorMode.type",
2451
+ "equals": "standalone",
2452
+ "type": "simple"
2453
+ }
2454
+ ]
2455
+ },
2456
+ "type": "String"
2457
+ },
2458
+ {
2459
+ "id": "data.connectorMode.operation.promptName",
2460
+ "label": "Prompt name",
2461
+ "description": "The name of the prompt to get.",
2462
+ "optional": false,
2463
+ "constraints": {
2464
+ "notEmpty": true
2465
+ },
2466
+ "feel": "optional",
2467
+ "group": "operation",
2468
+ "binding": {
2469
+ "name": "data.connectorMode.operation.promptName",
2470
+ "type": "zeebe:input"
2471
+ },
2472
+ "condition": {
2473
+ "allMatch": [
2474
+ {
2475
+ "property": "data.connectorMode.operation.type",
2476
+ "equals": "prompts/get",
2477
+ "type": "simple"
2478
+ },
2479
+ {
2480
+ "property": "data.connectorMode.type",
2481
+ "equals": "standalone",
2482
+ "type": "simple"
2483
+ }
2484
+ ]
2485
+ },
2486
+ "type": "String"
2487
+ },
2488
+ {
2489
+ "id": "data.connectorMode.operation.promptArguments",
2490
+ "label": "Prompt arguments",
2491
+ "description": "The arguments to pass to the prompt generation.",
2492
+ "optional": true,
2493
+ "feel": "required",
2494
+ "group": "operation",
2495
+ "binding": {
2496
+ "name": "data.connectorMode.operation.promptArguments",
2497
+ "type": "zeebe:input"
2498
+ },
2499
+ "condition": {
2500
+ "allMatch": [
2501
+ {
2502
+ "property": "data.connectorMode.operation.type",
2503
+ "equals": "prompts/get",
2504
+ "type": "simple"
2505
+ },
2506
+ {
2507
+ "property": "data.connectorMode.type",
2508
+ "equals": "standalone",
2509
+ "type": "simple"
2510
+ }
2511
+ ]
2512
+ },
2513
+ "type": "String"
2514
+ },
2515
+ {
2516
+ "id": "data.connectorMode.toolOperation.method",
2517
+ "label": "Method",
2518
+ "description": "The MCP method to be called, e.g. <code>tools/list</code>.",
2519
+ "optional": false,
2520
+ "value": "=toolCall.method",
2521
+ "constraints": {
2522
+ "notEmpty": true
2523
+ },
2524
+ "feel": "optional",
2525
+ "group": "operation",
2526
+ "binding": {
2527
+ "name": "data.connectorMode.toolOperation.method",
2528
+ "type": "zeebe:input"
2529
+ },
2530
+ "condition": {
2531
+ "property": "data.connectorMode.type",
2532
+ "equals": "aiAgentTool",
2533
+ "type": "simple"
2534
+ },
2535
+ "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>",
2536
+ "type": "String"
2537
+ },
2538
+ {
2539
+ "id": "data.connectorMode.toolOperation.params",
2540
+ "label": "Parameters",
2541
+ "description": "The parameters to be passed to the MCP method.",
2542
+ "optional": true,
2543
+ "value": "=toolCall.params",
2544
+ "feel": "required",
2545
+ "group": "operation",
2546
+ "binding": {
2547
+ "name": "data.connectorMode.toolOperation.params",
2548
+ "type": "zeebe:input"
2549
+ },
2550
+ "condition": {
2551
+ "property": "data.connectorMode.type",
2552
+ "equals": "aiAgentTool",
2553
+ "type": "simple"
2554
+ },
2555
+ "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.",
2556
+ "type": "String"
2557
+ },
2558
+ {
2559
+ "id": "data.connectorMode.standaloneModeFilters.tools.included",
2560
+ "label": "Included tools",
2561
+ "description": "List of tools that can be used by the MCP client. By default, all tools are allowed.",
2562
+ "optional": true,
2563
+ "feel": "required",
2564
+ "group": "filters",
2565
+ "binding": {
2566
+ "name": "data.connectorMode.standaloneModeFilters.tools.included",
2567
+ "type": "zeebe:input"
2568
+ },
2569
+ "condition": {
2570
+ "allMatch": [
2571
+ {
2572
+ "property": "data.connectorMode.operation.type",
2573
+ "oneOf": ["tools/call", "tools/list"],
2574
+ "type": "simple"
2575
+ },
2576
+ {
2577
+ "property": "data.connectorMode.type",
2578
+ "equals": "standalone",
2579
+ "type": "simple"
2580
+ }
2581
+ ]
2582
+ },
2583
+ "type": "Text"
2584
+ },
2585
+ {
2586
+ "id": "data.connectorMode.standaloneModeFilters.tools.excluded",
2587
+ "label": "Excluded tools",
2588
+ "description": "List of tools that are not allowed to be used by the MCP client. Will override any included tools.",
2589
+ "optional": true,
2590
+ "feel": "required",
2591
+ "group": "filters",
2592
+ "binding": {
2593
+ "name": "data.connectorMode.standaloneModeFilters.tools.excluded",
2594
+ "type": "zeebe:input"
2595
+ },
2596
+ "condition": {
2597
+ "allMatch": [
2598
+ {
2599
+ "property": "data.connectorMode.operation.type",
2600
+ "oneOf": ["tools/call", "tools/list"],
2601
+ "type": "simple"
2602
+ },
2603
+ {
2604
+ "property": "data.connectorMode.type",
2605
+ "equals": "standalone",
2606
+ "type": "simple"
2607
+ }
2608
+ ]
2609
+ },
2610
+ "type": "Text"
2611
+ },
2612
+ {
2613
+ "id": "data.connectorMode.standaloneModeFilters.resources.included",
2614
+ "label": "Included resources",
2615
+ "description": "List of resources that can be accessed by the MCP client. By default, all resources are allowed.",
2616
+ "optional": true,
2617
+ "feel": "required",
2618
+ "group": "filters",
2619
+ "binding": {
2620
+ "name": "data.connectorMode.standaloneModeFilters.resources.included",
2621
+ "type": "zeebe:input"
2622
+ },
2623
+ "condition": {
2624
+ "allMatch": [
2625
+ {
2626
+ "property": "data.connectorMode.operation.type",
2627
+ "oneOf": [
2628
+ "resources/read",
2629
+ "resources/list",
2630
+ "resources/templates/list"
2631
+ ],
2632
+ "type": "simple"
2633
+ },
2634
+ {
2635
+ "property": "data.connectorMode.type",
2636
+ "equals": "standalone",
2637
+ "type": "simple"
2638
+ }
2639
+ ]
2640
+ },
2641
+ "type": "Text"
2642
+ },
2643
+ {
2644
+ "id": "data.connectorMode.standaloneModeFilters.resources.excluded",
2645
+ "label": "Excluded resources",
2646
+ "description": "List of resources that are not allowed to be accessed by the MCP client. Will override any included resources.",
2647
+ "optional": true,
2648
+ "feel": "required",
2649
+ "group": "filters",
2650
+ "binding": {
2651
+ "name": "data.connectorMode.standaloneModeFilters.resources.excluded",
2652
+ "type": "zeebe:input"
2653
+ },
2654
+ "condition": {
2655
+ "allMatch": [
2656
+ {
2657
+ "property": "data.connectorMode.operation.type",
2658
+ "oneOf": [
2659
+ "resources/read",
2660
+ "resources/list",
2661
+ "resources/templates/list"
2662
+ ],
2663
+ "type": "simple"
2664
+ },
2665
+ {
2666
+ "property": "data.connectorMode.type",
2667
+ "equals": "standalone",
2668
+ "type": "simple"
2669
+ }
2670
+ ]
2671
+ },
2672
+ "type": "Text"
2673
+ },
2674
+ {
2675
+ "id": "data.connectorMode.standaloneModeFilters.prompts.included",
2676
+ "label": "Included prompts",
2677
+ "description": "List of prompts that can be accessed by the MCP client. By default, all prompts are allowed.",
2678
+ "optional": true,
2679
+ "feel": "required",
2680
+ "group": "filters",
2681
+ "binding": {
2682
+ "name": "data.connectorMode.standaloneModeFilters.prompts.included",
2683
+ "type": "zeebe:input"
2684
+ },
2685
+ "condition": {
2686
+ "allMatch": [
2687
+ {
2688
+ "property": "data.connectorMode.operation.type",
2689
+ "oneOf": ["prompts/get", "prompts/list"],
2690
+ "type": "simple"
2691
+ },
2692
+ {
2693
+ "property": "data.connectorMode.type",
2694
+ "equals": "standalone",
2695
+ "type": "simple"
2696
+ }
2697
+ ]
2698
+ },
2699
+ "type": "Text"
2700
+ },
2701
+ {
2702
+ "id": "data.connectorMode.standaloneModeFilters.prompts.excluded",
2703
+ "label": "Excluded prompts",
2704
+ "description": "List of prompts that are not allowed to be accessed by the MCP client. Will override any included prompts.",
2705
+ "optional": true,
2706
+ "feel": "required",
2707
+ "group": "filters",
2708
+ "binding": {
2709
+ "name": "data.connectorMode.standaloneModeFilters.prompts.excluded",
2710
+ "type": "zeebe:input"
2711
+ },
2712
+ "condition": {
2713
+ "allMatch": [
2714
+ {
2715
+ "property": "data.connectorMode.operation.type",
2716
+ "oneOf": ["prompts/get", "prompts/list"],
2717
+ "type": "simple"
2718
+ },
2719
+ {
2720
+ "property": "data.connectorMode.type",
2721
+ "equals": "standalone",
2722
+ "type": "simple"
2723
+ }
2724
+ ]
2725
+ },
2726
+ "type": "Text"
2727
+ },
2728
+ {
2729
+ "id": "data.connectorMode.toolModeFilters.tools.included",
2730
+ "label": "Included tools",
2731
+ "description": "List of tools that can be used by the MCP client. By default, all tools are allowed.",
2732
+ "optional": true,
2733
+ "feel": "required",
2734
+ "group": "filters",
2735
+ "binding": {
2736
+ "name": "data.connectorMode.toolModeFilters.tools.included",
2737
+ "type": "zeebe:input"
2738
+ },
2739
+ "condition": {
2740
+ "property": "data.connectorMode.type",
2741
+ "equals": "aiAgentTool",
2742
+ "type": "simple"
2743
+ },
2744
+ "type": "Text"
2745
+ },
2746
+ {
2747
+ "id": "data.connectorMode.toolModeFilters.tools.excluded",
2748
+ "label": "Excluded tools",
2749
+ "description": "List of tools that are not allowed to be used by the MCP client. Will override any included tools.",
2750
+ "optional": true,
2751
+ "feel": "required",
2752
+ "group": "filters",
2753
+ "binding": {
2754
+ "name": "data.connectorMode.toolModeFilters.tools.excluded",
2755
+ "type": "zeebe:input"
2756
+ },
2757
+ "condition": {
2758
+ "property": "data.connectorMode.type",
2759
+ "equals": "aiAgentTool",
2760
+ "type": "simple"
2761
+ },
2762
+ "type": "Text"
2763
+ },
2764
+ {
2765
+ "id": "version",
2766
+ "label": "Version",
2767
+ "description": "Version of the element template",
2768
+ "value": "2",
2769
+ "group": "connector",
2770
+ "binding": {
2771
+ "key": "elementTemplateVersion",
2772
+ "type": "zeebe:taskHeader"
2773
+ },
2774
+ "type": "Hidden"
2775
+ },
2776
+ {
2777
+ "id": "id",
2778
+ "label": "ID",
2779
+ "description": "ID of the element template",
2780
+ "value": "io.camunda.connectors.agenticai.mcp.remoteclient.v0",
2781
+ "group": "connector",
2782
+ "binding": {
2783
+ "key": "elementTemplateId",
2784
+ "type": "zeebe:taskHeader"
2785
+ },
2786
+ "type": "Hidden"
2787
+ },
2788
+ {
2789
+ "id": "resultVariable",
2790
+ "label": "Result variable",
2791
+ "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>.",
2792
+ "value": "toolCallResult",
2793
+ "group": "output",
2794
+ "binding": {
2795
+ "key": "resultVariable",
2796
+ "type": "zeebe:taskHeader"
2797
+ },
2798
+ "type": "String"
2799
+ },
2800
+ {
2801
+ "id": "resultExpression",
2802
+ "label": "Result expression",
2803
+ "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>.",
2804
+ "feel": "required",
2805
+ "group": "output",
2806
+ "binding": {
2807
+ "key": "resultExpression",
2808
+ "type": "zeebe:taskHeader"
2809
+ },
2810
+ "type": "Text"
2811
+ },
2812
+ {
2813
+ "id": "errorExpression",
2814
+ "label": "Error expression",
2815
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
2816
+ "feel": "required",
2817
+ "group": "error",
2818
+ "binding": {
2819
+ "key": "errorExpression",
2820
+ "type": "zeebe:taskHeader"
2821
+ },
2822
+ "type": "Text"
2823
+ },
2824
+ {
2825
+ "id": "retryCount",
2826
+ "label": "Retries",
2827
+ "description": "Number of retries",
2828
+ "value": "3",
2829
+ "feel": "optional",
2830
+ "group": "retries",
2831
+ "binding": {
2832
+ "property": "retries",
2833
+ "type": "zeebe:taskDefinition"
2834
+ },
2835
+ "type": "String"
2836
+ },
2837
+ {
2838
+ "id": "retryBackoff",
2839
+ "label": "Retry backoff",
2840
+ "description": "ISO-8601 duration to wait between retries",
2841
+ "value": "PT30S",
2842
+ "group": "retries",
2843
+ "binding": {
2844
+ "key": "retryBackoff",
2845
+ "type": "zeebe:taskHeader"
2846
+ },
2847
+ "type": "String"
2848
+ }
2849
+ ],
2850
+ "icon": {
2851
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAwIDIwMCI+CiAgICA8cGF0aCBkPSJNMjUgOTcuODUyOEw5Mi44ODIzIDI5Ljk3MDZDMTAyLjI1NSAyMC41OTggMTE3LjQ1MSAyMC41OTggMTI2LjgyMyAyOS45NzA2VjI5Ljk3MDZDMTM2LjE5NiAzOS4zNDMxIDEzNi4xOTYgNTQuNTM5MSAxMjYuODIzIDYzLjkxMTdMNzUuNTU4MSAxMTUuMTc3IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgIDxwYXRoIGQ9Ik03Ni4yNjUzIDExNC40N0wxMjYuODIzIDYzLjkxMTdDMTM2LjE5NiA1NC41MzkxIDE1MS4zOTIgNTQuNTM5MSAxNjAuNzY1IDYzLjkxMTdMMTYxLjExOCA2NC4yNjUyQzE3MC40OTEgNzMuNjM3OCAxNzAuNDkxIDg4LjgzMzggMTYxLjExOCA5OC4yMDYzTDk5LjcyNDggMTU5LjZDOTYuNjAwNiAxNjIuNzI0IDk2LjYwMDYgMTY3Ljc4OSA5OS43MjQ4IDE3MC45MTNMMTEyLjMzMSAxODMuNTIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgPHBhdGggZD0iTTEwOS44NTMgNDYuOTQxMUw1OS42NDgyIDk3LjE0NTdDNTAuMjc1NyAxMDYuNTE4IDUwLjI3NTcgMTIxLjcxNCA1OS42NDgyIDEzMS4wODdWMTMxLjA4N0M2OS4wMjA4IDE0MC40NTkgODQuMjE2OCAxNDAuNDU5IDkzLjU4OTQgMTMxLjA4N0wxNDMuNzk0IDgwLjg4MjIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K"
2852
+ }
2853
+ },
2854
+ {
2855
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2856
+ "name": "MCP Remote Client (early access)",
2857
+ "id": "io.camunda.connectors.agenticai.mcp.remoteclient.v0",
2858
+ "description": "MCP (Model Context Protocol) client, operating on temporary remote connections. Only supports tool operations.",
2859
+ "metadata": {
2860
+ "keywords": []
2861
+ },
2862
+ "version": 0,
2863
+ "category": {
2864
+ "id": "aiTools",
2865
+ "name": "AI Tools"
2866
+ },
2867
+ "appliesTo": ["bpmn:Task"],
2868
+ "elementType": {
2869
+ "value": "bpmn:ServiceTask"
2870
+ },
2871
+ "engines": {
2872
+ "camunda": "^8.8"
2873
+ },
2874
+ "groups": [
2875
+ {
2876
+ "id": "connection",
2877
+ "label": "HTTP Connection",
2878
+ "tooltip": "Configure the HTTP/SSE connection to the remote MCP server. Setting authentication headers is not supported yet."
2879
+ },
2880
+ {
2881
+ "id": "tools",
2882
+ "label": "Tools"
2883
+ },
2884
+ {
2885
+ "id": "operation",
2886
+ "label": "Operation"
2887
+ },
2888
+ {
2889
+ "id": "connector",
2890
+ "label": "Connector"
2891
+ },
2892
+ {
2893
+ "id": "output",
2894
+ "label": "Output mapping"
2895
+ },
2896
+ {
2897
+ "id": "error",
2898
+ "label": "Error handling"
2899
+ },
2900
+ {
2901
+ "id": "retries",
2902
+ "label": "Retries"
2903
+ }
2904
+ ],
2905
+ "properties": [
2906
+ {
2907
+ "value": "io.camunda.agenticai:mcpremoteclient:0",
2908
+ "binding": {
2909
+ "property": "type",
2910
+ "type": "zeebe:taskDefinition"
2911
+ },
2912
+ "type": "Hidden"
2913
+ },
2914
+ {
2915
+ "value": "mcpClient",
2916
+ "binding": {
2917
+ "name": "io.camunda.agenticai.gateway.type",
2918
+ "type": "zeebe:property"
2919
+ },
2920
+ "type": "Hidden"
2921
+ },
2922
+ {
2923
+ "id": "data.connection.sseUrl",
2924
+ "label": "SSE URL",
2925
+ "description": "SSE URL to connect to the MCP server. Typically ends with <code>/sse</code>.",
2926
+ "optional": false,
2927
+ "constraints": {
2928
+ "notEmpty": true
2929
+ },
2930
+ "feel": "optional",
2931
+ "group": "connection",
2932
+ "binding": {
2933
+ "name": "data.connection.sseUrl",
2934
+ "type": "zeebe:input"
2935
+ },
2936
+ "type": "String"
2937
+ },
2938
+ {
2939
+ "id": "data.connection.headers",
2940
+ "label": "HTTP headers",
2941
+ "description": "Map of HTTP headers to add to the request <strong>(NOT SUPPORTED YET)</strong>.",
2942
+ "optional": true,
2943
+ "group": "connection",
2944
+ "binding": {
2945
+ "name": "data.connection.headers",
2946
+ "type": "zeebe:input"
2947
+ },
2948
+ "type": "Hidden"
2949
+ },
2950
+ {
2951
+ "id": "data.connection.timeout",
2952
+ "label": "Timeout",
2953
+ "description": "Timeout for individual HTTP requests as ISO-8601 duration (example: <code>PT30S</code>)",
2954
+ "optional": true,
2955
+ "group": "connection",
2956
+ "binding": {
2957
+ "name": "data.connection.timeout",
2958
+ "type": "zeebe:input"
2959
+ },
2960
+ "type": "Hidden"
2961
+ },
2962
+ {
2963
+ "id": "data.tools.included",
2964
+ "label": "Included tools",
2965
+ "description": "List of tools that can be used by the MCP client. By default, all tools are allowed.",
2966
+ "optional": true,
2967
+ "feel": "required",
2968
+ "group": "tools",
2969
+ "binding": {
2970
+ "name": "data.tools.included",
2971
+ "type": "zeebe:input"
2972
+ },
2973
+ "type": "Text"
2974
+ },
2975
+ {
2976
+ "id": "data.tools.excluded",
2977
+ "label": "Excluded tools",
2978
+ "description": "List of tools that are not allowed to be used by the MCP client. Will override any included tools.",
2979
+ "optional": true,
2980
+ "feel": "required",
2981
+ "group": "tools",
2982
+ "binding": {
2983
+ "name": "data.tools.excluded",
2984
+ "type": "zeebe:input"
2985
+ },
2986
+ "type": "Text"
2987
+ },
2988
+ {
2989
+ "id": "data.operation.method",
2990
+ "label": "Method",
2991
+ "description": "The MCP method to be called, e.g. <code>tools/list</code>.",
2992
+ "optional": false,
2993
+ "value": "=toolCall.method",
2994
+ "constraints": {
2995
+ "notEmpty": true
2996
+ },
2997
+ "feel": "optional",
2998
+ "group": "operation",
2999
+ "binding": {
3000
+ "name": "data.operation.method",
3001
+ "type": "zeebe:input"
3002
+ },
3003
+ "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>",
3004
+ "type": "String"
3005
+ },
3006
+ {
3007
+ "id": "data.operation.params",
3008
+ "label": "Parameters",
3009
+ "description": "The parameters to be passed to the MCP method.",
3010
+ "optional": true,
3011
+ "value": "=toolCall.params",
3012
+ "feel": "required",
3013
+ "group": "operation",
3014
+ "binding": {
3015
+ "name": "data.operation.params",
3016
+ "type": "zeebe:input"
3017
+ },
3018
+ "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.",
3019
+ "type": "String"
3020
+ },
3021
+ {
3022
+ "id": "version",
3023
+ "label": "Version",
3024
+ "description": "Version of the element template",
3025
+ "value": "0",
3026
+ "group": "connector",
3027
+ "binding": {
3028
+ "key": "elementTemplateVersion",
3029
+ "type": "zeebe:taskHeader"
3030
+ },
3031
+ "type": "Hidden"
3032
+ },
3033
+ {
3034
+ "id": "id",
3035
+ "label": "ID",
3036
+ "description": "ID of the element template",
3037
+ "value": "io.camunda.connectors.agenticai.mcp.remoteclient.v0",
3038
+ "group": "connector",
3039
+ "binding": {
3040
+ "key": "elementTemplateId",
3041
+ "type": "zeebe:taskHeader"
3042
+ },
3043
+ "type": "Hidden"
3044
+ },
3045
+ {
3046
+ "id": "resultVariable",
3047
+ "label": "Result variable",
3048
+ "description": "Name of variable to store the response in",
3049
+ "value": "toolCallResult",
3050
+ "group": "output",
3051
+ "binding": {
3052
+ "key": "resultVariable",
3053
+ "type": "zeebe:taskHeader"
3054
+ },
3055
+ "type": "String"
3056
+ },
3057
+ {
3058
+ "id": "resultExpression",
3059
+ "label": "Result expression",
3060
+ "description": "Expression to map the response into process variables",
3061
+ "feel": "required",
3062
+ "group": "output",
3063
+ "binding": {
3064
+ "key": "resultExpression",
3065
+ "type": "zeebe:taskHeader"
3066
+ },
3067
+ "type": "Text"
3068
+ },
3069
+ {
3070
+ "id": "errorExpression",
3071
+ "label": "Error expression",
3072
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
3073
+ "feel": "required",
3074
+ "group": "error",
3075
+ "binding": {
3076
+ "key": "errorExpression",
3077
+ "type": "zeebe:taskHeader"
3078
+ },
3079
+ "type": "Text"
3080
+ },
3081
+ {
3082
+ "id": "retryCount",
3083
+ "label": "Retries",
3084
+ "description": "Number of retries",
3085
+ "value": "3",
3086
+ "feel": "optional",
3087
+ "group": "retries",
3088
+ "binding": {
3089
+ "property": "retries",
3090
+ "type": "zeebe:taskDefinition"
3091
+ },
3092
+ "type": "String"
3093
+ },
3094
+ {
3095
+ "id": "retryBackoff",
3096
+ "label": "Retry backoff",
3097
+ "description": "ISO-8601 duration to wait between retries",
3098
+ "value": "PT0S",
3099
+ "group": "retries",
3100
+ "binding": {
3101
+ "key": "retryBackoff",
3102
+ "type": "zeebe:taskHeader"
3103
+ },
3104
+ "type": "String"
3105
+ }
3106
+ ],
3107
+ "icon": {
3108
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAwIDIwMCI+CiAgICA8cGF0aCBkPSJNMjUgOTcuODUyOEw5Mi44ODIzIDI5Ljk3MDZDMTAyLjI1NSAyMC41OTggMTE3LjQ1MSAyMC41OTggMTI2LjgyMyAyOS45NzA2VjI5Ljk3MDZDMTM2LjE5NiAzOS4zNDMxIDEzNi4xOTYgNTQuNTM5MSAxMjYuODIzIDYzLjkxMTdMNzUuNTU4MSAxMTUuMTc3IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICAgIDxwYXRoIGQ9Ik03Ni4yNjUzIDExNC40N0wxMjYuODIzIDYzLjkxMTdDMTM2LjE5NiA1NC41MzkxIDE1MS4zOTIgNTQuNTM5MSAxNjAuNzY1IDYzLjkxMTdMMTYxLjExOCA2NC4yNjUyQzE3MC40OTEgNzMuNjM3OCAxNzAuNDkxIDg4LjgzMzggMTYxLjExOCA5OC4yMDYzTDk5LjcyNDggMTU5LjZDOTYuNjAwNiAxNjIuNzI0IDk2LjYwMDYgMTY3Ljc4OSA5OS43MjQ4IDE3MC45MTNMMTEyLjMzMSAxODMuNTIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogICAgPHBhdGggZD0iTTEwOS44NTMgNDYuOTQxMUw1OS42NDgyIDk3LjE0NTdDNTAuMjc1NyAxMDYuNTE4IDUwLjI3NTcgMTIxLjcxNCA1OS42NDgyIDEzMS4wODdWMTMxLjA4N0M2OS4wMjA4IDE0MC40NTkgODQuMjE2OCAxNDAuNDU5IDkzLjU4OTQgMTMxLjA4N0wxNDMuNzk0IDgwLjg4MjIiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K"
3109
+ }
3110
+ },
3111
+ {
3112
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
3113
+ "name": "MCP Remote Client (early access)",
3114
+ "id": "io.camunda.connectors.agenticai.mcp.remoteclient.v0",
3115
+ "description": "MCP (Model Context Protocol) client, operating on temporary remote connections.",
3116
+ "metadata": {
3117
+ "keywords": []
3118
+ },
3119
+ "version": 1,
3120
+ "category": {
3121
+ "id": "aiTools",
3122
+ "name": "AI Tools"
3123
+ },
3124
+ "appliesTo": ["bpmn:Task"],
3125
+ "elementType": {
3126
+ "value": "bpmn:ServiceTask"
3127
+ },
3128
+ "engines": {
3129
+ "camunda": "^8.9"
3130
+ },
3131
+ "groups": [
3132
+ {
3133
+ "id": "transport",
3134
+ "label": "Transport",
3135
+ "tooltip": "Configure the connection to the remote MCP server."
3136
+ },
3137
+ {
3138
+ "id": "authentication",
3139
+ "label": "Authentication"
3140
+ },
3141
+ {
3142
+ "id": "options",
3143
+ "label": "Options"
3144
+ },
3145
+ {
3146
+ "id": "connectorMode",
3147
+ "label": "Connector mode",
3148
+ "tooltip": "Select how this connector is used. When the connector is used as an AI agent tool, select the AI Agent tool mode."
3149
+ },
3150
+ {
3151
+ "id": "operation",
3152
+ "label": "Operation"
3153
+ },
3154
+ {
3155
+ "id": "tools",
3156
+ "label": "Tools",
3157
+ "openByDefault": false
3158
+ },
3159
+ {
3160
+ "id": "connector",
3161
+ "label": "Connector"
3162
+ },
3163
+ {
3164
+ "id": "output",
3165
+ "label": "Output mapping"
3166
+ },
3167
+ {
3168
+ "id": "error",
3169
+ "label": "Error handling"
3170
+ },
3171
+ {
3172
+ "id": "retries",
3173
+ "label": "Retries"
3174
+ }
3175
+ ],
3176
+ "properties": [
3177
+ {
3178
+ "value": "io.camunda.agenticai:mcpremoteclient:1",
3179
+ "binding": {
3180
+ "property": "type",
3181
+ "type": "zeebe:taskDefinition"
3182
+ },
3183
+ "type": "Hidden"
3184
+ },
3185
+ {
3186
+ "value": "mcpClient",
3187
+ "binding": {
3188
+ "name": "io.camunda.agenticai.gateway.type",
3189
+ "type": "zeebe:property"
3190
+ },
3191
+ "condition": {
3192
+ "property": "data.connectorMode.type",
3193
+ "equals": "aiAgentTool",
3194
+ "type": "simple"
3195
+ },
3196
+ "type": "Hidden"
3197
+ },
3198
+ {
3199
+ "id": "data.transport.type",
3200
+ "label": "Type",
3201
+ "description": "Specify the MCP transport type.",
3202
+ "value": "http",
3203
+ "group": "transport",
3204
+ "binding": {
3205
+ "name": "data.transport.type",
1740
3206
  "type": "zeebe:input"
1741
3207
  },
1742
- "condition": {
1743
- "allMatch": [
1744
- {
1745
- "property": "data.transport.http.authentication.type",
1746
- "equals": "oauth-client-credentials-flow",
1747
- "type": "simple"
1748
- },
1749
- {
1750
- "property": "data.transport.type",
1751
- "equals": "http",
1752
- "type": "simple"
1753
- }
1754
- ]
1755
- },
1756
- "type": "String"
3208
+ "type": "Dropdown",
3209
+ "choices": [
3210
+ {
3211
+ "name": "Streamable HTTP",
3212
+ "value": "http"
3213
+ },
3214
+ {
3215
+ "name": "SSE",
3216
+ "value": "sse"
3217
+ }
3218
+ ]
1757
3219
  },
1758
3220
  {
1759
- "id": "data.transport.http.authentication.clientId",
1760
- "label": "Client ID",
1761
- "description": "Your application's client ID from the OAuth client",
3221
+ "id": "data.transport.http.url",
3222
+ "label": "URL",
3223
+ "description": "URL to connect to the MCP server. Typically ends with <code>/mcp</code>.",
1762
3224
  "optional": false,
1763
3225
  "constraints": {
1764
3226
  "notEmpty": true
1765
3227
  },
1766
3228
  "feel": "optional",
1767
- "group": "authentication",
3229
+ "group": "transport",
1768
3230
  "binding": {
1769
- "name": "data.transport.http.authentication.clientId",
3231
+ "name": "data.transport.http.url",
1770
3232
  "type": "zeebe:input"
1771
3233
  },
1772
3234
  "condition": {
1773
- "allMatch": [
1774
- {
1775
- "property": "data.transport.http.authentication.type",
1776
- "equals": "oauth-client-credentials-flow",
1777
- "type": "simple"
1778
- },
1779
- {
1780
- "property": "data.transport.type",
1781
- "equals": "http",
1782
- "type": "simple"
1783
- }
1784
- ]
3235
+ "property": "data.transport.type",
3236
+ "equals": "http",
3237
+ "type": "simple"
1785
3238
  },
1786
3239
  "type": "String"
1787
3240
  },
1788
3241
  {
1789
- "id": "data.transport.http.authentication.clientSecret",
1790
- "label": "Client secret",
1791
- "description": "Your application's client secret from the OAuth client",
1792
- "optional": false,
1793
- "constraints": {
1794
- "notEmpty": true
1795
- },
1796
- "feel": "optional",
1797
- "group": "authentication",
3242
+ "id": "data.transport.http.headers",
3243
+ "label": "HTTP headers",
3244
+ "description": "Map of HTTP headers to add to the request.",
3245
+ "optional": true,
3246
+ "feel": "required",
3247
+ "group": "transport",
1798
3248
  "binding": {
1799
- "name": "data.transport.http.authentication.clientSecret",
3249
+ "name": "data.transport.http.headers",
1800
3250
  "type": "zeebe:input"
1801
3251
  },
1802
3252
  "condition": {
1803
- "allMatch": [
1804
- {
1805
- "property": "data.transport.http.authentication.type",
1806
- "equals": "oauth-client-credentials-flow",
1807
- "type": "simple"
1808
- },
1809
- {
1810
- "property": "data.transport.type",
1811
- "equals": "http",
1812
- "type": "simple"
1813
- }
1814
- ]
3253
+ "property": "data.transport.type",
3254
+ "equals": "http",
3255
+ "type": "simple"
1815
3256
  },
1816
3257
  "type": "String"
1817
3258
  },
1818
3259
  {
1819
- "id": "data.transport.http.authentication.audience",
1820
- "label": "Audience",
1821
- "description": "The unique identifier of the target API you want to access",
3260
+ "id": "data.transport.http.timeout",
3261
+ "label": "Timeout",
3262
+ "description": "Timeout for individual HTTP requests as ISO-8601 duration (example: <code>PT30S</code>)",
1822
3263
  "optional": true,
1823
3264
  "feel": "optional",
1824
- "group": "authentication",
3265
+ "group": "transport",
1825
3266
  "binding": {
1826
- "name": "data.transport.http.authentication.audience",
3267
+ "name": "data.transport.http.timeout",
1827
3268
  "type": "zeebe:input"
1828
3269
  },
1829
3270
  "condition": {
1830
- "allMatch": [
1831
- {
1832
- "property": "data.transport.http.authentication.type",
1833
- "equals": "oauth-client-credentials-flow",
1834
- "type": "simple"
1835
- },
1836
- {
1837
- "property": "data.transport.type",
1838
- "equals": "http",
1839
- "type": "simple"
1840
- }
1841
- ]
3271
+ "property": "data.transport.type",
3272
+ "equals": "http",
3273
+ "type": "simple"
1842
3274
  },
1843
3275
  "type": "String"
1844
3276
  },
1845
3277
  {
1846
- "id": "data.transport.http.authentication.clientAuthentication",
1847
- "label": "Client authentication",
1848
- "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
3278
+ "id": "data.transport.sse.url",
3279
+ "label": "URL",
3280
+ "description": "URL to connect to the MCP server. Typically ends with <code>/sse</code>.",
1849
3281
  "optional": false,
1850
- "value": "BASIC_AUTH_HEADER",
1851
3282
  "constraints": {
1852
3283
  "notEmpty": true
1853
3284
  },
1854
- "group": "authentication",
3285
+ "feel": "optional",
3286
+ "group": "transport",
1855
3287
  "binding": {
1856
- "name": "data.transport.http.authentication.clientAuthentication",
3288
+ "name": "data.transport.sse.url",
1857
3289
  "type": "zeebe:input"
1858
3290
  },
1859
3291
  "condition": {
1860
- "allMatch": [
1861
- {
1862
- "property": "data.transport.http.authentication.type",
1863
- "equals": "oauth-client-credentials-flow",
1864
- "type": "simple"
1865
- },
1866
- {
1867
- "property": "data.transport.type",
1868
- "equals": "http",
1869
- "type": "simple"
1870
- }
1871
- ]
3292
+ "property": "data.transport.type",
3293
+ "equals": "sse",
3294
+ "type": "simple"
1872
3295
  },
1873
- "type": "Dropdown",
1874
- "choices": [
1875
- {
1876
- "name": "Send as Basic Auth header",
1877
- "value": "BASIC_AUTH_HEADER"
1878
- },
1879
- {
1880
- "name": "Send client credentials in body",
1881
- "value": "CREDENTIALS_BODY"
1882
- }
1883
- ]
3296
+ "type": "String"
1884
3297
  },
1885
3298
  {
1886
- "id": "data.transport.http.authentication.scopes",
1887
- "label": "Scopes",
1888
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
3299
+ "id": "data.transport.sse.headers",
3300
+ "label": "HTTP headers",
3301
+ "description": "Map of HTTP headers to add to the request.",
3302
+ "optional": true,
3303
+ "feel": "required",
3304
+ "group": "transport",
3305
+ "binding": {
3306
+ "name": "data.transport.sse.headers",
3307
+ "type": "zeebe:input"
3308
+ },
3309
+ "condition": {
3310
+ "property": "data.transport.type",
3311
+ "equals": "sse",
3312
+ "type": "simple"
3313
+ },
3314
+ "type": "String"
3315
+ },
3316
+ {
3317
+ "id": "data.transport.sse.timeout",
3318
+ "label": "Timeout",
3319
+ "description": "Timeout for individual HTTP requests as ISO-8601 duration (example: <code>PT30S</code>)",
1889
3320
  "optional": true,
1890
3321
  "feel": "optional",
1891
- "group": "authentication",
3322
+ "group": "transport",
1892
3323
  "binding": {
1893
- "name": "data.transport.http.authentication.scopes",
3324
+ "name": "data.transport.sse.timeout",
1894
3325
  "type": "zeebe:input"
1895
3326
  },
1896
3327
  "condition": {
1897
- "allMatch": [
1898
- {
1899
- "property": "data.transport.http.authentication.type",
1900
- "equals": "oauth-client-credentials-flow",
1901
- "type": "simple"
1902
- },
1903
- {
1904
- "property": "data.transport.type",
1905
- "equals": "http",
1906
- "type": "simple"
1907
- }
1908
- ]
3328
+ "property": "data.transport.type",
3329
+ "equals": "sse",
3330
+ "type": "simple"
1909
3331
  },
1910
3332
  "type": "String"
1911
3333
  },
1912
3334
  {
1913
- "id": "data.transport.sse.authentication.type",
3335
+ "id": "data.transport.http.authentication.type",
1914
3336
  "label": "Type",
1915
3337
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
1916
3338
  "value": "noAuth",
1917
3339
  "group": "authentication",
1918
3340
  "binding": {
1919
- "name": "data.transport.sse.authentication.type",
3341
+ "name": "data.transport.http.authentication.type",
1920
3342
  "type": "zeebe:input"
1921
3343
  },
1922
3344
  "condition": {
1923
3345
  "property": "data.transport.type",
1924
- "equals": "sse",
3346
+ "equals": "http",
1925
3347
  "type": "simple"
1926
3348
  },
1927
3349
  "type": "Dropdown",
@@ -1945,7 +3367,7 @@
1945
3367
  ]
1946
3368
  },
1947
3369
  {
1948
- "id": "data.transport.sse.authentication.username",
3370
+ "id": "data.transport.http.authentication.username",
1949
3371
  "label": "Username",
1950
3372
  "optional": false,
1951
3373
  "constraints": {
@@ -1954,19 +3376,19 @@
1954
3376
  "feel": "optional",
1955
3377
  "group": "authentication",
1956
3378
  "binding": {
1957
- "name": "data.transport.sse.authentication.username",
3379
+ "name": "data.transport.http.authentication.username",
1958
3380
  "type": "zeebe:input"
1959
3381
  },
1960
3382
  "condition": {
1961
3383
  "allMatch": [
1962
3384
  {
1963
- "property": "data.transport.sse.authentication.type",
3385
+ "property": "data.transport.http.authentication.type",
1964
3386
  "equals": "basic",
1965
3387
  "type": "simple"
1966
3388
  },
1967
3389
  {
1968
3390
  "property": "data.transport.type",
1969
- "equals": "sse",
3391
+ "equals": "http",
1970
3392
  "type": "simple"
1971
3393
  }
1972
3394
  ]
@@ -1974,7 +3396,7 @@
1974
3396
  "type": "String"
1975
3397
  },
1976
3398
  {
1977
- "id": "data.transport.sse.authentication.password",
3399
+ "id": "data.transport.http.authentication.password",
1978
3400
  "label": "Password",
1979
3401
  "optional": false,
1980
3402
  "constraints": {
@@ -1983,19 +3405,19 @@
1983
3405
  "feel": "optional",
1984
3406
  "group": "authentication",
1985
3407
  "binding": {
1986
- "name": "data.transport.sse.authentication.password",
3408
+ "name": "data.transport.http.authentication.password",
1987
3409
  "type": "zeebe:input"
1988
3410
  },
1989
3411
  "condition": {
1990
3412
  "allMatch": [
1991
3413
  {
1992
- "property": "data.transport.sse.authentication.type",
3414
+ "property": "data.transport.http.authentication.type",
1993
3415
  "equals": "basic",
1994
3416
  "type": "simple"
1995
3417
  },
1996
3418
  {
1997
3419
  "property": "data.transport.type",
1998
- "equals": "sse",
3420
+ "equals": "http",
1999
3421
  "type": "simple"
2000
3422
  }
2001
3423
  ]
@@ -2003,7 +3425,7 @@
2003
3425
  "type": "String"
2004
3426
  },
2005
3427
  {
2006
- "id": "data.transport.sse.authentication.token",
3428
+ "id": "data.transport.http.authentication.token",
2007
3429
  "label": "Bearer token",
2008
3430
  "optional": false,
2009
3431
  "constraints": {
@@ -2012,19 +3434,19 @@
2012
3434
  "feel": "optional",
2013
3435
  "group": "authentication",
2014
3436
  "binding": {
2015
- "name": "data.transport.sse.authentication.token",
3437
+ "name": "data.transport.http.authentication.token",
2016
3438
  "type": "zeebe:input"
2017
3439
  },
2018
3440
  "condition": {
2019
3441
  "allMatch": [
2020
3442
  {
2021
- "property": "data.transport.sse.authentication.type",
3443
+ "property": "data.transport.http.authentication.type",
2022
3444
  "equals": "bearer",
2023
3445
  "type": "simple"
2024
3446
  },
2025
3447
  {
2026
3448
  "property": "data.transport.type",
2027
- "equals": "sse",
3449
+ "equals": "http",
2028
3450
  "type": "simple"
2029
3451
  }
2030
3452
  ]
@@ -2032,7 +3454,7 @@
2032
3454
  "type": "String"
2033
3455
  },
2034
3456
  {
2035
- "id": "data.transport.sse.authentication.oauthTokenEndpoint",
3457
+ "id": "data.transport.http.authentication.oauthTokenEndpoint",
2036
3458
  "label": "OAuth 2.0 token endpoint",
2037
3459
  "description": "The OAuth token endpoint",
2038
3460
  "optional": false,
@@ -2046,19 +3468,19 @@
2046
3468
  "feel": "optional",
2047
3469
  "group": "authentication",
2048
3470
  "binding": {
2049
- "name": "data.transport.sse.authentication.oauthTokenEndpoint",
3471
+ "name": "data.transport.http.authentication.oauthTokenEndpoint",
2050
3472
  "type": "zeebe:input"
2051
3473
  },
2052
3474
  "condition": {
2053
3475
  "allMatch": [
2054
3476
  {
2055
- "property": "data.transport.sse.authentication.type",
3477
+ "property": "data.transport.http.authentication.type",
2056
3478
  "equals": "oauth-client-credentials-flow",
2057
3479
  "type": "simple"
2058
3480
  },
2059
3481
  {
2060
3482
  "property": "data.transport.type",
2061
- "equals": "sse",
3483
+ "equals": "http",
2062
3484
  "type": "simple"
2063
3485
  }
2064
3486
  ]
@@ -2066,7 +3488,7 @@
2066
3488
  "type": "String"
2067
3489
  },
2068
3490
  {
2069
- "id": "data.transport.sse.authentication.clientId",
3491
+ "id": "data.transport.http.authentication.clientId",
2070
3492
  "label": "Client ID",
2071
3493
  "description": "Your application's client ID from the OAuth client",
2072
3494
  "optional": false,
@@ -2076,19 +3498,19 @@
2076
3498
  "feel": "optional",
2077
3499
  "group": "authentication",
2078
3500
  "binding": {
2079
- "name": "data.transport.sse.authentication.clientId",
3501
+ "name": "data.transport.http.authentication.clientId",
2080
3502
  "type": "zeebe:input"
2081
3503
  },
2082
3504
  "condition": {
2083
3505
  "allMatch": [
2084
3506
  {
2085
- "property": "data.transport.sse.authentication.type",
3507
+ "property": "data.transport.http.authentication.type",
2086
3508
  "equals": "oauth-client-credentials-flow",
2087
3509
  "type": "simple"
2088
3510
  },
2089
3511
  {
2090
3512
  "property": "data.transport.type",
2091
- "equals": "sse",
3513
+ "equals": "http",
2092
3514
  "type": "simple"
2093
3515
  }
2094
3516
  ]
@@ -2096,7 +3518,7 @@
2096
3518
  "type": "String"
2097
3519
  },
2098
3520
  {
2099
- "id": "data.transport.sse.authentication.clientSecret",
3521
+ "id": "data.transport.http.authentication.clientSecret",
2100
3522
  "label": "Client secret",
2101
3523
  "description": "Your application's client secret from the OAuth client",
2102
3524
  "optional": false,
@@ -2106,19 +3528,19 @@
2106
3528
  "feel": "optional",
2107
3529
  "group": "authentication",
2108
3530
  "binding": {
2109
- "name": "data.transport.sse.authentication.clientSecret",
3531
+ "name": "data.transport.http.authentication.clientSecret",
2110
3532
  "type": "zeebe:input"
2111
3533
  },
2112
3534
  "condition": {
2113
3535
  "allMatch": [
2114
3536
  {
2115
- "property": "data.transport.sse.authentication.type",
3537
+ "property": "data.transport.http.authentication.type",
2116
3538
  "equals": "oauth-client-credentials-flow",
2117
3539
  "type": "simple"
2118
3540
  },
2119
3541
  {
2120
3542
  "property": "data.transport.type",
2121
- "equals": "sse",
3543
+ "equals": "http",
2122
3544
  "type": "simple"
2123
3545
  }
2124
3546
  ]
@@ -2126,26 +3548,26 @@
2126
3548
  "type": "String"
2127
3549
  },
2128
3550
  {
2129
- "id": "data.transport.sse.authentication.audience",
3551
+ "id": "data.transport.http.authentication.audience",
2130
3552
  "label": "Audience",
2131
3553
  "description": "The unique identifier of the target API you want to access",
2132
3554
  "optional": true,
2133
3555
  "feel": "optional",
2134
3556
  "group": "authentication",
2135
3557
  "binding": {
2136
- "name": "data.transport.sse.authentication.audience",
3558
+ "name": "data.transport.http.authentication.audience",
2137
3559
  "type": "zeebe:input"
2138
3560
  },
2139
3561
  "condition": {
2140
3562
  "allMatch": [
2141
3563
  {
2142
- "property": "data.transport.sse.authentication.type",
3564
+ "property": "data.transport.http.authentication.type",
2143
3565
  "equals": "oauth-client-credentials-flow",
2144
3566
  "type": "simple"
2145
3567
  },
2146
3568
  {
2147
3569
  "property": "data.transport.type",
2148
- "equals": "sse",
3570
+ "equals": "http",
2149
3571
  "type": "simple"
2150
3572
  }
2151
3573
  ]
@@ -2153,7 +3575,7 @@
2153
3575
  "type": "String"
2154
3576
  },
2155
3577
  {
2156
- "id": "data.transport.sse.authentication.clientAuthentication",
3578
+ "id": "data.transport.http.authentication.clientAuthentication",
2157
3579
  "label": "Client authentication",
2158
3580
  "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
2159
3581
  "optional": false,
@@ -2163,19 +3585,19 @@
2163
3585
  },
2164
3586
  "group": "authentication",
2165
3587
  "binding": {
2166
- "name": "data.transport.sse.authentication.clientAuthentication",
3588
+ "name": "data.transport.http.authentication.clientAuthentication",
2167
3589
  "type": "zeebe:input"
2168
3590
  },
2169
3591
  "condition": {
2170
3592
  "allMatch": [
2171
3593
  {
2172
- "property": "data.transport.sse.authentication.type",
3594
+ "property": "data.transport.http.authentication.type",
2173
3595
  "equals": "oauth-client-credentials-flow",
2174
3596
  "type": "simple"
2175
3597
  },
2176
3598
  {
2177
3599
  "property": "data.transport.type",
2178
- "equals": "sse",
3600
+ "equals": "http",
2179
3601
  "type": "simple"
2180
3602
  }
2181
3603
  ]
@@ -2193,26 +3615,26 @@
2193
3615
  ]
2194
3616
  },
2195
3617
  {
2196
- "id": "data.transport.sse.authentication.scopes",
3618
+ "id": "data.transport.http.authentication.scopes",
2197
3619
  "label": "Scopes",
2198
3620
  "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2199
3621
  "optional": true,
2200
3622
  "feel": "optional",
2201
3623
  "group": "authentication",
2202
3624
  "binding": {
2203
- "name": "data.transport.sse.authentication.scopes",
3625
+ "name": "data.transport.http.authentication.scopes",
2204
3626
  "type": "zeebe:input"
2205
3627
  },
2206
3628
  "condition": {
2207
3629
  "allMatch": [
2208
3630
  {
2209
- "property": "data.transport.sse.authentication.type",
3631
+ "property": "data.transport.http.authentication.type",
2210
3632
  "equals": "oauth-client-credentials-flow",
2211
3633
  "type": "simple"
2212
3634
  },
2213
3635
  {
2214
3636
  "property": "data.transport.type",
2215
- "equals": "sse",
3637
+ "equals": "http",
2216
3638
  "type": "simple"
2217
3639
  }
2218
3640
  ]
@@ -2220,112 +3642,63 @@
2220
3642
  "type": "String"
2221
3643
  },
2222
3644
  {
2223
- "id": "data.options.clientCache",
2224
- "label": "Enable client caching",
2225
- "description": "If enabled, the MCP client instance is cached on the connector runtime and reused across requests.",
2226
- "optional": true,
2227
- "feel": "static",
2228
- "group": "options",
2229
- "binding": {
2230
- "name": "data.options.clientCache",
2231
- "type": "zeebe:input"
2232
- },
2233
- "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.",
2234
- "type": "Boolean"
2235
- },
2236
- {
2237
- "id": "data.connectorMode.type",
2238
- "label": "Connector mode",
2239
- "description": "Select how this connector is used.",
2240
- "value": "aiAgentTool",
2241
- "group": "connectorMode",
2242
- "binding": {
2243
- "name": "data.connectorMode.type",
2244
- "type": "zeebe:input"
2245
- },
2246
- "type": "Dropdown",
2247
- "choices": [
2248
- {
2249
- "name": "Standalone",
2250
- "value": "standalone"
2251
- },
2252
- {
2253
- "name": "AI Agent tool",
2254
- "value": "aiAgentTool"
2255
- }
2256
- ]
2257
- },
2258
- {
2259
- "id": "data.connectorMode.operation.type",
2260
- "label": "Operation",
2261
- "description": "The type of operation to perform.",
2262
- "value": "tools/list",
2263
- "group": "operation",
3645
+ "id": "data.transport.sse.authentication.type",
3646
+ "label": "Type",
3647
+ "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
3648
+ "value": "noAuth",
3649
+ "group": "authentication",
2264
3650
  "binding": {
2265
- "name": "data.connectorMode.operation.type",
3651
+ "name": "data.transport.sse.authentication.type",
2266
3652
  "type": "zeebe:input"
2267
3653
  },
2268
3654
  "condition": {
2269
- "property": "data.connectorMode.type",
2270
- "equals": "standalone",
3655
+ "property": "data.transport.type",
3656
+ "equals": "sse",
2271
3657
  "type": "simple"
2272
3658
  },
2273
3659
  "type": "Dropdown",
2274
3660
  "choices": [
2275
3661
  {
2276
- "name": "List Tools",
2277
- "value": "tools/list"
2278
- },
2279
- {
2280
- "name": "Call Tool",
2281
- "value": "tools/call"
2282
- },
2283
- {
2284
- "name": "List Resources",
2285
- "value": "resources/list"
2286
- },
2287
- {
2288
- "name": "List Resource Templates",
2289
- "value": "resources/templates/list"
3662
+ "name": "None",
3663
+ "value": "noAuth"
2290
3664
  },
2291
3665
  {
2292
- "name": "Read Resource",
2293
- "value": "resources/read"
3666
+ "name": "Basic",
3667
+ "value": "basic"
2294
3668
  },
2295
3669
  {
2296
- "name": "List Prompts",
2297
- "value": "prompts/list"
3670
+ "name": "Bearer token",
3671
+ "value": "bearer"
2298
3672
  },
2299
3673
  {
2300
- "name": "Get Prompt",
2301
- "value": "prompts/get"
3674
+ "name": "OAuth 2.0",
3675
+ "value": "oauth-client-credentials-flow"
2302
3676
  }
2303
3677
  ]
2304
3678
  },
2305
3679
  {
2306
- "id": "data.connectorMode.operation.toolName",
2307
- "label": "Tool name",
2308
- "description": "The name of the tool to call.",
3680
+ "id": "data.transport.sse.authentication.username",
3681
+ "label": "Username",
2309
3682
  "optional": false,
2310
3683
  "constraints": {
2311
3684
  "notEmpty": true
2312
3685
  },
2313
3686
  "feel": "optional",
2314
- "group": "operation",
3687
+ "group": "authentication",
2315
3688
  "binding": {
2316
- "name": "data.connectorMode.operation.toolName",
3689
+ "name": "data.transport.sse.authentication.username",
2317
3690
  "type": "zeebe:input"
2318
3691
  },
2319
3692
  "condition": {
2320
3693
  "allMatch": [
2321
3694
  {
2322
- "property": "data.connectorMode.operation.type",
2323
- "equals": "tools/call",
3695
+ "property": "data.transport.sse.authentication.type",
3696
+ "equals": "basic",
2324
3697
  "type": "simple"
2325
3698
  },
2326
3699
  {
2327
- "property": "data.connectorMode.type",
2328
- "equals": "standalone",
3700
+ "property": "data.transport.type",
3701
+ "equals": "sse",
2329
3702
  "type": "simple"
2330
3703
  }
2331
3704
  ]
@@ -2333,26 +3706,28 @@
2333
3706
  "type": "String"
2334
3707
  },
2335
3708
  {
2336
- "id": "data.connectorMode.operation.toolArguments",
2337
- "label": "Tool arguments",
2338
- "description": "The arguments to pass to the tool.",
2339
- "optional": true,
2340
- "feel": "required",
2341
- "group": "operation",
3709
+ "id": "data.transport.sse.authentication.password",
3710
+ "label": "Password",
3711
+ "optional": false,
3712
+ "constraints": {
3713
+ "notEmpty": true
3714
+ },
3715
+ "feel": "optional",
3716
+ "group": "authentication",
2342
3717
  "binding": {
2343
- "name": "data.connectorMode.operation.toolArguments",
3718
+ "name": "data.transport.sse.authentication.password",
2344
3719
  "type": "zeebe:input"
2345
3720
  },
2346
3721
  "condition": {
2347
3722
  "allMatch": [
2348
3723
  {
2349
- "property": "data.connectorMode.operation.type",
2350
- "equals": "tools/call",
3724
+ "property": "data.transport.sse.authentication.type",
3725
+ "equals": "basic",
2351
3726
  "type": "simple"
2352
3727
  },
2353
3728
  {
2354
- "property": "data.connectorMode.type",
2355
- "equals": "standalone",
3729
+ "property": "data.transport.type",
3730
+ "equals": "sse",
2356
3731
  "type": "simple"
2357
3732
  }
2358
3733
  ]
@@ -2360,29 +3735,28 @@
2360
3735
  "type": "String"
2361
3736
  },
2362
3737
  {
2363
- "id": "data.connectorMode.operation.resourceUri",
2364
- "label": "Resource URI",
2365
- "description": "The URI of the resource to read.",
3738
+ "id": "data.transport.sse.authentication.token",
3739
+ "label": "Bearer token",
2366
3740
  "optional": false,
2367
3741
  "constraints": {
2368
3742
  "notEmpty": true
2369
3743
  },
2370
3744
  "feel": "optional",
2371
- "group": "operation",
3745
+ "group": "authentication",
2372
3746
  "binding": {
2373
- "name": "data.connectorMode.operation.resourceUri",
3747
+ "name": "data.transport.sse.authentication.token",
2374
3748
  "type": "zeebe:input"
2375
3749
  },
2376
3750
  "condition": {
2377
3751
  "allMatch": [
2378
3752
  {
2379
- "property": "data.connectorMode.operation.type",
2380
- "equals": "resources/read",
3753
+ "property": "data.transport.sse.authentication.type",
3754
+ "equals": "bearer",
2381
3755
  "type": "simple"
2382
3756
  },
2383
3757
  {
2384
- "property": "data.connectorMode.type",
2385
- "equals": "standalone",
3758
+ "property": "data.transport.type",
3759
+ "equals": "sse",
2386
3760
  "type": "simple"
2387
3761
  }
2388
3762
  ]
@@ -2390,29 +3764,33 @@
2390
3764
  "type": "String"
2391
3765
  },
2392
3766
  {
2393
- "id": "data.connectorMode.operation.promptName",
2394
- "label": "Prompt name",
2395
- "description": "The name of the prompt to get.",
3767
+ "id": "data.transport.sse.authentication.oauthTokenEndpoint",
3768
+ "label": "OAuth 2.0 token endpoint",
3769
+ "description": "The OAuth token endpoint",
2396
3770
  "optional": false,
2397
3771
  "constraints": {
2398
- "notEmpty": true
3772
+ "notEmpty": true,
3773
+ "pattern": {
3774
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
3775
+ "message": "Must be a http(s) URL"
3776
+ }
2399
3777
  },
2400
3778
  "feel": "optional",
2401
- "group": "operation",
3779
+ "group": "authentication",
2402
3780
  "binding": {
2403
- "name": "data.connectorMode.operation.promptName",
3781
+ "name": "data.transport.sse.authentication.oauthTokenEndpoint",
2404
3782
  "type": "zeebe:input"
2405
3783
  },
2406
3784
  "condition": {
2407
3785
  "allMatch": [
2408
3786
  {
2409
- "property": "data.connectorMode.operation.type",
2410
- "equals": "prompts/get",
3787
+ "property": "data.transport.sse.authentication.type",
3788
+ "equals": "oauth-client-credentials-flow",
2411
3789
  "type": "simple"
2412
3790
  },
2413
3791
  {
2414
- "property": "data.connectorMode.type",
2415
- "equals": "standalone",
3792
+ "property": "data.transport.type",
3793
+ "equals": "sse",
2416
3794
  "type": "simple"
2417
3795
  }
2418
3796
  ]
@@ -2420,26 +3798,29 @@
2420
3798
  "type": "String"
2421
3799
  },
2422
3800
  {
2423
- "id": "data.connectorMode.operation.promptArguments",
2424
- "label": "Prompt arguments",
2425
- "description": "The arguments to pass to the prompt generation.",
2426
- "optional": true,
2427
- "feel": "required",
2428
- "group": "operation",
3801
+ "id": "data.transport.sse.authentication.clientId",
3802
+ "label": "Client ID",
3803
+ "description": "Your application's client ID from the OAuth client",
3804
+ "optional": false,
3805
+ "constraints": {
3806
+ "notEmpty": true
3807
+ },
3808
+ "feel": "optional",
3809
+ "group": "authentication",
2429
3810
  "binding": {
2430
- "name": "data.connectorMode.operation.promptArguments",
3811
+ "name": "data.transport.sse.authentication.clientId",
2431
3812
  "type": "zeebe:input"
2432
3813
  },
2433
3814
  "condition": {
2434
3815
  "allMatch": [
2435
3816
  {
2436
- "property": "data.connectorMode.operation.type",
2437
- "equals": "prompts/get",
3817
+ "property": "data.transport.sse.authentication.type",
3818
+ "equals": "oauth-client-credentials-flow",
2438
3819
  "type": "simple"
2439
3820
  },
2440
3821
  {
2441
- "property": "data.connectorMode.type",
2442
- "equals": "standalone",
3822
+ "property": "data.transport.type",
3823
+ "equals": "sse",
2443
3824
  "type": "simple"
2444
3825
  }
2445
3826
  ]
@@ -2447,180 +3828,211 @@
2447
3828
  "type": "String"
2448
3829
  },
2449
3830
  {
2450
- "id": "data.connectorMode.toolOperation.method",
2451
- "label": "Method",
2452
- "description": "The MCP method to be called, e.g. <code>tools/list</code>.",
3831
+ "id": "data.transport.sse.authentication.clientSecret",
3832
+ "label": "Client secret",
3833
+ "description": "Your application's client secret from the OAuth client",
2453
3834
  "optional": false,
2454
- "value": "=toolCall.method",
2455
3835
  "constraints": {
2456
3836
  "notEmpty": true
2457
3837
  },
2458
3838
  "feel": "optional",
2459
- "group": "operation",
2460
- "binding": {
2461
- "name": "data.connectorMode.toolOperation.method",
2462
- "type": "zeebe:input"
2463
- },
2464
- "condition": {
2465
- "property": "data.connectorMode.type",
2466
- "equals": "aiAgentTool",
2467
- "type": "simple"
2468
- },
2469
- "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>",
2470
- "type": "String"
2471
- },
2472
- {
2473
- "id": "data.connectorMode.toolOperation.params",
2474
- "label": "Parameters",
2475
- "description": "The parameters to be passed to the MCP method.",
2476
- "optional": true,
2477
- "value": "=toolCall.params",
2478
- "feel": "required",
2479
- "group": "operation",
2480
- "binding": {
2481
- "name": "data.connectorMode.toolOperation.params",
2482
- "type": "zeebe:input"
2483
- },
2484
- "condition": {
2485
- "property": "data.connectorMode.type",
2486
- "equals": "aiAgentTool",
2487
- "type": "simple"
2488
- },
2489
- "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.",
2490
- "type": "String"
2491
- },
2492
- {
2493
- "id": "data.connectorMode.standaloneModeFilters.tools.included",
2494
- "label": "Included tools",
2495
- "description": "List of tools that can be used by the MCP client. By default, all tools are allowed.",
2496
- "optional": true,
2497
- "feel": "required",
2498
- "group": "filters",
3839
+ "group": "authentication",
2499
3840
  "binding": {
2500
- "name": "data.connectorMode.standaloneModeFilters.tools.included",
3841
+ "name": "data.transport.sse.authentication.clientSecret",
2501
3842
  "type": "zeebe:input"
2502
3843
  },
2503
3844
  "condition": {
2504
3845
  "allMatch": [
2505
3846
  {
2506
- "property": "data.connectorMode.operation.type",
2507
- "oneOf": ["tools/call", "tools/list"],
3847
+ "property": "data.transport.sse.authentication.type",
3848
+ "equals": "oauth-client-credentials-flow",
2508
3849
  "type": "simple"
2509
3850
  },
2510
3851
  {
2511
- "property": "data.connectorMode.type",
2512
- "equals": "standalone",
3852
+ "property": "data.transport.type",
3853
+ "equals": "sse",
2513
3854
  "type": "simple"
2514
3855
  }
2515
3856
  ]
2516
3857
  },
2517
- "type": "Text"
3858
+ "type": "String"
2518
3859
  },
2519
3860
  {
2520
- "id": "data.connectorMode.standaloneModeFilters.tools.excluded",
2521
- "label": "Excluded tools",
2522
- "description": "List of tools that are not allowed to be used by the MCP client. Will override any included tools.",
3861
+ "id": "data.transport.sse.authentication.audience",
3862
+ "label": "Audience",
3863
+ "description": "The unique identifier of the target API you want to access",
2523
3864
  "optional": true,
2524
- "feel": "required",
2525
- "group": "filters",
3865
+ "feel": "optional",
3866
+ "group": "authentication",
2526
3867
  "binding": {
2527
- "name": "data.connectorMode.standaloneModeFilters.tools.excluded",
3868
+ "name": "data.transport.sse.authentication.audience",
2528
3869
  "type": "zeebe:input"
2529
3870
  },
2530
3871
  "condition": {
2531
3872
  "allMatch": [
2532
3873
  {
2533
- "property": "data.connectorMode.operation.type",
2534
- "oneOf": ["tools/call", "tools/list"],
3874
+ "property": "data.transport.sse.authentication.type",
3875
+ "equals": "oauth-client-credentials-flow",
2535
3876
  "type": "simple"
2536
3877
  },
2537
3878
  {
2538
- "property": "data.connectorMode.type",
2539
- "equals": "standalone",
3879
+ "property": "data.transport.type",
3880
+ "equals": "sse",
2540
3881
  "type": "simple"
2541
3882
  }
2542
3883
  ]
2543
3884
  },
2544
- "type": "Text"
3885
+ "type": "String"
2545
3886
  },
2546
3887
  {
2547
- "id": "data.connectorMode.standaloneModeFilters.resources.included",
2548
- "label": "Included resources",
2549
- "description": "List of resources that can be accessed by the MCP client. By default, all resources are allowed.",
2550
- "optional": true,
2551
- "feel": "required",
2552
- "group": "filters",
3888
+ "id": "data.transport.sse.authentication.clientAuthentication",
3889
+ "label": "Client authentication",
3890
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
3891
+ "optional": false,
3892
+ "value": "BASIC_AUTH_HEADER",
3893
+ "constraints": {
3894
+ "notEmpty": true
3895
+ },
3896
+ "group": "authentication",
2553
3897
  "binding": {
2554
- "name": "data.connectorMode.standaloneModeFilters.resources.included",
3898
+ "name": "data.transport.sse.authentication.clientAuthentication",
2555
3899
  "type": "zeebe:input"
2556
3900
  },
2557
3901
  "condition": {
2558
3902
  "allMatch": [
2559
3903
  {
2560
- "property": "data.connectorMode.operation.type",
2561
- "oneOf": [
2562
- "resources/read",
2563
- "resources/list",
2564
- "resources/templates/list"
2565
- ],
3904
+ "property": "data.transport.sse.authentication.type",
3905
+ "equals": "oauth-client-credentials-flow",
2566
3906
  "type": "simple"
2567
3907
  },
2568
3908
  {
2569
- "property": "data.connectorMode.type",
2570
- "equals": "standalone",
3909
+ "property": "data.transport.type",
3910
+ "equals": "sse",
2571
3911
  "type": "simple"
2572
3912
  }
2573
3913
  ]
2574
3914
  },
2575
- "type": "Text"
3915
+ "type": "Dropdown",
3916
+ "choices": [
3917
+ {
3918
+ "name": "Send as Basic Auth header",
3919
+ "value": "BASIC_AUTH_HEADER"
3920
+ },
3921
+ {
3922
+ "name": "Send client credentials in body",
3923
+ "value": "CREDENTIALS_BODY"
3924
+ }
3925
+ ]
2576
3926
  },
2577
3927
  {
2578
- "id": "data.connectorMode.standaloneModeFilters.resources.excluded",
2579
- "label": "Excluded resources",
2580
- "description": "List of resources that are not allowed to be accessed by the MCP client. Will override any included resources.",
3928
+ "id": "data.transport.sse.authentication.scopes",
3929
+ "label": "Scopes",
3930
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2581
3931
  "optional": true,
2582
- "feel": "required",
2583
- "group": "filters",
3932
+ "feel": "optional",
3933
+ "group": "authentication",
2584
3934
  "binding": {
2585
- "name": "data.connectorMode.standaloneModeFilters.resources.excluded",
3935
+ "name": "data.transport.sse.authentication.scopes",
2586
3936
  "type": "zeebe:input"
2587
3937
  },
2588
3938
  "condition": {
2589
3939
  "allMatch": [
2590
3940
  {
2591
- "property": "data.connectorMode.operation.type",
2592
- "oneOf": [
2593
- "resources/read",
2594
- "resources/list",
2595
- "resources/templates/list"
2596
- ],
3941
+ "property": "data.transport.sse.authentication.type",
3942
+ "equals": "oauth-client-credentials-flow",
2597
3943
  "type": "simple"
2598
3944
  },
2599
3945
  {
2600
- "property": "data.connectorMode.type",
2601
- "equals": "standalone",
3946
+ "property": "data.transport.type",
3947
+ "equals": "sse",
2602
3948
  "type": "simple"
2603
3949
  }
2604
3950
  ]
2605
3951
  },
2606
- "type": "Text"
3952
+ "type": "String"
2607
3953
  },
2608
3954
  {
2609
- "id": "data.connectorMode.standaloneModeFilters.prompts.included",
2610
- "label": "Included prompts",
2611
- "description": "List of prompts that can be accessed by the MCP client. By default, all prompts are allowed.",
3955
+ "id": "data.options.clientCache",
3956
+ "label": "Enable client caching",
3957
+ "description": "If enabled, the MCP client instance is cached on the connector runtime and reused across requests.",
2612
3958
  "optional": true,
2613
- "feel": "required",
2614
- "group": "filters",
3959
+ "feel": "static",
3960
+ "group": "options",
2615
3961
  "binding": {
2616
- "name": "data.connectorMode.standaloneModeFilters.prompts.included",
3962
+ "name": "data.options.clientCache",
3963
+ "type": "zeebe:input"
3964
+ },
3965
+ "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.",
3966
+ "type": "Boolean"
3967
+ },
3968
+ {
3969
+ "id": "data.connectorMode.type",
3970
+ "label": "Connector mode",
3971
+ "description": "Select how this connector is used.",
3972
+ "value": "aiAgentTool",
3973
+ "group": "connectorMode",
3974
+ "binding": {
3975
+ "name": "data.connectorMode.type",
3976
+ "type": "zeebe:input"
3977
+ },
3978
+ "type": "Dropdown",
3979
+ "choices": [
3980
+ {
3981
+ "name": "Standalone",
3982
+ "value": "standalone"
3983
+ },
3984
+ {
3985
+ "name": "AI Agent tool",
3986
+ "value": "aiAgentTool"
3987
+ }
3988
+ ]
3989
+ },
3990
+ {
3991
+ "id": "data.connectorMode.operation.type",
3992
+ "label": "Operation",
3993
+ "description": "The type of operation to perform.",
3994
+ "value": "tools/list",
3995
+ "group": "operation",
3996
+ "binding": {
3997
+ "name": "data.connectorMode.operation.type",
3998
+ "type": "zeebe:input"
3999
+ },
4000
+ "condition": {
4001
+ "property": "data.connectorMode.type",
4002
+ "equals": "standalone",
4003
+ "type": "simple"
4004
+ },
4005
+ "type": "Dropdown",
4006
+ "choices": [
4007
+ {
4008
+ "name": "Call Tool",
4009
+ "value": "tools/call"
4010
+ },
4011
+ {
4012
+ "name": "List Tools",
4013
+ "value": "tools/list"
4014
+ }
4015
+ ]
4016
+ },
4017
+ {
4018
+ "id": "data.connectorMode.operation.toolName",
4019
+ "label": "Tool name",
4020
+ "description": "The name of the tool to call.",
4021
+ "optional": false,
4022
+ "constraints": {
4023
+ "notEmpty": true
4024
+ },
4025
+ "feel": "optional",
4026
+ "group": "operation",
4027
+ "binding": {
4028
+ "name": "data.connectorMode.operation.toolName",
2617
4029
  "type": "zeebe:input"
2618
4030
  },
2619
4031
  "condition": {
2620
4032
  "allMatch": [
2621
4033
  {
2622
4034
  "property": "data.connectorMode.operation.type",
2623
- "oneOf": ["prompts/get", "prompts/list"],
4035
+ "equals": "tools/call",
2624
4036
  "type": "simple"
2625
4037
  },
2626
4038
  {
@@ -2630,24 +4042,24 @@
2630
4042
  }
2631
4043
  ]
2632
4044
  },
2633
- "type": "Text"
4045
+ "type": "String"
2634
4046
  },
2635
4047
  {
2636
- "id": "data.connectorMode.standaloneModeFilters.prompts.excluded",
2637
- "label": "Excluded prompts",
2638
- "description": "List of prompts that are not allowed to be accessed by the MCP client. Will override any included prompts.",
4048
+ "id": "data.connectorMode.operation.toolArguments",
4049
+ "label": "Tool arguments",
4050
+ "description": "The arguments to pass to the tool.",
2639
4051
  "optional": true,
2640
4052
  "feel": "required",
2641
- "group": "filters",
4053
+ "group": "operation",
2642
4054
  "binding": {
2643
- "name": "data.connectorMode.standaloneModeFilters.prompts.excluded",
4055
+ "name": "data.connectorMode.operation.toolArguments",
2644
4056
  "type": "zeebe:input"
2645
4057
  },
2646
4058
  "condition": {
2647
4059
  "allMatch": [
2648
4060
  {
2649
4061
  "property": "data.connectorMode.operation.type",
2650
- "oneOf": ["prompts/get", "prompts/list"],
4062
+ "equals": "tools/call",
2651
4063
  "type": "simple"
2652
4064
  },
2653
4065
  {
@@ -2657,17 +4069,21 @@
2657
4069
  }
2658
4070
  ]
2659
4071
  },
2660
- "type": "Text"
4072
+ "type": "String"
2661
4073
  },
2662
4074
  {
2663
- "id": "data.connectorMode.toolModeFilters.tools.included",
2664
- "label": "Included tools",
2665
- "description": "List of tools that can be used by the MCP client. By default, all tools are allowed.",
2666
- "optional": true,
2667
- "feel": "required",
2668
- "group": "filters",
4075
+ "id": "data.connectorMode.toolOperation.method",
4076
+ "label": "Method",
4077
+ "description": "The MCP method to be called, e.g. <code>tools/list</code>.",
4078
+ "optional": false,
4079
+ "value": "=toolCall.method",
4080
+ "constraints": {
4081
+ "notEmpty": true
4082
+ },
4083
+ "feel": "optional",
4084
+ "group": "operation",
2669
4085
  "binding": {
2670
- "name": "data.connectorMode.toolModeFilters.tools.included",
4086
+ "name": "data.connectorMode.toolOperation.method",
2671
4087
  "type": "zeebe:input"
2672
4088
  },
2673
4089
  "condition": {
@@ -2675,17 +4091,19 @@
2675
4091
  "equals": "aiAgentTool",
2676
4092
  "type": "simple"
2677
4093
  },
2678
- "type": "Text"
4094
+ "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>",
4095
+ "type": "String"
2679
4096
  },
2680
4097
  {
2681
- "id": "data.connectorMode.toolModeFilters.tools.excluded",
2682
- "label": "Excluded tools",
2683
- "description": "List of tools that are not allowed to be used by the MCP client. Will override any included tools.",
4098
+ "id": "data.connectorMode.toolOperation.params",
4099
+ "label": "Parameters",
4100
+ "description": "The parameters to be passed to the MCP method.",
2684
4101
  "optional": true,
4102
+ "value": "=toolCall.params",
2685
4103
  "feel": "required",
2686
- "group": "filters",
4104
+ "group": "operation",
2687
4105
  "binding": {
2688
- "name": "data.connectorMode.toolModeFilters.tools.excluded",
4106
+ "name": "data.connectorMode.toolOperation.params",
2689
4107
  "type": "zeebe:input"
2690
4108
  },
2691
4109
  "condition": {
@@ -2693,13 +4111,40 @@
2693
4111
  "equals": "aiAgentTool",
2694
4112
  "type": "simple"
2695
4113
  },
4114
+ "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.",
4115
+ "type": "String"
4116
+ },
4117
+ {
4118
+ "id": "data.tools.included",
4119
+ "label": "Included tools",
4120
+ "description": "List of tools that can be used by the MCP client. By default, all tools are allowed.",
4121
+ "optional": true,
4122
+ "feel": "required",
4123
+ "group": "tools",
4124
+ "binding": {
4125
+ "name": "data.tools.included",
4126
+ "type": "zeebe:input"
4127
+ },
4128
+ "type": "Text"
4129
+ },
4130
+ {
4131
+ "id": "data.tools.excluded",
4132
+ "label": "Excluded tools",
4133
+ "description": "List of tools that are not allowed to be used by the MCP client. Will override any included tools.",
4134
+ "optional": true,
4135
+ "feel": "required",
4136
+ "group": "tools",
4137
+ "binding": {
4138
+ "name": "data.tools.excluded",
4139
+ "type": "zeebe:input"
4140
+ },
2696
4141
  "type": "Text"
2697
4142
  },
2698
4143
  {
2699
4144
  "id": "version",
2700
4145
  "label": "Version",
2701
4146
  "description": "Version of the element template",
2702
- "value": "2",
4147
+ "value": "1",
2703
4148
  "group": "connector",
2704
4149
  "binding": {
2705
4150
  "key": "elementTemplateVersion",
@@ -2722,7 +4167,7 @@
2722
4167
  {
2723
4168
  "id": "resultVariable",
2724
4169
  "label": "Result variable",
2725
- "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>.",
4170
+ "description": "Name of variable to store the response in",
2726
4171
  "value": "toolCallResult",
2727
4172
  "group": "output",
2728
4173
  "binding": {
@@ -2734,7 +4179,7 @@
2734
4179
  {
2735
4180
  "id": "resultExpression",
2736
4181
  "label": "Result expression",
2737
- "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>.",
4182
+ "description": "Expression to map the response into process variables",
2738
4183
  "feel": "required",
2739
4184
  "group": "output",
2740
4185
  "binding": {