Coveo · Capability

Coveo Extension API — Indexing Pipeline Extensions

Coveo Extension API — Indexing Pipeline Extensions. 18 operations. Lead operation: List Extensions. Self-contained Naftiko capability covering one Coveo business surface.

Run with Naftiko CoveoExtensionIndexing Pipeline Extensions

What You Can Do

GET
Getextensions — List Extensions
/v1/organizations/{organizationid}/extensions
POST
Createextension — Create Extension
/v1/organizations/{organizationid}/extensions
POST
Getextensionsbyids — Get a Subset of Extensions by Ids for an Organization.
/v1/organizations/{organizationid}/extensions/ids
GET
Getextensionsbypage — List Extensions by Page with Filter.
/v1/organizations/{organizationid}/extensions/page
GET
Getextensionsbyprojectid — Get Extensions Associated with Specified Project.
/v1/organizations/{organizationid}/extensions/project
POST
Compileextension — Try to Compile Code for an Extension
/v1/organizations/{organizationid}/extensions/test/compile
GET
Getextension — Show Extension
/v1/organizations/{organizationid}/extensions/{extensionid}
PUT
Updateextension — Update Extension
/v1/organizations/{organizationid}/extensions/{extensionid}
DELETE
Deleteextension — Delete Extension
/v1/organizations/{organizationid}/extensions/{extensionid}
GET
Getextensioncode — Show Extension Code
/v1/organizations/{organizationid}/extensions/{extensionid}/code
PUT
Updateextensioncode — Update Extension Code
/v1/organizations/{organizationid}/extensions/{extensionid}/code
POST
Disableextension — Disable Extension
/v1/organizations/{organizationid}/extensions/{extensionid}/disable
POST
Enableextension — Enable Extension
/v1/organizations/{organizationid}/extensions/{extensionid}/enable
POST
Testextension — Test Extension
/v1/organizations/{organizationid}/extensions/{extensionid}/test
POST
Generatetestdatastreamuploaduri — Create Test Data Stream Upload URI
/v1/organizations/{organizationid}/extensions/{extensionid}/test/datastream
PUT
Updateextensiontimeout — Set Timeout for a Given Extension for an Organization.
/v1/organizations/{organizationid}/extensions/{extensionid}/timeouts
GET
Getextensionversions — List Extension Versions
/v1/organizations/{organizationid}/extensions/{extensionid}/versions
GET
Getextensionversion — Show Extension Version
/v1/organizations/{organizationid}/extensions/{extensionid}/versions/{versionid}

MCP Tools

list-extensions

List Extensions

read-only idempotent
create-extension

Create Extension

get-subset-extensions-ids-organization

Get a Subset of Extensions by Ids for an Organization.

read-only
list-extensions-page-filter

List Extensions by Page with Filter.

read-only idempotent
get-extensions-associated-specified-project

Get Extensions Associated with Specified Project.

read-only idempotent
try-compile-code-extension

Try to Compile Code for an Extension

show-extension

Show Extension

read-only idempotent
update-extension

Update Extension

idempotent
delete-extension

Delete Extension

idempotent
show-extension-code

Show Extension Code

read-only idempotent
update-extension-code

Update Extension Code

idempotent
disable-extension

Disable Extension

enable-extension

Enable Extension

test-extension

Test Extension

read-only
create-test-data-stream-upload

Create Test Data Stream Upload URI

read-only
set-timeout-given-extension-organization

Set Timeout for a Given Extension for an Organization.

idempotent
list-extension-versions

List Extension Versions

read-only idempotent
show-extension-version

Show Extension Version

read-only idempotent

Capability Spec

extension-indexing-pipeline-extensions.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Coveo Extension API — Indexing Pipeline Extensions
  description: 'Coveo Extension API — Indexing Pipeline Extensions. 18 operations. Lead operation: List Extensions. Self-contained
    Naftiko capability covering one Coveo business surface.'
  tags:
  - Coveo
  - Extension
  - Indexing Pipeline Extensions
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    COVEO_API_KEY: COVEO_API_KEY
capability:
  consumes:
  - type: http
    namespace: extension-indexing-pipeline-extensions
    baseUri: https://platform.cloud.coveo.com
    description: Coveo Extension API — Indexing Pipeline Extensions business capability. Self-contained, no shared references.
    authentication:
      type: bearer
      token: '{{env.COVEO_API_KEY}}'
    resources:
    - name: rest-organizations-organizationId-extensions
      path: /rest/organizations/{organizationId}/extensions
      operations:
      - name: getextensions
        method: GET
        description: List Extensions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).<br /><b>Example:</b>
            `mycoveocloudv2organizationg8tp8wu3`
          required: true
      - name: createextension
        method: POST
        description: Create Extension
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).<br /><b>Example:</b>
            `mycoveocloudv2organizationg8tp8wu3`
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: rest-organizations-organizationId-extensions-ids
      path: /rest/organizations/{organizationId}/extensions/ids
      operations:
      - name: getextensionsbyids
        method: POST
        description: Get a Subset of Extensions by Ids for an Organization.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          required: true
        - name: page
          in: query
          type: integer
        - name: perPage
          in: query
          type: integer
        - name: filter
          in: query
          type: string
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: rest-organizations-organizationId-extensions-page
      path: /rest/organizations/{organizationId}/extensions/page
      operations:
      - name: getextensionsbypage
        method: GET
        description: List Extensions by Page with Filter.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          required: true
        - name: page
          in: query
          type: integer
        - name: perPage
          in: query
          type: integer
        - name: filter
          in: query
          type: string
    - name: rest-organizations-organizationId-extensions-project
      path: /rest/organizations/{organizationId}/extensions/project
      operations:
      - name: getextensionsbyprojectid
        method: GET
        description: Get Extensions Associated with Specified Project.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          required: true
        - name: projectId
          in: query
          type: string
        - name: page
          in: query
          type: integer
        - name: perPage
          in: query
          type: integer
        - name: filter
          in: query
          type: string
    - name: rest-organizations-organizationId-extensions-test-compile
      path: /rest/organizations/{organizationId}/extensions/test/compile
      operations:
      - name: compileextension
        method: POST
        description: Try to Compile Code for an Extension
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: rest-organizations-organizationId-extensions-extensionId
      path: /rest/organizations/{organizationId}/extensions/{extensionId}
      operations:
      - name: getextension
        method: GET
        description: Show Extension
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).<br /><b>Example:</b>
            `mycoveocloudv2organizationg8tp8wu3`
          required: true
        - name: extensionId
          in: path
          type: string
          description: The unique identifier of the extension to show.<br /><b>Example:</b> `mycoveocloudv2organizationg8tp8wu3n-vwlyqfbtjkotxqkmrxqjcbcpoy`
          required: true
      - name: updateextension
        method: PUT
        description: Update Extension
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).<br /><b>Example:</b>
            `mycoveocloudv2organizationg8tp8wu3`
          required: true
        - name: extensionId
          in: path
          type: string
          description: The unique identifier of the extension to update.<br /><b>Example:</b> `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy`
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deleteextension
        method: DELETE
        description: Delete Extension
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).<br /><b>Example:</b>
            `mycoveocloudv2organizationg8tp8wu3`
          required: true
        - name: extensionId
          in: path
          type: string
          description: The unique identifier of the extension to delete.<br /><b>Example:</b> `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy`
          required: true
    - name: rest-organizations-organizationId-extensions-extensionId-code
      path: /rest/organizations/{organizationId}/extensions/{extensionId}/code
      operations:
      - name: getextensioncode
        method: GET
        description: Show Extension Code
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          required: true
        - name: extensionId
          in: path
          type: string
          required: true
      - name: updateextensioncode
        method: PUT
        description: Update Extension Code
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          required: true
        - name: extensionId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: rest-organizations-organizationId-extensions-extensionId-disable
      path: /rest/organizations/{organizationId}/extensions/{extensionId}/disable
      operations:
      - name: disableextension
        method: POST
        description: Disable Extension
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).<br /><b>Example:</b>
            `mycoveocloudv2organizationg8tp8wu3`
          required: true
        - name: extensionId
          in: path
          type: string
          description: The unique identifier of the extension to disable.<br /><b>Example:</b> `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy`
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: rest-organizations-organizationId-extensions-extensionId-enable
      path: /rest/organizations/{organizationId}/extensions/{extensionId}/enable
      operations:
      - name: enableextension
        method: POST
        description: Enable Extension
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).<br /><b>Example:</b>
            `mycoveocloudv2organizationg8tp8wu3`
          required: true
        - name: extensionId
          in: path
          type: string
          description: The unique identifier of the extension to enable.<br /><b>Example:</b> `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy`
          required: true
    - name: rest-organizations-organizationId-extensions-extensionId-test
      path: /rest/organizations/{organizationId}/extensions/{extensionId}/test
      operations:
      - name: testextension
        method: POST
        description: Test Extension
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).<br /><b>Example:</b>
            `mycoveocloudv2organizationg8tp8wu3`
          required: true
        - name: extensionId
          in: path
          type: string
          description: The unique identifier of the extension to test.<br /><b>Example:</b> `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy`
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: rest-organizations-organizationId-extensions-extensionId-test-datastream
      path: /rest/organizations/{organizationId}/extensions/{extensionId}/test/datastream
      operations:
      - name: generatetestdatastreamuploaduri
        method: POST
        description: Create Test Data Stream Upload URI
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).<br /><b>Example:</b>
            `mycoveocloudv2organizationg8tp8wu3`
          required: true
        - name: extensionId
          in: path
          type: string
          description: The unique identifier of the extension for which to create an upload URI.<br /><b>Example:</b> `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy`
          required: true
    - name: rest-organizations-organizationId-extensions-extensionId-timeouts
      path: /rest/organizations/{organizationId}/extensions/{extensionId}/timeouts
      operations:
      - name: updateextensiontimeout
        method: PUT
        description: Set Timeout for a Given Extension for an Organization.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          required: true
        - name: extensionId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: rest-organizations-organizationId-extensions-extensionId-versions
      path: /rest/organizations/{organizationId}/extensions/{extensionId}/versions
      operations:
      - name: getextensionversions
        method: GET
        description: List Extension Versions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).<br /><b>Example:</b>
            `mycoveocloudv2organizationg8tp8wu3`
          required: true
        - name: extensionId
          in: path
          type: string
          description: The unique identifier of the target extension.<br /><b>Example:</b> `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy`
          required: true
    - name: rest-organizations-organizationId-extensions-extensionId-versions-versionId
      path: /rest/organizations/{organizationId}/extensions/{extensionId}/versions/{versionId}
      operations:
      - name: getextensionversion
        method: GET
        description: Show Extension Version
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organizationId
          in: path
          type: string
          description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).<br /><b>Example:</b>
            `mycoveocloudv2organizationg8tp8wu3`
          required: true
        - name: extensionId
          in: path
          type: string
          description: The unique identifier of the target extension.<br /><b>Example:</b> `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy`
          required: true
        - name: versionId
          in: path
          type: string
          description: The unique identifier of the extension version to show.<br /><b>Example</b>:`hdJSDb4hTkdnsCynNtF.d657FgLSDydcj`
          required: true
  exposes:
  - type: rest
    namespace: extension-indexing-pipeline-extensions-rest
    port: 8080
    description: REST adapter for Coveo Extension API — Indexing Pipeline Extensions. One Spectral-compliant resource per
      consumed operation, prefixed with /v1.
    resources:
    - path: /v1/organizations/{organizationid}/extensions
      name: rest-organizations-organizationid-extensions
      description: REST surface for rest-organizations-organizationId-extensions.
      operations:
      - method: GET
        name: getextensions
        description: List Extensions
        call: extension-indexing-pipeline-extensions.getextensions
        with:
          organizationId: rest.organizationId
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createextension
        description: Create Extension
        call: extension-indexing-pipeline-extensions.createextension
        with:
          organizationId: rest.organizationId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/extensions/ids
      name: rest-organizations-organizationid-extensions-ids
      description: REST surface for rest-organizations-organizationId-extensions-ids.
      operations:
      - method: POST
        name: getextensionsbyids
        description: Get a Subset of Extensions by Ids for an Organization.
        call: extension-indexing-pipeline-extensions.getextensionsbyids
        with:
          organizationId: rest.organizationId
          page: rest.page
          perPage: rest.perPage
          filter: rest.filter
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/extensions/page
      name: rest-organizations-organizationid-extensions-page
      description: REST surface for rest-organizations-organizationId-extensions-page.
      operations:
      - method: GET
        name: getextensionsbypage
        description: List Extensions by Page with Filter.
        call: extension-indexing-pipeline-extensions.getextensionsbypage
        with:
          organizationId: rest.organizationId
          page: rest.page
          perPage: rest.perPage
          filter: rest.filter
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/extensions/project
      name: rest-organizations-organizationid-extensions-project
      description: REST surface for rest-organizations-organizationId-extensions-project.
      operations:
      - method: GET
        name: getextensionsbyprojectid
        description: Get Extensions Associated with Specified Project.
        call: extension-indexing-pipeline-extensions.getextensionsbyprojectid
        with:
          organizationId: rest.organizationId
          projectId: rest.projectId
          page: rest.page
          perPage: rest.perPage
          filter: rest.filter
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/extensions/test/compile
      name: rest-organizations-organizationid-extensions-test-compile
      description: REST surface for rest-organizations-organizationId-extensions-test-compile.
      operations:
      - method: POST
        name: compileextension
        description: Try to Compile Code for an Extension
        call: extension-indexing-pipeline-extensions.compileextension
        with:
          organizationId: rest.organizationId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/extensions/{extensionid}
      name: rest-organizations-organizationid-extensions-extensionid
      description: REST surface for rest-organizations-organizationId-extensions-extensionId.
      operations:
      - method: GET
        name: getextension
        description: Show Extension
        call: extension-indexing-pipeline-extensions.getextension
        with:
          organizationId: rest.organizationId
          extensionId: rest.extensionId
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updateextension
        description: Update Extension
        call: extension-indexing-pipeline-extensions.updateextension
        with:
          organizationId: rest.organizationId
          extensionId: rest.extensionId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteextension
        description: Delete Extension
        call: extension-indexing-pipeline-extensions.deleteextension
        with:
          organizationId: rest.organizationId
          extensionId: rest.extensionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/extensions/{extensionid}/code
      name: rest-organizations-organizationid-extensions-extensionid-code
      description: REST surface for rest-organizations-organizationId-extensions-extensionId-code.
      operations:
      - method: GET
        name: getextensioncode
        description: Show Extension Code
        call: extension-indexing-pipeline-extensions.getextensioncode
        with:
          organizationId: rest.organizationId
          extensionId: rest.extensionId
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updateextensioncode
        description: Update Extension Code
        call: extension-indexing-pipeline-extensions.updateextensioncode
        with:
          organizationId: rest.organizationId
          extensionId: rest.extensionId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/extensions/{extensionid}/disable
      name: rest-organizations-organizationid-extensions-extensionid-disable
      description: REST surface for rest-organizations-organizationId-extensions-extensionId-disable.
      operations:
      - method: POST
        name: disableextension
        description: Disable Extension
        call: extension-indexing-pipeline-extensions.disableextension
        with:
          organizationId: rest.organizationId
          extensionId: rest.extensionId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/extensions/{extensionid}/enable
      name: rest-organizations-organizationid-extensions-extensionid-enable
      description: REST surface for rest-organizations-organizationId-extensions-extensionId-enable.
      operations:
      - method: POST
        name: enableextension
        description: Enable Extension
        call: extension-indexing-pipeline-extensions.enableextension
        with:
          organizationId: rest.organizationId
          extensionId: rest.extensionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/extensions/{extensionid}/test
      name: rest-organizations-organizationid-extensions-extensionid-test
      description: REST surface for rest-organizations-organizationId-extensions-extensionId-test.
      operations:
      - method: POST
        name: testextension
        description: Test Extension
        call: extension-indexing-pipeline-extensions.testextension
        with:
          organizationId: rest.organizationId
          extensionId: rest.extensionId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/extensions/{extensionid}/test/datastream
      name: rest-organizations-organizationid-extensions-extensionid-test-datastream
      description: REST surface for rest-organizations-organizationId-extensions-extensionId-test-datastream.
      operations:
      - method: POST
        name: generatetestdatastreamuploaduri
        description: Create Test Data Stream Upload URI
        call: extension-indexing-pipeline-extensions.generatetestdatastreamuploaduri
        with:
          organizationId: rest.organizationId
          extensionId: rest.extensionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/extensions/{extensionid}/timeouts
      name: rest-organizations-organizationid-extensions-extensionid-timeouts
      description: REST surface for rest-organizations-organizationId-extensions-extensionId-timeouts.
      operations:
      - method: PUT
        name: updateextensiontimeout
        description: Set Timeout for a Given Extension for an Organization.
        call: extension-indexing-pipeline-extensions.updateextensiontimeout
        with:
          organizationId: rest.organizationId
          extensionId: rest.extensionId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/extensions/{extensionid}/versions
      name: rest-organizations-organizationid-extensions-extensionid-versions
      description: REST surface for rest-organizations-organizationId-extensions-extensionId-versions.
      operations:
      - method: GET
        name: getextensionversions
        description: List Extension Versions
        call: extension-indexing-pipeline-extensions.getextensionversions
        with:
          organizationId: rest.organizationId
          extensionId: rest.extensionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/extensions/{extensionid}/versions/{versionid}
      name: rest-organizations-organizationid-extensions-extensionid-versions-versionid
      description: REST surface for rest-organizations-organizationId-extensions-extensionId-versions-versionId.
      operations:
      - method: GET
        name: getextensionversion
        description: Show Extension Version
        call: extension-indexing-pipeline-extensions.getextensionversion
        with:
          organizationId: rest.organizationId
          extensionId: rest.extensionId
          versionId: rest.versionId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: extension-indexing-pipeline-extensions-mcp
    port: 9090
    transport: http
    description: MCP adapter for Coveo Extension API — Indexing Pipeline Extensions. One tool per consumed operation, routed
      inline through this capability's consumes block.
    tools:
    - name: list-extensions
      description: List Extensions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: extension-indexing-pipeline-extensions.getextensions
      with:
        organizationId: tools.organizationId
      outputParameters:
      - type: object
        mapping: $.
    - name: create-extension
      description: Create Extension
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: extension-indexing-pipeline-extensions.createextension
      with:
        organizationId: tools.organizationId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-subset-extensions-ids-organization
      description: Get a Subset of Extensions by Ids for an Organization.
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: extension-indexing-pipeline-extensions.getextensionsbyids
      with:
        organizationId: tools.organizationId
        page: tools.page
        perPage: tools.perPage
        filter: tools.filter
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-extensions-page-filter
      description: List Extensions by Page with Filter.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: extension-indexing-pipeline-extensions.getextensionsbypage
      with:
        organizationId: tools.organizationId
        page: tools.page
        perPage: tools.perPage
        filter: tools.filter
      outputParameters:
      - type: object
        mapping: $.
    - name: get-extensions-associated-specified-project
      description: Get Extensions Associated with Specified Project.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: extension-indexing-pipeline-extensions.getextensionsbyprojectid
      with:
        organizationId: tools.organizationId
        projectId: tools.projectId
        page: tools.page
        perPage: tools.perPage
        filter: tools.filter
      outputParameters:
      - type: object
        mapping: $.
    - name: try-compile-code-extension
      description: Try to Compile Code for an Extension
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: extension-indexing-pipeline-extensions.compileextension
      with:
        organizationId: tools.organizationId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: show-extension
      description: Show Extension
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: extension-indexing-pipeline-extensions.getextension
      with:
        organizationId: tools.organizationId
        extensionId: tools.extensionId
      outputParameters:
      - type: object
        mapping: $.
    - name: update-extension
      description: Update Extension
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: extension-indexing-pipeline-extensions.updateextension
      with:
        organizationId: tools.organizationId
        extensionId: tools.extensionId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-extension
      description: Delete Extension
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: extension-indexing-pipeline-extensions.deleteextension
      with:
        organizationId: tools.organizationId
        extensionId: tools.extensionId
      outputParameters:
      - type: object
        mapping: $.
    - name: show-extension-code
      description: Show Extension Code
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: extension-indexing-pipeline-extensions.getextensioncode
      with:
        organizationId: tools.organizationId
        extensionId: tools.extensionId
      outputParameters:
      - type: object
        mapping: $.
    - name: update-extension-code
      description: Update Extension Code
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: extension-indexing-pipeline-extensions.updateextensioncode
      with:
        organizationId: tools.organizationId
        extensionId: tools.extensionId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: disable-extension
      description: Disable Extension
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: extension-indexing-pipeline-extensions.disableextension
      with:
        organizationId: tools.organizationId
        extensionId: tools.extensionId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: enable-extension
      description: Enable Extension
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: extension-indexing-pipeline-extensions.enableextension
      with:
        organizationId: tools.organizationId
        extensionId: tools.extensionId
      outputParameters:
      - type: object
        mapping: $.
    - name: test-extension
      description: Test Extension
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: extension-indexing-pipeline-extensions.testextension
      with:
        organizationId: tools.organizationId
        extensionId: tools.extensionId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: create-test-data-stream-upload
      description: Create Test Data Stream Upload URI
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: extension-indexing-pipeline-extensions.generatetestdatastreamuploaduri
      with:
        organizationId: tools.organizationId
        extensionId: tool

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/capabilities/extension-indexing-pipeline-extensions.yaml