@celigo/api-specs 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/dist/account.yml +592 -0
  4. package/dist/agent.yml +908 -0
  5. package/dist/ai-agent.yml +5471 -0
  6. package/dist/api.yml +4140 -0
  7. package/dist/apim.yml +1286 -0
  8. package/dist/asynchelper.yml +3391 -0
  9. package/dist/audit.yml +2006 -0
  10. package/dist/connection.yml +8665 -0
  11. package/dist/connector.yml +1406 -0
  12. package/dist/ediprofile.yml +911 -0
  13. package/dist/editransaction.yml +1210 -0
  14. package/dist/enduser.yml +1724 -0
  15. package/dist/environment.yml +568 -0
  16. package/dist/eventreport.yml +692 -0
  17. package/dist/export.yml +17610 -0
  18. package/dist/filedefinition.yml +1396 -0
  19. package/dist/filestorage.yml +3102 -0
  20. package/dist/flow.yml +7928 -0
  21. package/dist/guardrail.yml +2763 -0
  22. package/dist/httpconnector.yml +2277 -0
  23. package/dist/httpconnectorendpoint.yml +722 -0
  24. package/dist/httpconnectorresource.yml +396 -0
  25. package/dist/iclient.yml +4452 -0
  26. package/dist/import.yml +15381 -0
  27. package/dist/integration.yml +4406 -0
  28. package/dist/job.yml +2014 -0
  29. package/dist/lookupcache.yml +1325 -0
  30. package/dist/marketplace.yml +685 -0
  31. package/dist/mcp-oauth-provider.yml +590 -0
  32. package/dist/mcp-server.yml +2656 -0
  33. package/dist/notification.yml +488 -0
  34. package/dist/processor.yml +1253 -0
  35. package/dist/profile.yml +455 -0
  36. package/dist/recyclebin.yml +768 -0
  37. package/dist/script.yml +1128 -0
  38. package/dist/stack.yml +1291 -0
  39. package/dist/state.yml +894 -0
  40. package/dist/subscription.yml +1405 -0
  41. package/dist/sync.yml +4857 -0
  42. package/dist/tag.yml +553 -0
  43. package/dist/template.yml +897 -0
  44. package/dist/tool.yml +33656 -0
  45. package/dist/tradingpartnerconnector.yml +1490 -0
  46. package/dist/user.yml +831 -0
  47. package/package.json +41 -0
  48. package/schemas.json +8420 -0
@@ -0,0 +1,2656 @@
1
+ openapi: 3.2.0
2
+ info:
3
+ version: 1.0.0
4
+ title: MCP Servers
5
+ description: API for managing Celigo MCP servers — endpoints that expose integration tools and APIs to AI agents and MCP clients.
6
+ x-celigo-ai-guidance:
7
+ - |-
8
+ API for managing MCP (Model Context Protocol) servers in Celigo.
9
+ MCP servers expose integration tools, builder-mode APIs,
10
+ and inline prompt templates as MCP-compatible endpoints that can be consumed by
11
+ AI agents and other MCP clients.
12
+ - |-
13
+ Each MCP server:
14
+ - Has a unique `relativeURI` that forms part of its endpoint path
15
+ - Contains a collection of **tools** (referencing Tool resources), **APIs** (referencing builder-mode API resources), **prompts** (inline reusable templates), and **resources** (Celigo Storage files served to clients)
16
+ - Can be enabled or disabled at both the server level and individual tool/API level
17
+ - Supports MCP annotations on tools for hinting behavior (read-only, idempotent, destructive, etc.)
18
+ - Supports tool overrides for customizing connections, exports, imports, and routing per-server
19
+ - Exposes prompts via `prompts/list` and `prompts/get` with Handlebars-style argument substitution
20
+ - Carries **permission sets** ("Capability Sets" in the UI) — named bundles of its tools and APIs granted to end users via `pset:<_id>` capability strings on end-user, group, and role resource grants
21
+ servers:
22
+ - url: https://api.integrator.io
23
+ description: Production (US / default region)
24
+ - url: https://api.eu.integrator.io
25
+ description: Production (EU region)
26
+ - url: https://api.au.integrator.io
27
+ description: Production (AU region)
28
+ - url: https://api.ca.integrator.io
29
+ description: Production (CA region)
30
+ security:
31
+ - bearerAuth: []
32
+ tags:
33
+ - name: MCP Servers
34
+ description: |-
35
+ MCP servers expose integration tools and builder-mode APIs as
36
+ MCP-compatible endpoints consumed by AI agents and MCP clients.
37
+
38
+ Each server has a unique `relativeURI`, a collection of tools and APIs
39
+ (each individually enable/disable), optional prompt templates, optional
40
+ file resources from Celigo Storage, and optional OAuth configuration.
41
+ Tools support MCP annotations (read-only, idempotent, destructive,
42
+ open-world) and per-server overrides for connections, exports, imports,
43
+ and routing. Permission sets ("Capability Sets" in the UI) bundle a
44
+ server's tools and APIs into named grants for end users, and the
45
+ server-scoped access endpoints bulk-assign capabilities to end users
46
+ and groups and report compiled effective access.
47
+
48
+ ## MCP server schema
49
+
50
+ {% openapi-schemas spec="mcp-server" schemas="MCPServer" grouped="true" %}
51
+ paths:
52
+ /v1/mcpservers:
53
+ get:
54
+ x-internal: false
55
+ summary: List MCP servers
56
+ description: Returns all MCP servers in the account.
57
+ x-celigo-ai-guidance:
58
+ - |-
59
+ Returns a list of all MCP servers configured in the account.
60
+ If no MCP servers exist in the account,
61
+ a 204 response with no body will be returned.
62
+ operationId: listMcpServers
63
+ tags:
64
+ - MCP Servers
65
+ parameters:
66
+ - $ref: '#/components/parameters/Include'
67
+ - $ref: '#/components/parameters/Exclude'
68
+ responses:
69
+ '200':
70
+ description: MCP server list.
71
+ x-celigo-ai-guidance:
72
+ - Successfully retrieved list of MCP servers
73
+ headers:
74
+ Link:
75
+ description: |-
76
+ RFC 5988 pagination links. Contains `<...>; rel="next"` when
77
+ more pages remain; absent on the final page.
78
+ schema:
79
+ type: string
80
+ content:
81
+ application/json:
82
+ schema:
83
+ type: array
84
+ items:
85
+ $ref: '#/components/schemas/MCPServer'
86
+ examples:
87
+ default:
88
+ value:
89
+ - _id: 69eb9fb5b4fc023618e490b8
90
+ _userId: 624cb0346309dc3a543733a2
91
+ name: Customer Integration MCP
92
+ relativeURI: /customers
93
+ description: Exposes customer management tools for AI agent consumption
94
+ disabled: false
95
+ tools:
96
+ - _toolId: 69d462d5b9c28ea0b7f82522
97
+ name: get_customer
98
+ disabled: false
99
+ annotations:
100
+ readOnlyHint: true
101
+ apis:
102
+ - name: order_lookup
103
+ _apiId: 68ae4264b5f755d2dd3796b4
104
+ disabled: false
105
+ resources: []
106
+ prompts: []
107
+ permissionSets:
108
+ - _id: 6a7b8c9d0e1f2a3b4c5d6e7f
109
+ name: Finance read-only
110
+ description: Read-only invoice lookups for the finance team
111
+ accessLevel: read
112
+ _toolIds:
113
+ - 69d462d5b9c28ea0b7f82522
114
+ _apiIds: []
115
+ oauth:
116
+ useCeligoOauth: true
117
+ createdAt: '2026-04-24T16:52:05.607Z'
118
+ lastModified: '2026-05-07T15:22:16.985Z'
119
+ '204':
120
+ description: No MCP servers exist in the account.
121
+ '401':
122
+ $ref: '#/components/responses/401-unauthorized'
123
+ post:
124
+ x-internal: false
125
+ summary: Create an MCP server
126
+ description: |-
127
+ Creates an MCP server. The server is created disabled by default.
128
+ `name` and `relativeURI` are the only required fields;
129
+ `relativeURI` must be unique per account.
130
+ x-celigo-ai-guidance:
131
+ - |-
132
+ Creates a new MCP server that exposes tools, APIs,
133
+ and inline prompts as MCP-compatible endpoints.
134
+ - |-
135
+ Set the server's `relativeURI` to a value that is unique per account and follows
136
+ the pattern `/<segment>`,
137
+ where the segment contains only alphanumeric characters, underscores,
138
+ and hyphens.
139
+ - |-
140
+ The server is created in a disabled state by default; to enable it,
141
+ at least one tool, API, resource, or prompt within the server must
142
+ also be enabled.
143
+ operationId: createMcpServer
144
+ tags:
145
+ - MCP Servers
146
+ requestBody:
147
+ required: true
148
+ content:
149
+ application/json:
150
+ schema:
151
+ $ref: '#/components/schemas/Request'
152
+ examples:
153
+ minimal:
154
+ summary: Minimal create
155
+ value:
156
+ name: Customer Integration MCP
157
+ relativeURI: /customers
158
+ with_tool:
159
+ summary: With a tool and Celigo OAuth
160
+ value:
161
+ name: Customer Integration MCP
162
+ relativeURI: /customers
163
+ description: Exposes customer management tools
164
+ disabled: false
165
+ tools:
166
+ - _toolId: 69d462d5b9c28ea0b7f82522
167
+ name: get_customer
168
+ disabled: false
169
+ annotations:
170
+ readOnlyHint: true
171
+ oauth:
172
+ useCeligoOauth: true
173
+ responses:
174
+ '201':
175
+ description: Created MCP server.
176
+ content:
177
+ application/json:
178
+ schema:
179
+ $ref: '#/components/schemas/MCPServer'
180
+ examples:
181
+ created:
182
+ summary: Created from the minimal request (disabled by default, empty arrays)
183
+ value:
184
+ _id: 69eb9fb5b4fc023618e490b8
185
+ _userId: 624cb0346309dc3a543733a2
186
+ name: Customer Integration MCP
187
+ relativeURI: /customers
188
+ description: ''
189
+ disabled: true
190
+ tools: []
191
+ apis: []
192
+ resources: []
193
+ prompts: []
194
+ permissionSets: []
195
+ createdAt: '2026-04-24T16:52:05.607Z'
196
+ lastModified: '2026-04-24T16:52:05.607Z'
197
+ '400':
198
+ $ref: '#/components/responses/400-bad-request'
199
+ '401':
200
+ $ref: '#/components/responses/401-unauthorized'
201
+ '422':
202
+ $ref: '#/components/responses/422-unprocessable-entity'
203
+ /v1/mcpservers/{_id}:
204
+ get:
205
+ x-internal: false
206
+ summary: Get an MCP server
207
+ description: Returns the full configuration of an MCP server including tools, APIs, prompts, resources, and OAuth settings.
208
+ operationId: getMcpServerById
209
+ tags:
210
+ - MCP Servers
211
+ parameters:
212
+ - name: _id
213
+ in: path
214
+ description: MCP server ID.
215
+ required: true
216
+ schema:
217
+ type: string
218
+ format: objectId
219
+ x-celigo-refModel: mcpservers
220
+ examples:
221
+ - 69eb9fb5b4fc023618e490b8
222
+ responses:
223
+ '200':
224
+ description: MCP server configuration.
225
+ content:
226
+ application/json:
227
+ schema:
228
+ $ref: '#/components/schemas/MCPServer'
229
+ examples:
230
+ default:
231
+ summary: Server exposing a tool and an API via Celigo OAuth
232
+ value:
233
+ _id: 69eb9fb5b4fc023618e490b8
234
+ _userId: 624cb0346309dc3a543733a2
235
+ name: Customer Integration MCP
236
+ relativeURI: /customers
237
+ description: Exposes customer management tools for AI agent consumption
238
+ disabled: false
239
+ tools:
240
+ - _toolId: 69d462d5b9c28ea0b7f82522
241
+ name: get_customer
242
+ disabled: false
243
+ annotations:
244
+ readOnlyHint: true
245
+ apis:
246
+ - name: order_lookup
247
+ _apiId: 68ae4264b5f755d2dd3796b4
248
+ disabled: false
249
+ resources: []
250
+ prompts: []
251
+ permissionSets:
252
+ - _id: 6a7b8c9d0e1f2a3b4c5d6e7f
253
+ name: Finance read-only
254
+ description: Read-only invoice lookups for the finance team
255
+ accessLevel: read
256
+ _toolIds:
257
+ - 69d462d5b9c28ea0b7f82522
258
+ _apiIds: []
259
+ oauth:
260
+ useCeligoOauth: true
261
+ createdAt: '2026-04-24T16:52:05.607Z'
262
+ lastModified: '2026-05-07T15:22:16.985Z'
263
+ '401':
264
+ $ref: '#/components/responses/401-unauthorized'
265
+ '404':
266
+ $ref: '#/components/responses/404-not-found'
267
+ put:
268
+ x-internal: false
269
+ summary: Update an MCP server
270
+ description: |-
271
+ Full replacement of an MCP server's configuration. Omitted arrays
272
+ (`tools`, `apis`, `prompts`, `resources`, `permissionSets`) are cleared,
273
+ so include the complete arrays — clearing `permissionSets` this way also
274
+ rewrites the `pset:` grants that referenced the erased sets. `relativeURI`
275
+ can be changed but must remain unique per account.
276
+ operationId: updateMcpServer
277
+ tags:
278
+ - MCP Servers
279
+ parameters:
280
+ - name: _id
281
+ in: path
282
+ description: MCP server ID.
283
+ required: true
284
+ schema:
285
+ type: string
286
+ format: objectId
287
+ x-celigo-refModel: mcpservers
288
+ examples:
289
+ - 69eb9fb5b4fc023618e490b8
290
+ requestBody:
291
+ required: true
292
+ content:
293
+ application/json:
294
+ schema:
295
+ $ref: '#/components/schemas/Request'
296
+ examples:
297
+ full_replace:
298
+ summary: Full replacement — include complete arrays (omitted arrays are cleared)
299
+ value:
300
+ name: Customer Integration MCP
301
+ relativeURI: /customers
302
+ description: Exposes customer management tools for AI agent consumption
303
+ disabled: false
304
+ tools:
305
+ - _toolId: 69d462d5b9c28ea0b7f82522
306
+ name: get_customer
307
+ disabled: false
308
+ annotations:
309
+ readOnlyHint: true
310
+ apis:
311
+ - name: order_lookup
312
+ _apiId: 68ae4264b5f755d2dd3796b4
313
+ disabled: false
314
+ resources:
315
+ - title: Return Policy
316
+ _fileId: 6a55886da387d16e4e475aa2
317
+ disabled: false
318
+ permissionSets:
319
+ - _id: 6a7b8c9d0e1f2a3b4c5d6e7f
320
+ name: Finance read-only
321
+ description: Read-only invoice lookups for the finance team
322
+ accessLevel: read
323
+ _toolIds:
324
+ - 69d462d5b9c28ea0b7f82522
325
+ _apiIds: []
326
+ oauth:
327
+ useCeligoOauth: true
328
+ responses:
329
+ '200':
330
+ description: Updated MCP server.
331
+ content:
332
+ application/json:
333
+ schema:
334
+ $ref: '#/components/schemas/MCPServer'
335
+ examples:
336
+ updated:
337
+ summary: Server with replaced configuration
338
+ value:
339
+ _id: 69eb9fb5b4fc023618e490b8
340
+ _userId: 624cb0346309dc3a543733a2
341
+ name: Customer Integration MCP
342
+ relativeURI: /customers
343
+ description: Exposes customer management tools for AI agent consumption
344
+ disabled: false
345
+ tools:
346
+ - _toolId: 69d462d5b9c28ea0b7f82522
347
+ name: get_customer
348
+ disabled: false
349
+ annotations:
350
+ readOnlyHint: true
351
+ apis:
352
+ - name: order_lookup
353
+ _apiId: 68ae4264b5f755d2dd3796b4
354
+ disabled: false
355
+ resources:
356
+ - title: Return Policy
357
+ _fileId: 6a55886da387d16e4e475aa2
358
+ disabled: false
359
+ prompts: []
360
+ permissionSets:
361
+ - _id: 6a7b8c9d0e1f2a3b4c5d6e7f
362
+ name: Finance read-only
363
+ description: Read-only invoice lookups for the finance team
364
+ accessLevel: read
365
+ _toolIds:
366
+ - 69d462d5b9c28ea0b7f82522
367
+ _apiIds: []
368
+ oauth:
369
+ useCeligoOauth: true
370
+ createdAt: '2026-04-24T16:52:05.607Z'
371
+ lastModified: '2026-05-07T15:22:16.985Z'
372
+ '400':
373
+ $ref: '#/components/responses/400-bad-request'
374
+ '401':
375
+ $ref: '#/components/responses/401-unauthorized'
376
+ '404':
377
+ $ref: '#/components/responses/404-not-found'
378
+ '422':
379
+ $ref: '#/components/responses/422-unprocessable-entity'
380
+ x-celigo-ai-guidance:
381
+ - |-
382
+ Updates an existing MCP server with the provided configuration.
383
+ This replaces the full server configuration including tools and APIs.
384
+ patch:
385
+ x-internal: false
386
+ summary: Patch an MCP server
387
+ description: |-
388
+ Partially updates an MCP server using a JSON Patch document (RFC 6902).
389
+ Only `/name` and `/disabled` are whitelisted paths — all other paths
390
+ are rejected with `not a whitelisted property`.
391
+ operationId: patchMcpServer
392
+ tags:
393
+ - MCP Servers
394
+ parameters:
395
+ - name: _id
396
+ in: path
397
+ description: MCP server ID.
398
+ required: true
399
+ schema:
400
+ type: string
401
+ format: objectId
402
+ x-celigo-refModel: mcpservers
403
+ examples:
404
+ - 69eb9fb5b4fc023618e490b8
405
+ requestBody:
406
+ required: true
407
+ content:
408
+ application/json:
409
+ schema:
410
+ $ref: '#/components/schemas/JsonPatchRequest'
411
+ examples:
412
+ disable_server:
413
+ summary: Disable an MCP server
414
+ value:
415
+ - op: replace
416
+ path: /disabled
417
+ value: true
418
+ rename:
419
+ summary: Rename an MCP server
420
+ value:
421
+ - op: replace
422
+ path: /name
423
+ value: Updated Server Name
424
+ responses:
425
+ '204':
426
+ description: Patch applied.
427
+ '401':
428
+ $ref: '#/components/responses/401-unauthorized'
429
+ '404':
430
+ $ref: '#/components/responses/404-not-found'
431
+ '422':
432
+ $ref: '#/components/responses/422-unprocessable-entity'
433
+ delete:
434
+ x-internal: false
435
+ summary: Delete an MCP server
436
+ description: |-
437
+ Soft-deletes an MCP server. Retained in the recycle bin for 30 days
438
+ before permanent removal.
439
+ operationId: deleteMcpServer
440
+ tags:
441
+ - MCP Servers
442
+ parameters:
443
+ - name: _id
444
+ in: path
445
+ description: MCP server ID.
446
+ required: true
447
+ schema:
448
+ type: string
449
+ format: objectId
450
+ x-celigo-refModel: mcpservers
451
+ examples:
452
+ - 69eb9fb5b4fc023618e490b8
453
+ responses:
454
+ '204':
455
+ description: Deleted.
456
+ '401':
457
+ $ref: '#/components/responses/401-unauthorized'
458
+ '404':
459
+ $ref: '#/components/responses/404-not-found'
460
+ /v1/mcpservers/{_id}/dependencies:
461
+ get:
462
+ x-internal: false
463
+ operationId: listMcpServerDependencies
464
+ tags:
465
+ - MCP Servers
466
+ summary: List dependencies of an MCP server
467
+ description: |-
468
+ Returns the set of resources that depend on the specified resource.
469
+ The response is an object whose keys are dependent-resource types
470
+ (e.g. `flows`, `imports`) and whose values are arrays of dependency
471
+ entries. Returns `{}` when no dependents exist, including for
472
+ well-formatted but nonexistent IDs.
473
+ parameters:
474
+ - name: _id
475
+ in: path
476
+ required: true
477
+ description: Resource ID.
478
+ schema:
479
+ type: string
480
+ format: objectId
481
+ x-celigo-refModel: mcpservers
482
+ responses:
483
+ '200':
484
+ description: |
485
+ Dependency map. Keys are resource-type strings; values are arrays
486
+ of dependency entries. Returns `{}` when no dependents exist.
487
+ content:
488
+ application/json:
489
+ schema:
490
+ $ref: '#/components/schemas/DependencyResponse'
491
+ examples:
492
+ none:
493
+ summary: No dependents (also returned for a nonexistent ID)
494
+ value: {}
495
+ '401':
496
+ $ref: '#/components/responses/401-unauthorized'
497
+ /v1/mcpservers/{_id}/effective-access:
498
+ get:
499
+ x-internal: false
500
+ summary: Get effective end-user access for an MCP server
501
+ operationId: getMcpServerEffectiveAccess
502
+ tags:
503
+ - MCP Servers
504
+ description: |-
505
+ Server-scoped reverse lookup: finds every end user who can reach this MCP
506
+ server and compiles each one's effective tool access with source
507
+ attribution — the union of direct grants, group grants, role grants, and
508
+ permission sets. The result is recomputed on every request rather than
509
+ cached. Requires account owner or administrator access. The per-user view
510
+ of the same compilation is `GET /v1/endusers/{_ashareId}/effective-access`
511
+ (End Users API).
512
+ parameters:
513
+ - name: _id
514
+ in: path
515
+ description: MCP server ID.
516
+ required: true
517
+ schema:
518
+ type: string
519
+ format: objectId
520
+ x-celigo-refModel: mcpservers
521
+ examples:
522
+ - 69eb9fb5b4fc023618e490b8
523
+ responses:
524
+ '200':
525
+ description: Compiled effective access by end user.
526
+ content:
527
+ application/json:
528
+ schema:
529
+ $ref: '#/components/schemas/MCPServerEffectiveAccess'
530
+ examples:
531
+ default:
532
+ summary: One end user with permission-set access
533
+ value:
534
+ _mcpServerId: 69eb9fb5b4fc023618e490b8
535
+ serverName: Customer Integration MCP
536
+ users:
537
+ - _ashareId: 68b1c2d3e4f5a6b7c8d9e0f1
538
+ _userId: 624774a6a7574d3ed9f9a5cc
539
+ email: jane.doe@example.com
540
+ name: Jane Doe
541
+ tools:
542
+ - _id: 69d462d5b9c28ea0b7f82522
543
+ name: get_customer
544
+ via:
545
+ - pset:Finance read-only (group:Finance)
546
+ no_access:
547
+ summary: No end user has access to this server
548
+ value:
549
+ _mcpServerId: 69eb9fb5b4fc023618e490b8
550
+ serverName: Customer Integration MCP
551
+ users: []
552
+ '400':
553
+ $ref: '#/components/responses/400-bad-request'
554
+ '401':
555
+ $ref: '#/components/responses/401-unauthorized'
556
+ '403':
557
+ $ref: '#/components/responses/403-forbidden'
558
+ '404':
559
+ $ref: '#/components/responses/404-not-found'
560
+ /v1/mcpservers/{_id}/endusers:
561
+ put:
562
+ x-internal: false
563
+ summary: Bulk assign MCP server access to end users
564
+ operationId: assignMcpServerEndUsers
565
+ tags:
566
+ - MCP Servers
567
+ description: |-
568
+ Assigns this server's capabilities to up to 100 end users in one request.
569
+ For each end user, the grant for this server is replaced with the supplied
570
+ capabilities; grants for other MCP servers and wildcard grants are
571
+ preserved. End users whose grants already match are counted as processed
572
+ without a save. Processing stops at the first failure — the response then
573
+ carries the entries completed before it, plus `errors`. Requires account
574
+ owner or administrator access.
575
+ parameters:
576
+ - name: _id
577
+ in: path
578
+ description: MCP server ID.
579
+ required: true
580
+ schema:
581
+ type: string
582
+ format: objectId
583
+ x-celigo-refModel: mcpservers
584
+ examples:
585
+ - 69eb9fb5b4fc023618e490b8
586
+ requestBody:
587
+ required: true
588
+ content:
589
+ application/json:
590
+ schema:
591
+ $ref: '#/components/schemas/BulkAssignEndUsersRequest'
592
+ examples:
593
+ pset_grant:
594
+ summary: Grant a permission set to two end users
595
+ value:
596
+ _ashareIds:
597
+ - 68b1c2d3e4f5a6b7c8d9e0f1
598
+ - 68b1c2d3e4f5a6b7c8d9e0f2
599
+ capabilities:
600
+ - pset:6a7b8c9d0e1f2a3b4c5d6e7f
601
+ all_tools:
602
+ summary: Grant every tool on the server
603
+ value:
604
+ _ashareIds:
605
+ - 68b1c2d3e4f5a6b7c8d9e0f1
606
+ capabilities:
607
+ - tool:all
608
+ responses:
609
+ '200':
610
+ description: All end users processed.
611
+ content:
612
+ application/json:
613
+ schema:
614
+ $ref: '#/components/schemas/BulkAssignEndUsersResult'
615
+ examples:
616
+ default:
617
+ value:
618
+ updated: 2
619
+ _mcpServerId: 69eb9fb5b4fc023618e490b8
620
+ serverName: Customer Integration MCP
621
+ endUsers:
622
+ - _id: 68b1c2d3e4f5a6b7c8d9e0f1
623
+ _sharedWithUserId: 624774a6a7574d3ed9f9a5cc
624
+ resourceGrants:
625
+ - resourceType: mcpServer
626
+ _resourceId: 69eb9fb5b4fc023618e490b8
627
+ capabilities:
628
+ - pset:6a7b8c9d0e1f2a3b4c5d6e7f
629
+ capabilities:
630
+ - pset:6a7b8c9d0e1f2a3b4c5d6e7f
631
+ - _id: 68b1c2d3e4f5a6b7c8d9e0f2
632
+ _sharedWithUserId: 624774a6a7574d3ed9f9a5dd
633
+ resourceGrants:
634
+ - resourceType: mcpServer
635
+ _resourceId: 69eb9fb5b4fc023618e490b8
636
+ capabilities:
637
+ - pset:6a7b8c9d0e1f2a3b4c5d6e7f
638
+ capabilities:
639
+ - pset:6a7b8c9d0e1f2a3b4c5d6e7f
640
+ '400':
641
+ description: |-
642
+ Validation failed. Pre-flight failures (invalid MCP server id,
643
+ invalid request body, unknown end-user ids) return a bare `errors`
644
+ array; a mid-batch failure from merged-grant re-validation returns
645
+ the result body with partial progress plus `errors`.
646
+ content:
647
+ application/json:
648
+ schema:
649
+ $ref: '#/components/schemas/Error'
650
+ examples:
651
+ too_many:
652
+ value:
653
+ errors:
654
+ - code: validation_failed
655
+ message: Validation failed. _ashareIds cannot exceed 100 entries per request.
656
+ '401':
657
+ $ref: '#/components/responses/401-unauthorized'
658
+ '403':
659
+ $ref: '#/components/responses/403-forbidden'
660
+ '404':
661
+ description: |-
662
+ MCP server not found in this account (pre-flight, a bare `errors`
663
+ array), or an end-user share disappeared mid-batch (the result body
664
+ with partial progress plus `errors`).
665
+ content:
666
+ application/json:
667
+ schema:
668
+ $ref: '#/components/schemas/Error'
669
+ examples:
670
+ server_not_found:
671
+ value:
672
+ errors:
673
+ - code: not_found
674
+ message: MCP server not found in this account.
675
+ '409':
676
+ description: |-
677
+ A duplicate end-user share was detected while persisting mid-batch
678
+ (`enduser_ashare_exists`). Returns the result body with partial
679
+ progress plus `errors`.
680
+ content:
681
+ application/json:
682
+ schema:
683
+ $ref: '#/components/schemas/BulkAssignEndUsersResult'
684
+ /v1/mcpservers/{_id}/groups:
685
+ put:
686
+ x-internal: false
687
+ summary: Bulk assign MCP server access to groups
688
+ operationId: assignMcpServerGroups
689
+ tags:
690
+ - MCP Servers
691
+ description: |-
692
+ Assigns this server's capabilities to up to 100 groups in one request.
693
+ For each group, the grant for this server is replaced with the supplied
694
+ capabilities; grants for other MCP servers and wildcard grants are
695
+ preserved, and the group's roles and members are not changed. Groups are
696
+ updated in batches of five; processing stops at the first failure — the
697
+ response then carries the groups completed before it, plus `errors`.
698
+ Requires account owner or administrator access.
699
+ parameters:
700
+ - name: _id
701
+ in: path
702
+ description: MCP server ID.
703
+ required: true
704
+ schema:
705
+ type: string
706
+ format: objectId
707
+ x-celigo-refModel: mcpservers
708
+ examples:
709
+ - 69eb9fb5b4fc023618e490b8
710
+ requestBody:
711
+ required: true
712
+ content:
713
+ application/json:
714
+ schema:
715
+ $ref: '#/components/schemas/BulkAssignGroupsRequest'
716
+ examples:
717
+ pset_grant:
718
+ summary: Grant a permission set to two groups
719
+ value:
720
+ _groupIds:
721
+ - 68a1b2c3d4e5f6a7b8c9d0e1
722
+ - 68a1b2c3d4e5f6a7b8c9d0e2
723
+ capabilities:
724
+ - pset:6a7b8c9d0e1f2a3b4c5d6e7f
725
+ all_tools:
726
+ summary: Grant every tool on the server
727
+ value:
728
+ _groupIds:
729
+ - 68a1b2c3d4e5f6a7b8c9d0e1
730
+ capabilities:
731
+ - tool:all
732
+ responses:
733
+ '200':
734
+ description: All groups processed. `groups` is sorted by group name.
735
+ content:
736
+ application/json:
737
+ schema:
738
+ $ref: '#/components/schemas/BulkAssignGroupsResult'
739
+ examples:
740
+ default:
741
+ value:
742
+ updated: 2
743
+ _mcpServerId: 69eb9fb5b4fc023618e490b8
744
+ serverName: Customer Integration MCP
745
+ groups:
746
+ - _id: 68a1b2c3d4e5f6a7b8c9d0e1
747
+ name: Finance
748
+ _roleIds:
749
+ - 68c1d2e3f4a5b6c7d8e9f0a1
750
+ capabilities:
751
+ - pset:6a7b8c9d0e1f2a3b4c5d6e7f
752
+ - _id: 68a1b2c3d4e5f6a7b8c9d0e2
753
+ name: Operations
754
+ _roleIds: []
755
+ capabilities:
756
+ - pset:6a7b8c9d0e1f2a3b4c5d6e7f
757
+ '400':
758
+ description: |-
759
+ Validation failed. Pre-flight failures (invalid MCP server id,
760
+ invalid request body, more than 100 or duplicate `_groupIds`, unknown
761
+ group ids, capabilities that do not resolve on this server) return a
762
+ bare `errors` array; a mid-batch failure returns the result body with
763
+ partial progress plus `errors`.
764
+ content:
765
+ application/json:
766
+ schema:
767
+ $ref: '#/components/schemas/Error'
768
+ examples:
769
+ too_many:
770
+ value:
771
+ errors:
772
+ - code: validation_failed
773
+ message: Validation failed. _groupIds cannot exceed 100 entries per request.
774
+ '401':
775
+ $ref: '#/components/responses/401-unauthorized'
776
+ '403':
777
+ $ref: '#/components/responses/403-forbidden'
778
+ '404':
779
+ description: MCP server not found in this account.
780
+ content:
781
+ application/json:
782
+ schema:
783
+ $ref: '#/components/schemas/Error'
784
+ examples:
785
+ server_not_found:
786
+ value:
787
+ errors:
788
+ - code: not_found
789
+ message: MCP server not found in this account.
790
+ components:
791
+ securitySchemes:
792
+ bearerAuth:
793
+ type: http
794
+ scheme: bearer
795
+ parameters:
796
+ Include:
797
+ name: include
798
+ in: query
799
+ required: false
800
+ description: |-
801
+ Comma-separated list of fields to project into each returned record.
802
+ Triggers summary projection: the response contains a minimal identity
803
+ set (`_id`, `name`, plus resource-specific fields) with the requested
804
+ fields added on top. Supports dot notation for nested fields.
805
+ Mutually exclusive with `exclude`.
806
+ schema:
807
+ type: string
808
+ example: _integrationId,disabled,lastModified
809
+ Exclude:
810
+ name: exclude
811
+ in: query
812
+ required: false
813
+ description: |-
814
+ Comma-separated list of fields to strip from the default response.
815
+ Unlike `include`, does not trigger summary projection — returns the
816
+ full record with the named fields removed. Protected identity fields
817
+ (e.g. `name`) cannot be stripped. Mutually exclusive with `include`.
818
+ schema:
819
+ type: string
820
+ example: createdAt,lastModified
821
+ schemas:
822
+ Annotations:
823
+ type: object
824
+ description: |
825
+ MCP-standard annotations that hint at the behavior of a tool.
826
+
827
+ These annotations follow the Model Context Protocol specification and help
828
+ AI agents and MCP clients understand how a tool behaves without executing it.
829
+ All fields are optional hints — they are not enforced by the server.
830
+ properties:
831
+ title:
832
+ type: string
833
+ maxLength: 300
834
+ description: |
835
+ Human-readable title for the tool, displayed in MCP client UIs.
836
+
837
+ If not provided, the tool's `name` field is used instead.
838
+ examples:
839
+ - Create Customer Record
840
+ - Fetch Order Status
841
+ destructiveHint:
842
+ type: boolean
843
+ description: |
844
+ Hints that the tool may perform destructive operations such as
845
+ deleting or permanently modifying data.
846
+ examples:
847
+ - true
848
+ - false
849
+ idempotentHint:
850
+ type: boolean
851
+ description: |
852
+ Hints that calling the tool multiple times with the same input
853
+ produces the same result without additional side effects.
854
+ examples:
855
+ - true
856
+ - false
857
+ openWorldHint:
858
+ type: boolean
859
+ description: |
860
+ Hints that the tool interacts with an open-world environment
861
+ (e.g., external APIs) where results may vary between calls.
862
+ examples:
863
+ - true
864
+ - false
865
+ readOnlyHint:
866
+ type: boolean
867
+ description: |
868
+ Hints that the tool only reads data and does not modify any state.
869
+ examples:
870
+ - true
871
+ - false
872
+ Overrides:
873
+ type: object
874
+ description: |
875
+ Per-server overrides for a tool's internal resources.
876
+
877
+ When a tool is added to an MCP server, its connections, exports, imports,
878
+ and routers can be customized for this specific server context without
879
+ modifying the underlying tool definition. This enables reusing the same
880
+ tool across multiple MCP servers with different configurations.
881
+ properties:
882
+ connections:
883
+ type: array
884
+ description: |
885
+ Connection overrides. Each entry maps an abstract connection reference
886
+ in the tool to a concrete connection resource for this server.
887
+ items:
888
+ type: object
889
+ properties:
890
+ _abstractId:
891
+ type: string
892
+ description: |
893
+ The abstract connection identifier from the tool definition.
894
+ This is the connection reference that will be replaced.
895
+ examples:
896
+ - 60a2c4e6f321d800129a1a3c
897
+ _id:
898
+ type: string
899
+ x-celigo-refModel: connections
900
+ format: objectId
901
+ description: |
902
+ The concrete connection resource to use in place of the abstract reference.
903
+ examples:
904
+ - 5f8d43a1b9e5a80011a35f2c
905
+ _borrowConcurrencyFromConnectionId:
906
+ type: string
907
+ x-celigo-refModel: connections
908
+ description: |
909
+ Optional connection from which to borrow concurrency limits.
910
+ examples:
911
+ - 5f8d43a1b9e5a80011a35f2c
912
+ required:
913
+ - _abstractId
914
+ exports:
915
+ type: array
916
+ description: |
917
+ Export (lookup) overrides. Customize export resources used within the tool,
918
+ including connection bindings, scheduling, response mappings, and
919
+ adaptor-specific settings.
920
+ items:
921
+ type: object
922
+ properties:
923
+ _abstractId:
924
+ type: string
925
+ description: Abstract export identifier from the tool definition
926
+ examples:
927
+ - 60a2c4e6f321d800129a1a3c
928
+ _id:
929
+ type: string
930
+ x-celigo-refModel: exports
931
+ format: objectId
932
+ description: Concrete export resource to use
933
+ examples:
934
+ - 5f8d43a1b9e5a80011a35f2c
935
+ _connectionId:
936
+ type: string
937
+ x-celigo-refModel: connections
938
+ format: objectId
939
+ description: Override the connection used by this export
940
+ examples:
941
+ - 5f8d43a1b9e5a80011a35f2c
942
+ type:
943
+ type: string
944
+ enum:
945
+ - webhook
946
+ - distributed
947
+ - test
948
+ - delta
949
+ - once
950
+ - tranlinedelta
951
+ - simple
952
+ - blob
953
+ - all
954
+ x-enumDescriptions:
955
+ webhook: Event-driven export triggered by incoming webhook calls.
956
+ distributed: Export distributed across multiple NetSuite worker nodes.
957
+ test: Export used for testing and validation only.
958
+ delta: Incremental export that fetches only records changed since the last run.
959
+ once: One-time export that runs a single time and does not repeat.
960
+ tranlinedelta: Transaction line-level delta export for NetSuite transaction lines.
961
+ simple: Basic export that fetches all matching records on each run.
962
+ blob: Binary large object export for file-based data.
963
+ all: Export that retrieves all records without filtering.
964
+ description: Override the export type
965
+ pageSize:
966
+ type: number
967
+ description: Override the page size for pagination
968
+ examples:
969
+ - 100
970
+ skipRetries:
971
+ type: boolean
972
+ description: When true, skips retries on failure.
973
+ x-celigo-ai-guidance:
974
+ - Whether to skip retries on failure
975
+ proceedOnFailure:
976
+ type: boolean
977
+ description: When true, continues processing subsequent records after a failure.
978
+ x-celigo-ai-guidance:
979
+ - Whether to continue processing on failure
980
+ responseMapping:
981
+ type: object
982
+ description: Override the response field mappings
983
+ properties:
984
+ fields:
985
+ type: array
986
+ description: Field-level mappings that copy individual values from the response back onto the record.
987
+ items:
988
+ type: object
989
+ properties:
990
+ extract:
991
+ type: string
992
+ description: Path in the response to extract the value from. Uses dot notation to navigate nested objects.
993
+ examples:
994
+ - data.id
995
+ generate:
996
+ type: string
997
+ description: Target field path on the record where the extracted value is stored.
998
+ examples:
999
+ - customerId
1000
+ lists:
1001
+ type: array
1002
+ description: Array-level mappings for one-to-many data in the response.
1003
+ items:
1004
+ type: object
1005
+ properties:
1006
+ generate:
1007
+ type: string
1008
+ description: Target array field on the record where the mapped list items are stored.
1009
+ examples:
1010
+ - lineItems
1011
+ fields:
1012
+ type: array
1013
+ description: Field mappings applied to each item in the response array.
1014
+ items:
1015
+ type: object
1016
+ properties:
1017
+ extract:
1018
+ type: string
1019
+ description: Path within each response list item to extract the value from.
1020
+ examples:
1021
+ - sku
1022
+ generate:
1023
+ type: string
1024
+ description: Target field path within each mapped list item.
1025
+ examples:
1026
+ - itemCode
1027
+ required:
1028
+ - _abstractId
1029
+ imports:
1030
+ type: array
1031
+ description: |
1032
+ Import overrides. Customize import resources used within the tool,
1033
+ including connection bindings, hooks, response mappings, and
1034
+ adaptor-specific settings.
1035
+ items:
1036
+ type: object
1037
+ properties:
1038
+ _abstractId:
1039
+ type: string
1040
+ description: Abstract import identifier from the tool definition
1041
+ examples:
1042
+ - 60a2c4e6f321d800129a1a3c
1043
+ _connectionId:
1044
+ type: string
1045
+ x-celigo-refModel: connections
1046
+ format: objectId
1047
+ description: Override the connection used by this import
1048
+ examples:
1049
+ - 5f8d43a1b9e5a80011a35f2c
1050
+ proceedOnFailure:
1051
+ type: boolean
1052
+ description: When true, continues processing subsequent records after a failure.
1053
+ x-celigo-ai-guidance:
1054
+ - Whether to continue processing on failure
1055
+ responseMapping:
1056
+ type: object
1057
+ description: Override the response field mappings
1058
+ properties:
1059
+ fields:
1060
+ type: array
1061
+ description: Field-level mappings that copy individual values from the response back onto the record.
1062
+ items:
1063
+ type: object
1064
+ properties:
1065
+ extract:
1066
+ type: string
1067
+ description: Path in the response to extract the value from. Uses dot notation to navigate nested objects.
1068
+ examples:
1069
+ - data.id
1070
+ generate:
1071
+ type: string
1072
+ description: Target field path on the record where the extracted value is stored.
1073
+ examples:
1074
+ - customerId
1075
+ lists:
1076
+ type: array
1077
+ description: Array-level mappings for one-to-many data in the response.
1078
+ items:
1079
+ type: object
1080
+ properties:
1081
+ generate:
1082
+ type: string
1083
+ description: Target array field on the record where the mapped list items are stored.
1084
+ examples:
1085
+ - lineItems
1086
+ fields:
1087
+ type: array
1088
+ description: Field mappings applied to each item in the response array.
1089
+ items:
1090
+ type: object
1091
+ properties:
1092
+ extract:
1093
+ type: string
1094
+ description: Path within each response list item to extract the value from.
1095
+ examples:
1096
+ - sku
1097
+ generate:
1098
+ type: string
1099
+ description: Target field path within each mapped list item.
1100
+ examples:
1101
+ - itemCode
1102
+ hooks:
1103
+ type: object
1104
+ description: Override script hooks
1105
+ properties:
1106
+ preMap:
1107
+ type: object
1108
+ description: Hook that runs on each page of records before the import's mappings are applied.
1109
+ properties:
1110
+ function:
1111
+ type: string
1112
+ description: Function to invoke within the referenced script.
1113
+ examples:
1114
+ - preMap
1115
+ _scriptId:
1116
+ type: string
1117
+ x-celigo-refModel: scripts
1118
+ format: objectId
1119
+ description: Script containing the hook function named in `function`.
1120
+ examples:
1121
+ - 66a1f2c3b4d5e6f7a8b9c0d1
1122
+ postMap:
1123
+ type: object
1124
+ description: |-
1125
+ Hook that runs after the import's mappings are applied but before records
1126
+ are sent to the destination system.
1127
+ properties:
1128
+ function:
1129
+ type: string
1130
+ description: Function to invoke within the referenced script.
1131
+ examples:
1132
+ - postMap
1133
+ _scriptId:
1134
+ type: string
1135
+ x-celigo-refModel: scripts
1136
+ format: objectId
1137
+ description: Script containing the hook function named in `function`.
1138
+ examples:
1139
+ - 66a1f2c3b4d5e6f7a8b9c0d2
1140
+ required:
1141
+ - _abstractId
1142
+ routers:
1143
+ type: array
1144
+ description: |
1145
+ Router overrides. Customize routing behavior for specific branches
1146
+ within the tool, including branch filters and routing strategies.
1147
+ items:
1148
+ type: object
1149
+ properties:
1150
+ _abstractId:
1151
+ type: string
1152
+ description: Abstract router identifier from the tool definition
1153
+ examples:
1154
+ - router_001
1155
+ name:
1156
+ type: string
1157
+ description: Override the router name
1158
+ examples:
1159
+ - route_by_region
1160
+ routeRecordsTo:
1161
+ type: string
1162
+ enum:
1163
+ - first_matching_branch
1164
+ - all_matching_branches
1165
+ x-enumDescriptions:
1166
+ first_matching_branch: Routes each record to only the first branch whose criteria match.
1167
+ all_matching_branches: Routes each record to every branch whose criteria match, creating copies.
1168
+ description: Override the routing strategy
1169
+ routeRecordsUsing:
1170
+ type: string
1171
+ enum:
1172
+ - input_filters
1173
+ - script
1174
+ x-enumDescriptions:
1175
+ input_filters: Evaluate routing criteria using declarative filter expressions.
1176
+ script: Evaluate routing criteria using a custom JavaScript function.
1177
+ description: Override the routing evaluation method
1178
+ script:
1179
+ type: object
1180
+ description: Override the router script
1181
+ properties:
1182
+ _scriptId:
1183
+ type: string
1184
+ x-celigo-refModel: scripts
1185
+ format: objectId
1186
+ description: Script containing the routing function named in `function`.
1187
+ examples:
1188
+ - 66a1f2c3b4d5e6f7a8b9c0d3
1189
+ function:
1190
+ type: string
1191
+ description: Function within the referenced script that returns the name of the branch to route to.
1192
+ examples:
1193
+ - routeRecord
1194
+ branches:
1195
+ type: array
1196
+ description: Override specific branch configurations
1197
+ items:
1198
+ type: object
1199
+ properties:
1200
+ _abstractId:
1201
+ type: string
1202
+ description: Abstract branch identifier
1203
+ name:
1204
+ type: string
1205
+ description: Override the branch name
1206
+ examples:
1207
+ - North America
1208
+ description:
1209
+ type: string
1210
+ description: Override the branch description
1211
+ examples:
1212
+ - Records routed to the North America region
1213
+ inputFilter:
1214
+ type: object
1215
+ description: Override the branch filter criteria
1216
+ properties:
1217
+ version:
1218
+ type: string
1219
+ enum:
1220
+ - '1'
1221
+ x-enumDescriptions:
1222
+ '1': Version 1 of the Celigo expression-based filter format.
1223
+ description: Filter format version.
1224
+ rules:
1225
+ type: array
1226
+ description: |-
1227
+ Filter rules in Celigo expression-based filter format. Array-based DSL where
1228
+ the first element is an operator (e.g. "equals", "and", "or"), followed by
1229
+ operands which can be nested expressions.
1230
+ items: {}
1231
+ required:
1232
+ - _abstractId
1233
+ IOTool:
1234
+ type: object
1235
+ description: |-
1236
+ A tool entry that maps a Celigo Tool resource to an MCP tool endpoint.
1237
+ The referenced tool's input schema must have `type: "object"`.
1238
+ x-celigo-ai-guidance:
1239
+ - |-
1240
+ A tool entry within an MCP server references a Tool resource;
1241
+ tool names across all tools and APIs within the same MCP server must be unique
1242
+ and follow the MCP naming convention (alphanumeric,
1243
+ underscores, hyphens, dots only).
1244
+ properties:
1245
+ _toolId:
1246
+ type: string
1247
+ x-celigo-refModel: tools
1248
+ format: objectId
1249
+ description: |-
1250
+ Tool resource ID. The referenced tool must exist and have an
1251
+ input schema with `type: "object"`.
1252
+ x-celigo-ai-guidance:
1253
+ - Reference to the Tool resource that this MCP tool exposes.
1254
+ examples:
1255
+ - 69d462d5b9c28ea0b7f82522
1256
+ name:
1257
+ type: string
1258
+ maxLength: 128
1259
+ pattern: ^[A-Za-z0-9_\-.]+$
1260
+ description: |-
1261
+ MCP tool name exposed to clients. Must be unique across all tools
1262
+ and APIs within this server.
1263
+ x-celigo-ai-guidance:
1264
+ - |-
1265
+ Must be unique across all tools and APIs within this MCP server.
1266
+ Only alphanumeric characters, underscores, hyphens, and dots are allowed.
1267
+ Maximum length: 128 characters (enforced by validation).
1268
+ examples:
1269
+ - get_customer
1270
+ - create_order
1271
+ - validate.input
1272
+ disabled:
1273
+ type: boolean
1274
+ default: true
1275
+ description: When true, this tool is disabled and will not be exposed to MCP clients.
1276
+ x-celigo-ai-guidance:
1277
+ - |-
1278
+ Indicates whether this tool is disabled within the MCP server;
1279
+ disabled tools are not exposed to MCP clients.
1280
+ At least one tool, API, resource, or prompt must be enabled for the
1281
+ server itself to be enabled.
1282
+ examples:
1283
+ - false
1284
+ - true
1285
+ annotations:
1286
+ $ref: '#/components/schemas/Annotations'
1287
+ overrides:
1288
+ $ref: '#/components/schemas/Overrides'
1289
+ required:
1290
+ - _toolId
1291
+ - name
1292
+ ApiTool:
1293
+ type: object
1294
+ description: |-
1295
+ An API entry that maps a Celigo builder-mode API resource to an MCP
1296
+ tool endpoint. Script-type APIs are not supported.
1297
+ x-celigo-ai-guidance:
1298
+ - |-
1299
+ Each API tool maps a Celigo API to an MCP-compatible tool endpoint;
1300
+ only builder-type APIs (not script-type) can be used in MCP servers.
1301
+ - |-
1302
+ Tool names across all tools and APIs within the same MCP server must be unique
1303
+ and follow the MCP naming convention:
1304
+ alphanumeric characters, underscores, hyphens, and dots only.
1305
+ properties:
1306
+ name:
1307
+ type: string
1308
+ maxLength: 128
1309
+ pattern: ^[A-Za-z0-9_\-.]+$
1310
+ description: |-
1311
+ MCP tool name exposed to clients. Must be unique across all tools
1312
+ and APIs within this server.
1313
+ x-celigo-ai-guidance:
1314
+ - |-
1315
+ Must be unique across all tools and APIs within this MCP server.
1316
+ Only alphanumeric characters, underscores, hyphens, and dots are allowed.
1317
+ Maximum length: 128 characters (enforced by validation).
1318
+ examples:
1319
+ - customer_api
1320
+ - order.lookup
1321
+ _apiId:
1322
+ type: string
1323
+ x-celigo-refModel: apis
1324
+ format: objectId
1325
+ description: API resource ID. Must reference a builder-type API (not script-type).
1326
+ x-celigo-ai-guidance:
1327
+ - |-
1328
+ The referenced API resource exposed by this MCP tool must exist,
1329
+ belong to the same user, and be of type "builder";
1330
+ script-type APIs are not supported.
1331
+ examples:
1332
+ - 68ae4264b5f755d2dd3796b4
1333
+ disabled:
1334
+ type: boolean
1335
+ default: true
1336
+ description: When true, this API tool is disabled and will not be exposed to MCP clients.
1337
+ x-celigo-ai-guidance:
1338
+ - Whether this API tool is disabled within the MCP server.
1339
+ examples:
1340
+ - false
1341
+ - true
1342
+ required:
1343
+ - name
1344
+ - _apiId
1345
+ McpResource:
1346
+ type: object
1347
+ description: |-
1348
+ A resource entry that exposes a Celigo Storage file to MCP clients.
1349
+ Clients discover resources via `resources/list` and fetch file content
1350
+ via `resources/read`. Resources are not supported on sandbox servers —
1351
+ setting `resources` together with `sandbox: true` returns 422
1352
+ `mcp_server_resources_not_allowed_in_sandbox`.
1353
+ x-celigo-ai-guidance:
1354
+ - |-
1355
+ Each resource entry references a file in Celigo Storage (a StorageItem);
1356
+ the file must exist, be an active file (not a folder), and belong to the
1357
+ same account — otherwise the create or update fails with 422
1358
+ "mcp_server_file_not_found" on the offending "resources.N._fileId".
1359
+ - |-
1360
+ Do not set resources on a sandbox MCP server; the API rejects the
1361
+ request with 422 "mcp_server_resources_not_allowed_in_sandbox".
1362
+ properties:
1363
+ title:
1364
+ type: string
1365
+ maxLength: 250
1366
+ description: |-
1367
+ Human-readable display title shown to MCP clients alongside the
1368
+ file. Free text, unlike tool and API names (which are
1369
+ regex-constrained MCP identifiers).
1370
+ examples:
1371
+ - Return Policy
1372
+ - Product Catalog 2026
1373
+ _fileId:
1374
+ type: string
1375
+ format: objectId
1376
+ x-celigo-refModel: storageitems
1377
+ description: |-
1378
+ Celigo Storage file exposed by this resource. Must reference an
1379
+ active file (not a folder) owned by the account — invalid references
1380
+ return 422 `mcp_server_file_not_found`. Each file can be referenced
1381
+ only once per server; duplicates return 422
1382
+ `mcp_server_duplicate_file_not_allowed`. Manage files via
1383
+ `GET /v1/storage/items`.
1384
+ x-celigo-ai-guidance:
1385
+ - |-
1386
+ Reference an existing Celigo Storage file id (see GET /v1/storage/items);
1387
+ folder ids and unknown ids fail with 422 "mcp_server_file_not_found",
1388
+ and the same file id may appear only once across resources[].
1389
+ examples:
1390
+ - 6a55886da387d16e4e475aa2
1391
+ disabled:
1392
+ type: boolean
1393
+ default: true
1394
+ description: |-
1395
+ When true, the resource is hidden from MCP clients and its file is
1396
+ not served. Resources are disabled by default; set to false to
1397
+ expose the file.
1398
+ examples:
1399
+ - false
1400
+ - true
1401
+ required:
1402
+ - _fileId
1403
+ PromptArgument:
1404
+ type: object
1405
+ description: |
1406
+ A single declared argument for a prompt. Argument names appear as
1407
+ `{{name}}` placeholders inside `messagesTemplate[*].template` and are
1408
+ substituted with client-supplied values at invocation time.
1409
+ properties:
1410
+ name:
1411
+ type: string
1412
+ maxLength: 256
1413
+ pattern: ^\w+$
1414
+ description: |
1415
+ Argument name. Must match `^\\w+$` (letters, digits, and underscores
1416
+ only) so it can be referenced as a Handlebars `{{placeholder}}` in the
1417
+ message template. Hyphens, dots, and other characters are not allowed
1418
+ here (even though prompt `name` permits them) — they would break the
1419
+ template parser.
1420
+ examples:
1421
+ - meeting_date
1422
+ - transcript
1423
+ - ticket_id
1424
+ description:
1425
+ type: string
1426
+ maxLength: 1000
1427
+ description: |
1428
+ Optional human-readable description of the argument. Shown to MCP
1429
+ clients during discovery; useful for guiding LLMs that supply values.
1430
+ examples:
1431
+ - The date the meeting occurred (YYYY-MM-DD).
1432
+ required:
1433
+ type: boolean
1434
+ default: true
1435
+ description: |
1436
+ Whether the client must supply this argument. Defaults to `true`.
1437
+ When `false`, the client may omit the argument and the
1438
+ `{{placeholder}}` is left empty after substitution.
1439
+ examples:
1440
+ - true
1441
+ - false
1442
+ required:
1443
+ - name
1444
+ PromptMessage:
1445
+ type: object
1446
+ description: |
1447
+ A single message entry inside a prompt's `messagesTemplate[]`. Renders to
1448
+ a `{role, content: {type, text|data, mimeType?}}` object in the
1449
+ `prompts/get` response after Handlebars substitution.
1450
+ properties:
1451
+ role:
1452
+ type: string
1453
+ enum:
1454
+ - user
1455
+ - assistant
1456
+ x-enumDescriptions:
1457
+ user: Message from the user or human participant.
1458
+ assistant: Message from the AI assistant.
1459
+ description: |
1460
+ Message role exposed to MCP clients.
1461
+
1462
+ Only `user` and `assistant` are supported. `system` role messages are
1463
+ not allowed at this layer — express system-level intent inside the
1464
+ first user or assistant template.
1465
+ examples:
1466
+ - user
1467
+ - assistant
1468
+ contentType:
1469
+ type: string
1470
+ enum:
1471
+ - text
1472
+ - image
1473
+ - audio
1474
+ - resource
1475
+ x-enumDescriptions:
1476
+ text: Plain text content.
1477
+ image: Binary image content (requires mimeType).
1478
+ audio: Binary audio content (requires mimeType).
1479
+ resource: Reference to an external resource.
1480
+ default: text
1481
+ description: |
1482
+ Type of content this message carries.
1483
+
1484
+ - `text` — `template` holds the Handlebars-templated text body.
1485
+ - `image` / `audio` — `data` (base64) and `mimeType` are required
1486
+ (omitting `mimeType` returns 422 `mcp_server_prompt_mimetype_required`);
1487
+ `template` is not used.
1488
+ - `resource` — reserved for future use; the authoring UI does not
1489
+ currently expose this option.
1490
+ examples:
1491
+ - text
1492
+ - image
1493
+ template:
1494
+ type: string
1495
+ maxLength: 4096
1496
+ description: |
1497
+ Handlebars-templated text body. Use `{{argumentName}}` to reference
1498
+ declared arguments — they are substituted server-side before the
1499
+ message is returned to the client.
1500
+
1501
+ Up to 4 KB inline. Templates larger than 4 KB are automatically
1502
+ offloaded to S3 (up to a 1 MB hard limit) and rehydrated on read.
1503
+
1504
+ Only relevant when `contentType` is `text` (the default).
1505
+ examples:
1506
+ - |-
1507
+ Summarize the {{meeting_title}} meeting held on {{meeting_date}}:
1508
+
1509
+ {{transcript}}
1510
+ data:
1511
+ type: string
1512
+ description: |
1513
+ Base64-encoded binary content for image / audio messages. Only allowed
1514
+ when `contentType` is `image` or `audio`.
1515
+
1516
+ Up to 10 MB via S3 offload.
1517
+ mimeType:
1518
+ type: string
1519
+ maxLength: 100
1520
+ description: |
1521
+ MIME type for the binary `data`. Required when `contentType` is `image`
1522
+ or `audio` (e.g. `image/png`, `audio/wav`).
1523
+ examples:
1524
+ - image/png
1525
+ - image/jpeg
1526
+ - audio/wav
1527
+ required:
1528
+ - role
1529
+ Prompt:
1530
+ type: object
1531
+ description: |
1532
+ A prompt template entry on an MCP server.
1533
+
1534
+ Prompts are inline, reusable templates that MCP-compatible clients (Claude,
1535
+ Cursor, Celigo AI Agents, etc.) discover via `prompts/list` and fetch via
1536
+ `prompts/get`. Each `{{placeholder}}` inside a message template becomes a
1537
+ declared argument that the client supplies at invocation time; the
1538
+ backend performs Handlebars substitution before returning the rendered
1539
+ messages.
1540
+
1541
+ Unlike `tools[]` and `apis[]` — which reference other Celigo resources by
1542
+ ID — a prompt is stored inline on the MCP server document. There is no
1543
+ separate "Prompt" resource type.
1544
+
1545
+ `prompts/get` returns rendered messages of shape
1546
+ `[{role, content: {type, text | data, mimeType?}}]` — `text` for `text`
1547
+ content, or `data` (base64) + `mimeType` for `image`/`audio`. This schema
1548
+ captures the stored template; the rendered output is not part of the
1549
+ persisted document.
1550
+ properties:
1551
+ _id:
1552
+ type: string
1553
+ format: objectId
1554
+ readOnly: true
1555
+ description: |
1556
+ Server-generated identifier for the prompt — the grant handle
1557
+ referenced as `tool:<_id>` in end-user, group, and role resource
1558
+ grants. Identity is preserved across updates by matching on `name`,
1559
+ so renaming a prompt assigns a new `_id` and breaks grants that
1560
+ reference the old one.
1561
+ examples:
1562
+ - 6b2c3d4e5f6a7b8c9d0e1f2a
1563
+ name:
1564
+ type: string
1565
+ maxLength: 128
1566
+ pattern: ^[A-Za-z0-9_\-.]+$
1567
+ description: |
1568
+ MCP prompt name exposed to clients via `prompts/list`.
1569
+
1570
+ Must be unique within `prompts[]` on this server. Only alphanumeric
1571
+ characters, underscores, hyphens, and dots are allowed. Prompts have
1572
+ their own namespace — a prompt named `summarize_meeting` does not
1573
+ collide with a tool or API of the same name.
1574
+
1575
+ Maximum length: 128 characters. Duplicate names return 422
1576
+ `mcp_server_duplicate_prompt_name`.
1577
+ examples:
1578
+ - summarize_meeting
1579
+ - draft_email
1580
+ - review.checklist
1581
+ title:
1582
+ type: string
1583
+ maxLength: 1000
1584
+ description: |
1585
+ Human-readable display title shown alongside `name` in MCP clients.
1586
+
1587
+ Unlike `name` (the MCP identifier, regex-constrained), `title` is
1588
+ free text. Optional — clients fall back to `name` when omitted.
1589
+ examples:
1590
+ - Summarize Meeting
1591
+ - Draft Professional Email
1592
+ description:
1593
+ type: string
1594
+ maxLength: 1000
1595
+ description: |
1596
+ Optional description of what the prompt does. Shown to MCP clients
1597
+ during discovery so users and LLMs can choose the right prompt.
1598
+ examples:
1599
+ - Summarize a meeting transcript into key decisions and action items.
1600
+ arguments:
1601
+ type: array
1602
+ description: |
1603
+ Declared arguments for the prompt. Every `{{placeholder}}` referenced
1604
+ in `messagesTemplate[*].template` should appear here so MCP clients
1605
+ know what to supply when invoking the prompt.
1606
+ items:
1607
+ $ref: '#/components/schemas/PromptArgument'
1608
+ messagesTemplate:
1609
+ type: array
1610
+ description: |
1611
+ Ordered list of message templates forming the prompt body. At least
1612
+ one entry is required. Each entry renders to a single message after
1613
+ Handlebars substitution.
1614
+ minItems: 1
1615
+ items:
1616
+ $ref: '#/components/schemas/PromptMessage'
1617
+ mockInput:
1618
+ type: object
1619
+ description: |
1620
+ Sample argument values used to preview / test-run the prompt in the
1621
+ authoring UI — a plain object mapping argument names to sample values
1622
+ (e.g. `{"username": "John Doe"}`). Keys usually mirror `arguments[].name`
1623
+ but this is not enforced. Has no effect on `prompts/get` rendering for
1624
+ MCP clients.
1625
+ examples:
1626
+ - username: John Doe
1627
+ disabled:
1628
+ type: boolean
1629
+ default: true
1630
+ description: |-
1631
+ When true, the prompt is hidden from MCP clients — omitted from
1632
+ `prompts/list` and not fetchable via `prompts/get`. New prompts
1633
+ default to disabled; set to false to expose the prompt. An enabled
1634
+ prompt also satisfies the server-level enablement rule on its own.
1635
+ Prompts saved before this field existed are reported as
1636
+ `disabled: false`.
1637
+ examples:
1638
+ - false
1639
+ - true
1640
+ required:
1641
+ - name
1642
+ - messagesTemplate
1643
+ PermissionSet:
1644
+ type: object
1645
+ description: |-
1646
+ A named bundle of this server's tools and APIs — shown as a "Capability
1647
+ Set" in the integrator.io UI — granted to end users as one unit through
1648
+ the `pset:<_id>` capability string on end-user, group, and role resource
1649
+ grants. There is no standalone permission-set resource: sets live only
1650
+ inside the MCP server document, and each set's `_id` is the stable handle
1651
+ that grants reference.
1652
+
1653
+ Deleting a set — or resubmitting it without its `_id` — rewrites every
1654
+ grant that references it: the `pset:` capability is replaced with the
1655
+ set's constituent `tool:`/`api:` capabilities at removal time.
1656
+ x-celigo-ai-guidance:
1657
+ - |-
1658
+ When updating a server via PUT, send the complete `permissionSets` array
1659
+ and round-trip every existing set with its `_id` intact — an omitted set
1660
+ is removed and the grants that referenced it are flattened to its
1661
+ individual tool/API capabilities.
1662
+ properties:
1663
+ _id:
1664
+ type: string
1665
+ format: objectId
1666
+ description: |-
1667
+ Server-generated identifier for the set — the grant handle referenced
1668
+ as `pset:<_id>` in resource grants. Send it back unchanged on PUT to
1669
+ preserve the set's identity; a set submitted without its `_id` is
1670
+ treated as a brand-new set and assigned a fresh one.
1671
+ examples:
1672
+ - 6a7b8c9d0e1f2a3b4c5d6e7f
1673
+ name:
1674
+ type: string
1675
+ maxLength: 300
1676
+ description: |-
1677
+ Display name for the set. Must be unique per server,
1678
+ case-insensitively — duplicates are rejected with 422.
1679
+ examples:
1680
+ - Finance read-only
1681
+ - Order management
1682
+ description:
1683
+ type: string
1684
+ maxLength: 1000
1685
+ description: Description of what the set grants and who it is for.
1686
+ examples:
1687
+ - Read-only invoice lookups for the finance team
1688
+ accessLevel:
1689
+ type: string
1690
+ enum:
1691
+ - read
1692
+ - write
1693
+ x-enumDescriptions:
1694
+ read: Read-level access, aligned with the `mcp:read` OAuth scope
1695
+ write: Write-level access, aligned with the `mcp:write` OAuth scope
1696
+ description: OAuth-aligned access level the set pins for everyone it is granted to.
1697
+ examples:
1698
+ - read
1699
+ _toolIds:
1700
+ type: array
1701
+ description: |-
1702
+ Tool resources included in the set. Every entry must reference a tool
1703
+ already attached to this server through `tools[]._toolId` —
1704
+ referencing one that is not attached is rejected with 422.
1705
+ items:
1706
+ type: string
1707
+ format: objectId
1708
+ x-celigo-refModel: tools
1709
+ examples:
1710
+ - - 69d462d5b9c28ea0b7f82522
1711
+ _apiIds:
1712
+ type: array
1713
+ description: |-
1714
+ Builder-mode API resources included in the set. Every entry must
1715
+ reference an API already attached to this server through
1716
+ `apis[]._apiId` — referencing one that is not attached is rejected
1717
+ with 422.
1718
+ items:
1719
+ type: string
1720
+ format: objectId
1721
+ x-celigo-refModel: apis
1722
+ examples:
1723
+ - - 68ae4264b5f755d2dd3796b4
1724
+ required:
1725
+ - name
1726
+ - accessLevel
1727
+ OAuthConfig:
1728
+ type: object
1729
+ description: |-
1730
+ OAuth 2.0 configuration for the MCP server. Three modes are supported:
1731
+
1732
+ **Celigo-managed OAuth** — set `useCeligoOauth: true`. No issuer or
1733
+ audience configuration needed; Celigo handles token validation.
1734
+
1735
+ **OAuth provider reference** — set `_mcpOAuthProviderId` to the ID of
1736
+ a shared MCP OAuth provider resource (see `/v1/mcpoauthproviders`).
1737
+ The provider holds the issuer, audience, and introspection settings.
1738
+
1739
+ **Inline custom OAuth** — set `issuerURL` and `audience` directly.
1740
+ Tokens are validated against the issuer's JWKS. Optionally enable
1741
+ `useIntrospection` for opaque tokens via RFC 7662.
1742
+
1743
+ Omit `oauth` entirely (or send `{}`) to disable OAuth on the server.
1744
+ In responses, `oauth` is absent when no OAuth mode is configured.
1745
+ The three modes are mutually exclusive. When using inline custom
1746
+ OAuth, both `issuerURL` and `audience` are required. When
1747
+ `useIntrospection` is `true`, `clientId` is also required.
1748
+ properties:
1749
+ useCeligoOauth:
1750
+ type: boolean
1751
+ description: |-
1752
+ When `true`, enables Celigo-managed OAuth. No external issuer
1753
+ configuration is needed. Mutually exclusive with
1754
+ `_mcpOAuthProviderId` and inline OAuth fields.
1755
+ _mcpOAuthProviderId:
1756
+ type: string
1757
+ format: objectId
1758
+ x-celigo-refModel: mcpoauthproviders
1759
+ description: |-
1760
+ References a shared MCP OAuth provider resource that holds the
1761
+ issuer, audience, scopes, and introspection settings. Mutually
1762
+ exclusive with `useCeligoOauth` and inline OAuth fields.
1763
+
1764
+ Use `GET /v1/mcpoauthproviders` to list available providers.
1765
+ issuerURL:
1766
+ type: string
1767
+ format: uri
1768
+ description: |-
1769
+ OAuth 2.0 issuer URL for inline custom OAuth.
1770
+
1771
+ Must be a well-formed URL with an explicit scheme — bare hostnames
1772
+ and protocol-less values are rejected with 422 `invalid_uri`.
1773
+ Use `https://` for production issuers.
1774
+ examples:
1775
+ - https://auth.example.com
1776
+ audience:
1777
+ type: string
1778
+ description: |-
1779
+ Expected `aud` claim on incoming access tokens. Required when
1780
+ using inline custom OAuth — omitting it returns
1781
+ `missing_required_field` on `oauth.audience`.
1782
+ examples:
1783
+ - https://mcp.example.com
1784
+ useIntrospection:
1785
+ type: boolean
1786
+ default: false
1787
+ description: |-
1788
+ When `true`, opaque access tokens are validated by calling the
1789
+ issuer's RFC 7662 introspection endpoint using `clientId` /
1790
+ `clientSecret`. When `false`, only JWT access tokens are accepted.
1791
+ scopes:
1792
+ type: array
1793
+ description: |-
1794
+ Required OAuth scopes. Incoming tokens must carry every listed scope.
1795
+
1796
+ Rejected values return `enum` / `invalid_field_value` on
1797
+ `oauth.scopes.<index>`.
1798
+ items:
1799
+ type: string
1800
+ enum:
1801
+ - mcp:read
1802
+ - mcp:write
1803
+ x-enumDescriptions:
1804
+ mcp:read: Grants read-only access to MCP server resources.
1805
+ mcp:write: Grants write access to MCP server resources.
1806
+ examples:
1807
+ - - mcp:read
1808
+ - mcp:write
1809
+ clientId:
1810
+ type:
1811
+ - string
1812
+ - 'null'
1813
+ description: |-
1814
+ OAuth client ID used when introspecting opaque tokens. Required
1815
+ when `useIntrospection` is `true`.
1816
+ clientSecret:
1817
+ type:
1818
+ - string
1819
+ - 'null'
1820
+ description: |-
1821
+ OAuth client secret used with `clientId` for introspection. Masked
1822
+ as `"******"` in response payloads; sending the masked value on
1823
+ PUT is treated as "leave unchanged".
1824
+ dependentRequired:
1825
+ issuerURL:
1826
+ - audience
1827
+ audience:
1828
+ - issuerURL
1829
+ if:
1830
+ properties:
1831
+ useIntrospection:
1832
+ const: true
1833
+ required:
1834
+ - useIntrospection
1835
+ then:
1836
+ required:
1837
+ - clientId
1838
+ MCPServerBase:
1839
+ type: object
1840
+ description: Writable MCP server fields shared by the request and response schemas.
1841
+ properties:
1842
+ name:
1843
+ type: string
1844
+ minLength: 1
1845
+ maxLength: 150
1846
+ description: Display name for the MCP server.
1847
+ x-celigo-ai-guidance:
1848
+ - Displayed in the UI to identify the server's purpose.
1849
+ examples:
1850
+ - Customer Integration MCP
1851
+ - Order Processing Server
1852
+ relativeURI:
1853
+ type: string
1854
+ maxLength: 131072
1855
+ pattern: ^\/[a-zA-Z0-9_\-]+$
1856
+ description: |-
1857
+ URI path segment for the MCP server endpoint. Must be unique per account —
1858
+ duplicates are rejected with 422 `mcp_server_duplicate_relative_uri`. Only letters,
1859
+ numbers, dashes, and underscores after the leading slash (the server's error message
1860
+ also claims colons and dots are allowed, but they are rejected in practice). Creation
1861
+ also requires the account to have an account alias set (422
1862
+ `mcp_server_account_alias_required` otherwise).
1863
+ x-celigo-ai-guidance:
1864
+ - |-
1865
+ Set the field to a unique pathname per account that starts with a forward slash
1866
+ followed by a single path segment containing only alphanumeric characters,
1867
+ underscores, and hyphens.
1868
+ - |-
1869
+ If not provided,
1870
+ a `url` field can be supplied instead and the pathname will be extracted automatically.
1871
+ examples:
1872
+ - /customers
1873
+ - /order-processing
1874
+ - /crm_tools
1875
+ description:
1876
+ type: string
1877
+ maxLength: 1000
1878
+ description: Description of the MCP server's purpose.
1879
+ x-celigo-ai-guidance:
1880
+ - Optional description of the MCP server's purpose and capabilities.
1881
+ examples:
1882
+ - Exposes customer management tools for AI agent consumption
1883
+ disabled:
1884
+ type: boolean
1885
+ default: true
1886
+ description: |-
1887
+ Whether the MCP server is disabled. Defaults to `true` on creation.
1888
+ To serve requests, at least one tool, API, resource, or prompt must
1889
+ also be enabled.
1890
+ x-celigo-ai-guidance:
1891
+ - |-
1892
+ Disabled servers are not accessible to MCP clients.
1893
+ To enable a server, at least one tool or API within it must also be enabled.
1894
+ examples:
1895
+ - false
1896
+ - true
1897
+ tools:
1898
+ type: array
1899
+ description: |-
1900
+ Tool entries referencing Celigo Tool resources. Duplicate `_toolId`
1901
+ values are rejected. Names must be unique across both `tools` and `apis`.
1902
+ x-celigo-ai-guidance:
1903
+ - |-
1904
+ Tool entries reference Celigo Tool resources;
1905
+ each entry exposes a Tool as an MCP tool endpoint.
1906
+ - |-
1907
+ Duplicate `_toolId` references are not allowed,
1908
+ and Tool names must be unique across all tools and APIs in the server.
1909
+ items:
1910
+ $ref: '#/components/schemas/IOTool'
1911
+ apis:
1912
+ type: array
1913
+ description: |-
1914
+ API entries referencing Celigo builder-mode API resources. Only
1915
+ builder-type APIs are supported. Names must be unique across both
1916
+ `tools` and `apis`.
1917
+ x-celigo-ai-guidance:
1918
+ - |-
1919
+ Each entry exposes an API as an MCP tool endpoint.
1920
+ Duplicate `_apiId` references are not allowed.
1921
+ Only builder-type APIs are supported.
1922
+ Tool names must be unique across all tools and APIs in the server.
1923
+ items:
1924
+ $ref: '#/components/schemas/ApiTool'
1925
+ resources:
1926
+ type: array
1927
+ description: |-
1928
+ Files from Celigo Storage exposed to MCP clients as MCP resources.
1929
+ Each entry references a storage file by `_fileId`; the same file can
1930
+ appear only once. Always returned in responses — servers created
1931
+ before resource support return an empty array. Not supported on
1932
+ sandbox servers.
1933
+ x-celigo-ai-guidance:
1934
+ - |-
1935
+ Each resource exposes a Celigo Storage file to MCP clients.
1936
+ The referenced file must exist and belong to the same account,
1937
+ and each _fileId may be used only once per server.
1938
+ Omit the field entirely for sandbox servers — combining
1939
+ resources with sandbox: true fails with 422.
1940
+ items:
1941
+ $ref: '#/components/schemas/McpResource'
1942
+ prompts:
1943
+ type: array
1944
+ description: |-
1945
+ Prompt templates exposed to MCP clients. Each prompt has a unique
1946
+ `name` and may declare `arguments` that clients supply via
1947
+ `prompts/get`.
1948
+ x-celigo-ai-guidance:
1949
+ - |-
1950
+ Unlike `tools` and `apis` (which reference other Celigo resources by ID),
1951
+ each prompt is defined inline on this server.
1952
+ Prompt names have their own namespace — a prompt name may collide with a tool or API name,
1953
+ but must be unique within `prompts[]`.
1954
+ items:
1955
+ $ref: '#/components/schemas/Prompt'
1956
+ permissionSets:
1957
+ type: array
1958
+ description: |-
1959
+ Named bundles of this server's tools and APIs — shown as "Capability
1960
+ Sets" in the UI — granted to end users as a unit via `pset:<_id>`
1961
+ capability strings. Omitting the field on PUT resets it to an empty
1962
+ array, erasing every set and rewriting the grants that reference
1963
+ them — always send the complete array back. Absent from responses for
1964
+ servers not saved since permission sets were introduced (unlike
1965
+ `resources`, the field is not normalized to an empty array).
1966
+ x-celigo-ai-guidance:
1967
+ - |-
1968
+ Not editable via PATCH (the whitelist covers only `/name` and
1969
+ `/disabled`). To change permission sets safely, GET the server,
1970
+ modify `permissionSets`, and PUT the complete document back with
1971
+ every set's `_id` intact.
1972
+ items:
1973
+ $ref: '#/components/schemas/PermissionSet'
1974
+ oauth:
1975
+ $ref: '#/components/schemas/OAuthConfig'
1976
+ ResourceResponse:
1977
+ type: object
1978
+ description: Response
1979
+ x-celigo-ai-guidance:
1980
+ - Core response fields shared by all Celigo resources
1981
+ properties:
1982
+ _id:
1983
+ type: string
1984
+ format: objectId
1985
+ readOnly: true
1986
+ description: Unique identifier for the resource. Format is a 24-character hexadecimal string.
1987
+ x-celigo-ai-guidance:
1988
+ - |-
1989
+ The _id is used in:
1990
+ - API endpoints that operate on a specific resource (e.g., GET, PUT, DELETE)
1991
+ - References from other resources (e.g., flows that use this resource)
1992
+ - Job history and error tracking
1993
+ examples:
1994
+ - 5f8d43a1b9e5a80011a35f2c
1995
+ createdAt:
1996
+ type: string
1997
+ format: date-time
1998
+ readOnly: true
1999
+ description: Timestamp when the resource was created. Set automatically and cannot be modified.
2000
+ x-celigo-ai-guidance:
2001
+ - Recorded in ISO 8601 with a UTC timezone (Z suffix).
2002
+ examples:
2003
+ - '2023-04-01T09:15:32Z'
2004
+ lastModified:
2005
+ type: string
2006
+ format: date-time
2007
+ readOnly: true
2008
+ description: Timestamp when the resource was last updated. Changes whenever any property is modified.
2009
+ x-celigo-ai-guidance:
2010
+ - Recorded in ISO 8601 with a UTC timezone (Z suffix); always equal to or later than `createdAt`.
2011
+ examples:
2012
+ - '2023-04-15T14:30:15Z'
2013
+ deletedAt:
2014
+ type:
2015
+ - string
2016
+ - 'null'
2017
+ format: date-time
2018
+ readOnly: true
2019
+ description: Timestamp when the resource was soft-deleted. When null or absent, the resource is active.
2020
+ x-celigo-ai-guidance:
2021
+ - Non-null means the resource is soft-deleted (in the recycle bin) — recoverable within the retention period before permanent removal.
2022
+ examples:
2023
+ - '2023-05-20T11:45:32Z'
2024
+ required:
2025
+ - _id
2026
+ MCPServer:
2027
+ type: object
2028
+ required:
2029
+ - _id
2030
+ - name
2031
+ - relativeURI
2032
+ - disabled
2033
+ - createdAt
2034
+ - lastModified
2035
+ description: MCP server object as returned by the API.
2036
+ allOf:
2037
+ - $ref: '#/components/schemas/MCPServerBase'
2038
+ - $ref: '#/components/schemas/ResourceResponse'
2039
+ - type: object
2040
+ properties:
2041
+ _userId:
2042
+ type: string
2043
+ format: objectId
2044
+ readOnly: true
2045
+ x-celigo-refModel: users
2046
+ description: Owning user ID.
2047
+ examples:
2048
+ - 624cb0346309dc3a543733a2
2049
+ draftExpiresAt:
2050
+ type: string
2051
+ format: date-time
2052
+ readOnly: true
2053
+ description: |-
2054
+ When this draft MCP server expires and will be automatically deleted. Only present
2055
+ on servers created as drafts by the AI-assisted builder that have not yet been
2056
+ confirmed. Unlike other resource types, MCP server drafts carry no `draft` boolean —
2057
+ the presence of this field is what marks the draft state.
2058
+ examples:
2059
+ - '2026-05-14T17:16:05.595Z'
2060
+ x-celigo-ai-guidance:
2061
+ - |-
2062
+ Contains the complete MCP server configuration including metadata,
2063
+ tool entries, API entries, and their override settings.
2064
+ Request:
2065
+ type: object
2066
+ description: |-
2067
+ Request body for creating or updating an MCP server. On PUT, include
2068
+ the full `tools`, `apis`, and `resources` arrays because omitted arrays
2069
+ are cleared. Use PATCH to update individual fields without affecting
2070
+ these arrays.
2071
+ x-celigo-ai-guidance:
2072
+ - |-
2073
+ MCP servers expose Celigo tools, builder-mode APIs,
2074
+ and inline prompt templates as MCP-compatible endpoints for consumption by AI
2075
+ agents and MCP clients.
2076
+ required:
2077
+ - name
2078
+ - relativeURI
2079
+ allOf:
2080
+ - $ref: '#/components/schemas/MCPServerBase'
2081
+ Error:
2082
+ type: object
2083
+ description: Standard error response envelope returned by integrator.io APIs.
2084
+ properties:
2085
+ errors:
2086
+ type: array
2087
+ description: List of errors that occurred while processing the request.
2088
+ items:
2089
+ type: object
2090
+ properties:
2091
+ code:
2092
+ oneOf:
2093
+ - type: string
2094
+ - type: integer
2095
+ description: |-
2096
+ Machine-readable error code. Usually a string like
2097
+ `invalid_ref`, `missing_required_field`, or `unauthorized`;
2098
+ may be an **integer** when the error mirrors an upstream HTTP
2099
+ status (e.g. `500`) — most commonly returned by connection-ping
2100
+ and adaptor-proxy responses.
2101
+ message:
2102
+ type: string
2103
+ description: Human-readable description of the error.
2104
+ field:
2105
+ type: string
2106
+ description: |-
2107
+ Optional pointer to the document field that caused the error.
2108
+ Used by structural validation errors (`missing_required_field`,
2109
+ `invalid_ref`) to indicate which field is at fault
2110
+ (e.g. `_id`, `type`, `http.baseURI`).
2111
+ source:
2112
+ type: string
2113
+ description: |-
2114
+ Optional origin layer for the error — e.g. `application` when
2115
+ the error came from the remote system the adaptor called,
2116
+ `connector` when the adaptor itself rejected the request.
2117
+ required:
2118
+ - message
2119
+ required:
2120
+ - errors
2121
+ JsonPatchOperation:
2122
+ type: object
2123
+ description: A single JSON Patch operation (RFC 6902).
2124
+ required:
2125
+ - op
2126
+ - path
2127
+ properties:
2128
+ op:
2129
+ type: string
2130
+ enum:
2131
+ - replace
2132
+ - add
2133
+ - remove
2134
+ x-enumDescriptions:
2135
+ replace: Replaces the value at the specified path.
2136
+ add: Sets the value at the specified path.
2137
+ remove: Removes the value at the specified path.
2138
+ description: The operation to perform.
2139
+ path:
2140
+ type: string
2141
+ description: |-
2142
+ JSON Pointer (RFC 6901) to the field to patch. Only
2143
+ whitelisted paths are accepted — unlisted paths return
2144
+ `422` with `"<path> is not a whitelisted property"`.
2145
+ value:
2146
+ description: The new value to set. Required for `replace` and `add`, omit for `remove`.
2147
+ JsonPatchRequest:
2148
+ type: array
2149
+ description: |-
2150
+ A JSON Patch document (RFC 6902). Send an array of patch
2151
+ operations on whitelisted fields — all other paths are rejected
2152
+ with 422.
2153
+ minItems: 1
2154
+ items:
2155
+ $ref: '#/components/schemas/JsonPatchOperation'
2156
+ DependencyEntry:
2157
+ type: object
2158
+ description: A single resource that depends on the queried resource.
2159
+ properties:
2160
+ id:
2161
+ type: string
2162
+ description: Unique identifier of the dependent resource.
2163
+ examples:
2164
+ - 61f92026dd053843b5d72350
2165
+ name:
2166
+ type: string
2167
+ description: Display name of the dependent resource.
2168
+ examples:
2169
+ - Import Orders to NetSuite
2170
+ paths:
2171
+ type: array
2172
+ description: |-
2173
+ Dot-notation paths within the dependent resource that reference
2174
+ the target resource. `[*]` denotes array elements.
2175
+ items:
2176
+ type: string
2177
+ examples:
2178
+ - - hooks.preSavePage._scriptId
2179
+ accessLevel:
2180
+ type: string
2181
+ description: The caller's access level on the dependent resource.
2182
+ examples:
2183
+ - manage
2184
+ dependencyIds:
2185
+ type: object
2186
+ description: |-
2187
+ Map of resource types to arrays of IDs that this dependent
2188
+ resource references on the target. Keys are singular or plural
2189
+ resource type strings; values are arrays of ID strings.
2190
+ additionalProperties:
2191
+ type: array
2192
+ items:
2193
+ type: string
2194
+ example:
2195
+ script:
2196
+ - 64ff4b21612a134bd2f45531
2197
+ required:
2198
+ - id
2199
+ - name
2200
+ - paths
2201
+ - accessLevel
2202
+ - dependencyIds
2203
+ DependencyResponse:
2204
+ type: object
2205
+ description: |
2206
+ Map of dependent-resource types to arrays of dependency entries.
2207
+ Keys are plural resource type strings (e.g. `flows`, `imports`,
2208
+ `connections`). An empty object `{}` means no dependents.
2209
+ additionalProperties:
2210
+ type: array
2211
+ items:
2212
+ $ref: '#/components/schemas/DependencyEntry'
2213
+ example:
2214
+ exports:
2215
+ - id: 64ff4b21612a134bd2f45534
2216
+ name: Bank FTP Export
2217
+ paths:
2218
+ - hooks.preSavePage._scriptId
2219
+ accessLevel: manage
2220
+ dependencyIds:
2221
+ script:
2222
+ - 64ff4b21612a134bd2f45531
2223
+ flows:
2224
+ - id: 64ff4b22612a134bd2f45538
2225
+ name: CAMT-053 to Celigo CAM Format
2226
+ paths:
2227
+ - pageGenerators[*]._exportId
2228
+ accessLevel: manage
2229
+ dependencyIds:
2230
+ export:
2231
+ - 64ff4b21612a134bd2f45534
2232
+ MCPServerEffectiveAccess:
2233
+ type: object
2234
+ description: |-
2235
+ The compiled end-user access for one MCP server, with source attribution.
2236
+ Each user's access is the union of their direct grants, group grants,
2237
+ role grants (direct or via groups), and permission sets, recompiled on
2238
+ every request.
2239
+ properties:
2240
+ _mcpServerId:
2241
+ type: string
2242
+ format: objectId
2243
+ readOnly: true
2244
+ x-celigo-refModel: mcpservers
2245
+ description: MCP server this compilation applies to.
2246
+ examples:
2247
+ - 69eb9fb5b4fc023618e490b8
2248
+ serverName:
2249
+ type:
2250
+ - string
2251
+ - 'null'
2252
+ readOnly: true
2253
+ description: Display name of the MCP server.
2254
+ examples:
2255
+ - Customer Integration MCP
2256
+ users:
2257
+ type: array
2258
+ description: |-
2259
+ End users whose grants compile to tool access on this server. Users
2260
+ whose grants resolve to no enabled tool are omitted, and disabled
2261
+ tools never materialize. An empty array means no end user currently
2262
+ has access.
2263
+ items:
2264
+ type: object
2265
+ properties:
2266
+ _ashareId:
2267
+ type: string
2268
+ format: objectId
2269
+ readOnly: true
2270
+ description: End-user access-record id (from the end users list).
2271
+ examples:
2272
+ - 68b1c2d3e4f5a6b7c8d9e0f1
2273
+ _userId:
2274
+ type: string
2275
+ format: objectId
2276
+ readOnly: true
2277
+ x-celigo-refModel: users
2278
+ description: The end user's own user id.
2279
+ examples:
2280
+ - 624774a6a7574d3ed9f9a5cc
2281
+ email:
2282
+ type:
2283
+ - string
2284
+ - 'null'
2285
+ description: The end user's email. Null when the user record no longer resolves.
2286
+ name:
2287
+ type:
2288
+ - string
2289
+ - 'null'
2290
+ description: The end user's display name. Null when unset or when the user record no longer resolves.
2291
+ tools:
2292
+ type: array
2293
+ description: Tools the end user can invoke on this server.
2294
+ items:
2295
+ type: object
2296
+ properties:
2297
+ _id:
2298
+ type: string
2299
+ format: objectId
2300
+ x-celigo-refModel: tools
2301
+ description: Tool id.
2302
+ name:
2303
+ type: string
2304
+ description: Tool name as exposed on this server.
2305
+ via:
2306
+ type: array
2307
+ description: |-
2308
+ Source attribution strings such as `direct`, `group:<name>`,
2309
+ `pset:<name> (group:<name>)`, `role-direct:<name>`, or
2310
+ `role:<name> (group:<name>)`.
2311
+ items:
2312
+ type: string
2313
+ GrantCapability:
2314
+ type: string
2315
+ pattern: ^(?:tool|api):(?:[a-fA-F0-9]{24}|all)$|^pset:[a-fA-F0-9]{24}$
2316
+ description: |-
2317
+ Capability string granting access on this server: `tool:all`,
2318
+ `tool:<24-char-hex-id>` (an IO tool `_toolId` or attached prompt `_id`),
2319
+ `api:all`, `api:<24-char-hex-apiId>`, or
2320
+ `pset:<24-char-hex-permissionSetId>` referencing a permission set defined
2321
+ on this server.
2322
+ examples:
2323
+ - tool:all
2324
+ BulkAssignEndUsersRequest:
2325
+ type: object
2326
+ description: |-
2327
+ Bulk assignment payload. The same capabilities are applied to every
2328
+ listed end user.
2329
+ required:
2330
+ - _ashareIds
2331
+ - capabilities
2332
+ properties:
2333
+ _ashareIds:
2334
+ type: array
2335
+ minItems: 1
2336
+ maxItems: 100
2337
+ uniqueItems: true
2338
+ description: |-
2339
+ End-user access-record ids (from the end users list) to assign this
2340
+ server's capabilities to. Every id must belong to an end user of this
2341
+ account or the whole request is rejected before any update.
2342
+ items:
2343
+ type: string
2344
+ format: objectId
2345
+ examples:
2346
+ - - 68b1c2d3e4f5a6b7c8d9e0f1
2347
+ - 68b1c2d3e4f5a6b7c8d9e0f2
2348
+ capabilities:
2349
+ type: array
2350
+ minItems: 1
2351
+ description: |-
2352
+ Capabilities to apply on this MCP server for every listed end user.
2353
+ Each capability must resolve on this server — tools and APIs must be
2354
+ attached to it and `pset:` ids must reference its permission sets.
2355
+ items:
2356
+ $ref: '#/components/schemas/GrantCapability'
2357
+ examples:
2358
+ - - pset:6a7b8c9d0e1f2a3b4c5d6e7f
2359
+ BulkAssignEndUsersResult:
2360
+ type: object
2361
+ description: |-
2362
+ Result of a bulk end-user assignment. On a mid-batch failure the same
2363
+ body is returned with a non-2xx status: `endUsers` holds the entries
2364
+ processed before the failure and `errors` carries the error that stopped
2365
+ the batch.
2366
+ properties:
2367
+ updated:
2368
+ type: integer
2369
+ description: |-
2370
+ Number of end users processed, including end users whose grants
2371
+ already matched and were left unchanged.
2372
+ examples:
2373
+ - 2
2374
+ _mcpServerId:
2375
+ type: string
2376
+ format: objectId
2377
+ readOnly: true
2378
+ x-celigo-refModel: mcpservers
2379
+ description: MCP server the capabilities were assigned on.
2380
+ examples:
2381
+ - 69eb9fb5b4fc023618e490b8
2382
+ serverName:
2383
+ type:
2384
+ - string
2385
+ - 'null'
2386
+ readOnly: true
2387
+ description: Display name of the MCP server.
2388
+ examples:
2389
+ - Customer Integration MCP
2390
+ endUsers:
2391
+ type: array
2392
+ description: Per-end-user assignment outcomes, in request order.
2393
+ items:
2394
+ type: object
2395
+ properties:
2396
+ _id:
2397
+ type: string
2398
+ format: objectId
2399
+ description: End-user access-record id.
2400
+ examples:
2401
+ - 68b1c2d3e4f5a6b7c8d9e0f1
2402
+ _sharedWithUserId:
2403
+ type: string
2404
+ format: objectId
2405
+ x-celigo-refModel: users
2406
+ description: The end user's own user id.
2407
+ examples:
2408
+ - 624774a6a7574d3ed9f9a5cc
2409
+ resourceGrants:
2410
+ type: array
2411
+ description: |-
2412
+ The end user's complete resource grants after the merge. Only
2413
+ the grant for this server is replaced; grants for other MCP
2414
+ servers and wildcard grants are preserved.
2415
+ items:
2416
+ type: object
2417
+ properties:
2418
+ resourceType:
2419
+ type: string
2420
+ enum:
2421
+ - mcpServer
2422
+ x-enumDescriptions:
2423
+ mcpServer: Grants access to an MCP server and its tools, APIs, or permission sets
2424
+ description: Resource type the grant applies to.
2425
+ _resourceId:
2426
+ type:
2427
+ - string
2428
+ - 'null'
2429
+ format: objectId
2430
+ x-celigo-refModel: mcpservers
2431
+ description: |-
2432
+ MCP server the grant applies to. Null for a wildcard grant
2433
+ across all MCP servers in the account.
2434
+ capabilities:
2435
+ type: array
2436
+ description: Capabilities granted on the target resource.
2437
+ items:
2438
+ type: string
2439
+ capabilities:
2440
+ type: array
2441
+ description: Capabilities applied on this server for this end user.
2442
+ items:
2443
+ type: string
2444
+ errors:
2445
+ type: array
2446
+ description: |-
2447
+ Present when the batch stopped early. Carries the first error
2448
+ encountered; `endUsers` then reflects partial progress.
2449
+ items:
2450
+ type: object
2451
+ properties:
2452
+ code:
2453
+ type: string
2454
+ description: Machine-readable error code.
2455
+ message:
2456
+ type: string
2457
+ description: Human-readable error message.
2458
+ BulkAssignGroupsRequest:
2459
+ type: object
2460
+ description: |-
2461
+ Bulk assignment payload. The same capabilities are applied to every
2462
+ listed group.
2463
+ required:
2464
+ - _groupIds
2465
+ - capabilities
2466
+ properties:
2467
+ _groupIds:
2468
+ type: array
2469
+ minItems: 1
2470
+ maxItems: 100
2471
+ uniqueItems: true
2472
+ description: |-
2473
+ Groups to assign this server's capabilities to. Every id must belong
2474
+ to a group of this account or the whole request is rejected before
2475
+ any update.
2476
+ items:
2477
+ type: string
2478
+ format: objectId
2479
+ x-celigo-refModel: groups
2480
+ examples:
2481
+ - - 68a1b2c3d4e5f6a7b8c9d0e1
2482
+ - 68a1b2c3d4e5f6a7b8c9d0e2
2483
+ capabilities:
2484
+ type: array
2485
+ minItems: 1
2486
+ description: |-
2487
+ Capabilities to apply on this MCP server for every listed group.
2488
+ Each capability must resolve on this server — tools and APIs must be
2489
+ attached to it and `pset:` ids must reference its permission sets.
2490
+ items:
2491
+ $ref: '#/components/schemas/GrantCapability'
2492
+ examples:
2493
+ - - pset:6a7b8c9d0e1f2a3b4c5d6e7f
2494
+ BulkAssignGroupsResult:
2495
+ type: object
2496
+ description: |-
2497
+ Result of a bulk group assignment. On a mid-batch failure the same body
2498
+ is returned with a non-2xx status: `groups` holds the entries processed
2499
+ before the failure and `errors` carries the error that stopped the batch.
2500
+ properties:
2501
+ updated:
2502
+ type: integer
2503
+ description: |-
2504
+ Number of groups processed, including groups whose grants already
2505
+ matched and were left unchanged.
2506
+ examples:
2507
+ - 2
2508
+ _mcpServerId:
2509
+ type: string
2510
+ format: objectId
2511
+ readOnly: true
2512
+ x-celigo-refModel: mcpservers
2513
+ description: MCP server the capabilities were assigned on.
2514
+ examples:
2515
+ - 69eb9fb5b4fc023618e490b8
2516
+ serverName:
2517
+ type:
2518
+ - string
2519
+ - 'null'
2520
+ readOnly: true
2521
+ description: Display name of the MCP server.
2522
+ examples:
2523
+ - Customer Integration MCP
2524
+ groups:
2525
+ type: array
2526
+ description: Per-group assignment outcomes, sorted by group name.
2527
+ items:
2528
+ type: object
2529
+ properties:
2530
+ _id:
2531
+ type: string
2532
+ format: objectId
2533
+ x-celigo-refModel: groups
2534
+ description: Group id.
2535
+ examples:
2536
+ - 68a1b2c3d4e5f6a7b8c9d0e1
2537
+ name:
2538
+ type: string
2539
+ description: Group name.
2540
+ examples:
2541
+ - Finance
2542
+ _roleIds:
2543
+ type: array
2544
+ description: Roles pinned to the group. Not changed by this operation.
2545
+ items:
2546
+ type: string
2547
+ format: objectId
2548
+ x-celigo-refModel: roles
2549
+ capabilities:
2550
+ type: array
2551
+ description: Capabilities applied on this server for this group.
2552
+ items:
2553
+ type: string
2554
+ errors:
2555
+ type: array
2556
+ description: |-
2557
+ Present when the batch stopped early. Carries the first error
2558
+ encountered; `groups` then reflects partial progress.
2559
+ items:
2560
+ type: object
2561
+ properties:
2562
+ code:
2563
+ type: string
2564
+ description: Machine-readable error code.
2565
+ message:
2566
+ type: string
2567
+ description: Human-readable error message.
2568
+ responses:
2569
+ 401-unauthorized:
2570
+ description: |-
2571
+ Unauthorized. The request lacks a valid bearer token, or the provided token
2572
+ failed to authenticate.
2573
+
2574
+ Note: the 401 response is produced by the auth middleware **before** the
2575
+ request reaches the endpoint handler, so it does **not** follow the
2576
+ standard `{errors: [...]}` envelope. Instead the body is a bare
2577
+ `{message: string}` object with no `code`, no `errors` array. Callers
2578
+ handling 401s should key off the HTTP status and the `message` string,
2579
+ not try to destructure an `errors[]`.
2580
+ content:
2581
+ application/json:
2582
+ schema:
2583
+ type: object
2584
+ properties:
2585
+ message:
2586
+ type: string
2587
+ description: |-
2588
+ Human-readable description of the auth failure. Known values:
2589
+ - `"Unauthorized"` — no `Authorization` header on the request.
2590
+ - `"Bearer Authentication Failed"` — header present but token
2591
+ is invalid, revoked, or expired.
2592
+ required:
2593
+ - message
2594
+ examples:
2595
+ missing_token:
2596
+ summary: No Authorization header sent
2597
+ value:
2598
+ message: Unauthorized
2599
+ invalid_token:
2600
+ summary: Bearer token invalid or revoked
2601
+ value:
2602
+ message: Bearer Authentication Failed
2603
+ 400-bad-request:
2604
+ description: |
2605
+ Bad request. The server could not understand the request because of malformed syntax or invalid parameters.
2606
+ content:
2607
+ application/json:
2608
+ schema:
2609
+ $ref: '#/components/schemas/Error'
2610
+ examples:
2611
+ default:
2612
+ value:
2613
+ errors:
2614
+ - code: invalid_request
2615
+ message: The request body failed validation.
2616
+ 422-unprocessable-entity:
2617
+ description: |
2618
+ Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
2619
+ content:
2620
+ application/json:
2621
+ schema:
2622
+ $ref: '#/components/schemas/Error'
2623
+ examples:
2624
+ default:
2625
+ value:
2626
+ errors:
2627
+ - code: unprocessable_entity
2628
+ message: The request could not be processed due to a semantic error.
2629
+ 404-not-found:
2630
+ description: |
2631
+ Not found. The requested resource does not exist or is not visible to the caller.
2632
+ content:
2633
+ application/json:
2634
+ schema:
2635
+ $ref: '#/components/schemas/Error'
2636
+ examples:
2637
+ default:
2638
+ value:
2639
+ errors:
2640
+ - code: not_found
2641
+ message: The requested resource was not found.
2642
+ 403-forbidden:
2643
+ description: |
2644
+ Forbidden. The authenticated caller does not have permission to perform this operation.
2645
+ content:
2646
+ application/json:
2647
+ schema:
2648
+ $ref: '#/components/schemas/Error'
2649
+ examples:
2650
+ default:
2651
+ value:
2652
+ errors:
2653
+ - code: forbidden
2654
+ message: You do not have permission to access this resource.
2655
+ x-enable-proxy: true
2656
+ x-internal: false