@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.
- package/LICENSE +21 -0
- package/README.md +119 -0
- package/dist/account.yml +592 -0
- package/dist/agent.yml +908 -0
- package/dist/ai-agent.yml +5471 -0
- package/dist/api.yml +4140 -0
- package/dist/apim.yml +1286 -0
- package/dist/asynchelper.yml +3391 -0
- package/dist/audit.yml +2006 -0
- package/dist/connection.yml +8665 -0
- package/dist/connector.yml +1406 -0
- package/dist/ediprofile.yml +911 -0
- package/dist/editransaction.yml +1210 -0
- package/dist/enduser.yml +1724 -0
- package/dist/environment.yml +568 -0
- package/dist/eventreport.yml +692 -0
- package/dist/export.yml +17610 -0
- package/dist/filedefinition.yml +1396 -0
- package/dist/filestorage.yml +3102 -0
- package/dist/flow.yml +7928 -0
- package/dist/guardrail.yml +2763 -0
- package/dist/httpconnector.yml +2277 -0
- package/dist/httpconnectorendpoint.yml +722 -0
- package/dist/httpconnectorresource.yml +396 -0
- package/dist/iclient.yml +4452 -0
- package/dist/import.yml +15381 -0
- package/dist/integration.yml +4406 -0
- package/dist/job.yml +2014 -0
- package/dist/lookupcache.yml +1325 -0
- package/dist/marketplace.yml +685 -0
- package/dist/mcp-oauth-provider.yml +590 -0
- package/dist/mcp-server.yml +2656 -0
- package/dist/notification.yml +488 -0
- package/dist/processor.yml +1253 -0
- package/dist/profile.yml +455 -0
- package/dist/recyclebin.yml +768 -0
- package/dist/script.yml +1128 -0
- package/dist/stack.yml +1291 -0
- package/dist/state.yml +894 -0
- package/dist/subscription.yml +1405 -0
- package/dist/sync.yml +4857 -0
- package/dist/tag.yml +553 -0
- package/dist/template.yml +897 -0
- package/dist/tool.yml +33656 -0
- package/dist/tradingpartnerconnector.yml +1490 -0
- package/dist/user.yml +831 -0
- package/package.json +41 -0
- 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
|