@celigo/api-specs 0.2.34 → 0.2.36

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.
@@ -502,6 +502,269 @@ paths:
502
502
  $ref: '#/components/responses/401-unauthorized'
503
503
  '404':
504
504
  $ref: '#/components/responses/404-not-found'
505
+ /v1/mcpservers/template/{_templateId}:
506
+ post:
507
+ x-internal: false
508
+ operationId: installMcpServerTemplate
509
+ tags:
510
+ - MCP Servers
511
+ summary: Install a published MCP server template
512
+ description: |-
513
+ Installs a published MCP-server marketplace template (a template whose
514
+ `type` is `mcpserver`). The request takes no parameters — the published
515
+ template ZIP is the source of truth for everything the install creates,
516
+ and there is no `connectionMap` (unlike the integration-template
517
+ install).
518
+
519
+ What the install creates depends on the template's contents, reported by
520
+ the response's `destination` envelope:
521
+
522
+ - **Prompt-only templates** (no tools) create the MCP server
523
+ immediately, disabled. `destination.resourceType` is `mcpservers`.
524
+ - **Tool-bearing templates** hand off to the Integration installer:
525
+ `destination.resourceType` is `integrations` and names an Integration
526
+ in install mode, where connection mapping and the remaining install
527
+ steps continue. The MCP server is created — disabled — by the
528
+ Integration's terminal install step, after the tools are cloned.
529
+
530
+ Integration templates do not install through this path — they use
531
+ `POST /v1/integrations/template/{_id}`. Each path rejects the other
532
+ class: this one returns 404 for a template that is not a published
533
+ MCP-server template, and the integration path rejects MCP-server
534
+ templates with a 400 `invalid_template` error.
535
+
536
+ Every request that reaches the platform starts a new install — there is
537
+ no idempotency key, so retrying after a timeout or ambiguous failure
538
+ creates a duplicate server or install-mode Integration. Duplicates are
539
+ kept apart by URI suffixing: each new server's `relativeURI` gets `-2`
540
+ through `-100` appended when the un-suffixed value is taken; once all
541
+ 100 are in use the install fails with a 422 `invalid_value` error.
542
+
543
+ Requires the `install:published:template` permission.
544
+ x-celigo-ai-guidance:
545
+ - Send an empty JSON object as the body. Connection mapping for tool-bearing templates happens later, in the created Integration's install steps — never invent a connectionMap for this endpoint.
546
+ - Never retry this POST after a timeout or an ambiguous failure — a request that reached the platform already started an install, and a second request installs a duplicate.
547
+ - Branch the follow-up on destination.resourceType — "integrations" means install steps continue on the created Integration (its setup page); "mcpservers" means the disabled MCP server already exists and needs enabling and access before clients can use it.
548
+ parameters:
549
+ - name: _templateId
550
+ in: path
551
+ required: true
552
+ description: The published MCP-server template to install.
553
+ schema:
554
+ type: string
555
+ format: objectId
556
+ x-celigo-refModel: templates
557
+ examples:
558
+ - 6ab129aeb9e4547494c0667f
559
+ requestBody:
560
+ required: false
561
+ content:
562
+ application/json:
563
+ schema:
564
+ type: object
565
+ description: Empty object — the install takes no parameters.
566
+ examples:
567
+ empty:
568
+ summary: The install takes no parameters
569
+ value: {}
570
+ responses:
571
+ '201':
572
+ description: Installation started.
573
+ content:
574
+ application/json:
575
+ schema:
576
+ type: object
577
+ required:
578
+ - destination
579
+ properties:
580
+ destination:
581
+ type: object
582
+ description: The resource the install created first.
583
+ required:
584
+ - resourceType
585
+ - resourceId
586
+ properties:
587
+ resourceType:
588
+ type: string
589
+ enum:
590
+ - mcpservers
591
+ - integrations
592
+ x-enumDescriptions:
593
+ mcpservers: The disabled MCP server created directly from a prompt-only template
594
+ integrations: The install-mode Integration created for a tool-bearing template
595
+ description: |-
596
+ Which resource type the install created — determines
597
+ where the caller continues the setup.
598
+ resourceId:
599
+ type: string
600
+ format: objectId
601
+ description: |-
602
+ The created resource's ID, in the collection named by
603
+ `resourceType`.
604
+ examples:
605
+ toolBearing:
606
+ summary: Tool-bearing template — Integration in install mode
607
+ value:
608
+ destination:
609
+ resourceType: integrations
610
+ resourceId: 6ab130000000000000000d01
611
+ promptOnly:
612
+ summary: Prompt-only template — disabled MCP server
613
+ value:
614
+ destination:
615
+ resourceType: mcpservers
616
+ resourceId: 6ab130000000000000000d02
617
+ '401':
618
+ $ref: '#/components/responses/401-unauthorized'
619
+ '403':
620
+ $ref: '#/components/responses/403-forbidden'
621
+ '404':
622
+ description: |-
623
+ No published MCP-server template with this ID. Integration templates
624
+ return 404 here too — they install via
625
+ `POST /v1/integrations/template/{_id}`.
626
+ content:
627
+ application/json:
628
+ schema:
629
+ $ref: '#/components/schemas/Error'
630
+ examples:
631
+ notFound:
632
+ value:
633
+ errors:
634
+ - code: invalid_ref
635
+ message: Template not found.
636
+ '422':
637
+ description: |-
638
+ The install was rejected before anything was created. As-built
639
+ cases: the template packages capabilities an MCP-server template
640
+ cannot carry (`invalid_template` — only tools and inline prompts
641
+ are portable), a packaged tool is missing or inaccessible
642
+ (`invalid_template`), or `relativeURI` de-duplication exhausted its
643
+ `-2`…`-100` suffixes (`invalid_value` — the account already holds
644
+ 100 servers on that URI; delete or rename some before installing
645
+ again). None of these are retryable unchanged — and never retry
646
+ the POST blindly, since a request that reached the platform may
647
+ already have installed something.
648
+ content:
649
+ application/json:
650
+ schema:
651
+ $ref: '#/components/schemas/Error'
652
+ examples:
653
+ uriSuffixesExhausted:
654
+ summary: relativeURI de-duplication exhausted
655
+ value:
656
+ errors:
657
+ - code: invalid_value
658
+ message: Unable to generate a unique relative URI for the MCP server from /installed-mcp-server.
659
+ unsupportedCapability:
660
+ summary: Template packages non-portable capabilities
661
+ value:
662
+ errors:
663
+ - code: invalid_template
664
+ message: 'Installing an MCP server supports only tools and prompts. Unsupported: apis, resources.'
665
+ /v1/mcpservers/{_id}/template:
666
+ get:
667
+ x-internal: false
668
+ operationId: exportMcpServerTemplate
669
+ tags:
670
+ - MCP Servers
671
+ summary: Export an MCP server as a template ZIP
672
+ description: |-
673
+ Generates a template ZIP from the MCP server and returns a temporary
674
+ signed URL for downloading it. The ZIP contains the server document,
675
+ its inline prompts, its tools, and the resources those tools depend on
676
+ (exports, imports, connections, scripts) — a prompt-only server (no
677
+ tools) exports successfully. The ZIP is the artifact a publisher
678
+ uploads when authoring an MCP-server marketplace template; installing
679
+ that template recreates the server via
680
+ `POST /v1/mcpservers/template/{_templateId}`.
681
+
682
+ Only tools and inline prompts are portable. A server that publishes
683
+ APIs (`apis[]`) or file resources (`resources[]`) fails the export up
684
+ front with a 400 `invalid_template` error — no ZIP is generated;
685
+ nothing is stripped to make it succeed.
686
+
687
+ The signed URL expires after about 60 seconds — download promptly, and
688
+ call the endpoint again for a fresh URL rather than storing this one.
689
+
690
+ Requires the `create:mcpserver:template` permission.
691
+ parameters:
692
+ - name: _id
693
+ in: path
694
+ required: true
695
+ description: The MCP server to export.
696
+ schema:
697
+ type: string
698
+ format: objectId
699
+ x-celigo-refModel: mcpservers
700
+ examples:
701
+ - 69eb9fb5b4fc023618e490b8
702
+ responses:
703
+ '200':
704
+ description: Temporary signed URL for the generated ZIP.
705
+ content:
706
+ application/json:
707
+ schema:
708
+ type: object
709
+ required:
710
+ - signedURL
711
+ - key
712
+ properties:
713
+ signedURL:
714
+ type: string
715
+ format: uri
716
+ description: |-
717
+ Time-limited download URL for the generated template ZIP —
718
+ expires after about 60 seconds.
719
+ key:
720
+ type: string
721
+ description: |-
722
+ Storage key of the generated ZIP object — stable across
723
+ the URL's expiry, useful for correlating repeated exports.
724
+ examples:
725
+ exported:
726
+ summary: Signed URL for the generated ZIP
727
+ value:
728
+ signedURL: https://s3.amazonaws.com/templates/mcp-export/69eb9fb5b4fc023618e490b8.zip?X-Amz-Expires=60
729
+ key: mcp-export/69eb9fb5b4fc023618e490b8.zip
730
+ '400':
731
+ description: |-
732
+ The server publishes capabilities a template cannot carry — only
733
+ tools and inline prompts are portable. Remove the APIs / file
734
+ resources (or export a server without them); retrying unchanged
735
+ fails identically.
736
+ content:
737
+ application/json:
738
+ schema:
739
+ $ref: '#/components/schemas/Error'
740
+ examples:
741
+ unsupportedCapability:
742
+ summary: Server publishes APIs or file resources
743
+ value:
744
+ errors:
745
+ - code: invalid_template
746
+ message: 'Installing an MCP server supports only tools and prompts. Unsupported: apis, resources.'
747
+ '401':
748
+ $ref: '#/components/responses/401-unauthorized'
749
+ '403':
750
+ $ref: '#/components/responses/403-forbidden'
751
+ '404':
752
+ $ref: '#/components/responses/404-not-found'
753
+ '422':
754
+ description: |-
755
+ The export could not assemble a complete ZIP — a tool or its
756
+ backing integration is missing or not accessible to the caller.
757
+ content:
758
+ application/json:
759
+ schema:
760
+ $ref: '#/components/schemas/Error'
761
+ examples:
762
+ dependencyInvalid:
763
+ summary: A tool dependency is missing or inaccessible
764
+ value:
765
+ errors:
766
+ - code: invalid_template
767
+ message: The MCP server template contains a missing or inaccessible tool dependency.
505
768
  /v1/mcpservers/{_id}/dependencies:
506
769
  get:
507
770
  x-internal: false
@@ -382,15 +382,40 @@ components:
382
382
  description: |-
383
383
  A single subscribe / unsubscribe directive. Set exactly one of
384
384
  `_flowId`, `_connectionId`, `_integrationId`, or `_syncId`.
385
- oneOf:
386
- - required:
387
- - _flowId
388
- - required:
385
+ if:
386
+ required:
387
+ - _flowId
388
+ then:
389
+ not:
390
+ anyOf:
391
+ - required:
392
+ - _connectionId
393
+ - required:
394
+ - _integrationId
395
+ - required:
396
+ - _syncId
397
+ else:
398
+ if:
399
+ required:
389
400
  - _connectionId
390
- - required:
391
- - _integrationId
392
- - required:
393
- - _syncId
401
+ then:
402
+ not:
403
+ anyOf:
404
+ - required:
405
+ - _integrationId
406
+ - required:
407
+ - _syncId
408
+ else:
409
+ if:
410
+ required:
411
+ - _integrationId
412
+ then:
413
+ not:
414
+ required:
415
+ - _syncId
416
+ else:
417
+ required:
418
+ - _syncId
394
419
  properties:
395
420
  _flowId:
396
421
  type: string
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.34",
3
+ "version": "0.2.36",
4
4
  "private": false,
5
5
  "description": "Public OpenAPI bundles (dist/) and the celigo-cli lint schema pack (schemas.json).",
6
6
  "keywords": [
package/schemas.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "provenance": {
3
3
  "repo": "celigo/integrator-api-specs",
4
- "iasCommit": "820b9fd",
5
- "generatedAt": "2026-09-21"
4
+ "iasCommit": "f9f1732",
5
+ "generatedAt": "2026-09-22"
6
6
  },
7
7
  "roots": {
8
8
  "aiagent": 133,