naftiko: 1.0.0-alpha2 info: label: Coveo Search API — Search V2 description: 'Coveo Search API — Search V2. 23 operations. Lead operation: Send Search Request. Self-contained Naftiko capability covering one Coveo business surface.' tags: - Coveo - Search - Search V2 created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COVEO_SEARCH_TOKEN: COVEO_SEARCH_TOKEN capability: consumes: - type: http namespace: search-search-v2 baseUri: https://platform.cloud.coveo.com description: Coveo Search API — Search V2 business capability. Self-contained, no shared references. authentication: type: bearer token: '{{env.COVEO_SEARCH_TOKEN}}' resources: - name: rest-search-v2 path: /rest/search/v2 operations: - name: searchusingget method: GET description: Send Search Request outputRawFormat: json outputParameters: - name: result type: object value: $. - name: searchusingpost method: POST description: Send Search Request outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: rest-search-v2-datastream path: /rest/search/v2/datastream operations: - name: datastream method: GET description: Get Item Data Stream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dataStream in: query type: string description: The name of the data stream to request. required: true - name: primaryId in: query type: string description: The primaryId of the document. Exactly one of uniqueId or primaryId is required. - name: uniqueId in: query type: string description: The uniqueId of the document. Exactly one of uniqueId or primaryId is required. - name: contentType in: query type: string description: The MIME type of the data stream to request. - name: rest-search-v2-document path: /rest/search/v2/document operations: - name: document method: GET description: Get Item in JSON Format outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: primaryId in: query type: string description: The primaryId of the document. Exactly one of uniqueId or primaryId is required. - name: uniqueId in: query type: string description: The uniqueId of the document. Exactly one of uniqueId or primaryId is required. - name: rest-search-v2-extensions path: /rest/search/v2/extensions operations: - name: extensions method: GET description: List Available Query Extensions outputRawFormat: json outputParameters: - name: result type: object value: $. - name: rest-search-v2-facet path: /rest/search/v2/facet operations: - name: facetsearch method: POST description: Send Facet Search Request outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: rest-search-v2-fields path: /rest/search/v2/fields operations: - name: fields method: GET description: List All Fields outputRawFormat: json outputParameters: - name: result type: object value: $. - name: rest-search-v2-fields-find path: /rest/search/v2/fields/find operations: - name: findfieldsfromexpression method: POST description: Find Fields from Results of a Query Expression outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: rest-search-v2-html path: /rest/search/v2/html operations: - name: htmlget method: GET description: Get HTML Item Preview outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uniqueId in: query type: string description: The uniqueId of the document. Exactly one of uniqueId or primaryId is required. - name: primaryId in: query type: string description: The primaryId of the document. Exactly one of uniqueId or primaryId is required. - name: findNext in: query type: integer - name: findPrevious in: query type: integer - name: page in: query type: integer - name: enableNavigation in: query type: boolean - name: requestedOutputSize in: query type: integer description: The approximate number of bytes to request in the HTML response. **Default:** `0`, meaning that the entire HTML document is requested. - name: htmlpost method: POST description: Get HTML Item Preview outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uniqueId in: query type: string description: The unique ID of the document. required: true - name: findNext in: query type: integer - name: findPrevious in: query type: integer - name: page in: query type: integer - name: enableNavigation in: query type: boolean - name: requestedOutputSize in: query type: integer description: The approximate number of bytes to request in the HTML response. **Default:** `0`, meaning that the entire HTML document is requested. - name: body in: body type: object description: Request body (JSON). required: true - name: rest-search-v2-login-provider path: /rest/search/v2/login/{provider} operations: - name: login method: GET description: Log in to Authentication Provider outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: provider in: path type: string description: The name of the Search API authentication provider to log in to. required: true - name: loginproviderpost method: POST description: Log in to Authentication Provider outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: provider in: path type: string description: The name of the Search API authentication provider to log in to. required: true - name: rest-search-v2-plan path: /rest/search/v2/plan operations: - name: plansearchusingget method: GET description: Plan Search Execution outputRawFormat: json outputParameters: - name: result type: object value: $. - name: plansearchusingpost method: POST description: Plan Search Execution outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: rest-search-v2-querySuggest path: /rest/search/v2/querySuggest operations: - name: querysuggestget method: GET description: Request Query Suggestions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: q in: query type: string description: The *basic query* expression, typically the keywords entered by the end user in a query box. - name: autoCompleter in: query type: string description: This parameter is exposed for backward compatibility reasons. - name: additionalData in: query type: string description: This parameter is exposed for backward compatibility reasons. - name: count in: query type: integer description: The desired number of query suggestions. - name: enableWordCompletion in: query type: boolean description: Whether to attempt to complete the last word of the current basic query expression (see the `q` parameter) and boost the ranking score of the resulting expressi - name: querysuggestpost method: POST description: Request Query Suggestions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: rest-search-v2-rating path: /rest/search/v2/rating operations: - name: rating method: POST description: Update User Rating outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: rating in: query type: string description: The rate to be updated. required: true - name: uniqueId in: query type: string description: The unique ID of the document. required: true - name: rest-search-v2-text path: /rest/search/v2/text operations: - name: text method: GET description: Get Item in Text Format outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: primaryId in: query type: string description: The primaryId of the document. Exactly one of uniqueId or primaryId is required. - name: uniqueId in: query type: string description: The uniqueId of the document. Exactly one of uniqueId or primaryId is required. - name: rest-search-v2-token path: /rest/search/v2/token operations: - name: token method: POST description: Create Search Token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: rest-search-v2-values path: /rest/search/v2/values operations: - name: valuesget method: GET description: Get Values for One Field outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: field in: query type: string description: The name of the field from which to retrieve values. required: true - name: lookupField in: query type: string description: This parameter is exposed for backward compatibility reasons. - name: ignoreAccents in: query type: boolean description: Whether to treat accentuated characters as non-accentuated characters when retrieving field values (e.g., treat `é`, `è`, `ê`, etc., as `e`). - name: sortCriteria in: query type: string description: The sort criteria to use. - name: maximumNumberOfValues in: query type: integer description: The maximum number of field values to return. - name: queryOverride in: query type: string description: A different basic query expression (q) use. - name: constantQueryOverride in: query type: string description: A different constant query expression (cq) to use. - name: disjunctionQueryOverride in: query type: string description: A different disjunction query expression (dq) to use. - name: pattern in: query type: string description: The pattern that the field values must match. - name: patternType in: query type: string description: The type of pattern that is being used to list field values. - name: valuespost method: POST description: Get Values for One Field outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: rest-search-v2-values-batch path: /rest/search/v2/values/batch operations: - name: valuesbatchget method: GET description: Get Values for Several Field outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: batch in: query type: string description: An array of parameters to retrieve field values. required: true - name: valuesbatchpost method: POST description: Get Values for Several Field outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true exposes: - type: rest namespace: search-search-v2-rest port: 8080 description: REST adapter for Coveo Search API — Search V2. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/search/v2 name: rest-search-v2 description: REST surface for rest-search-v2. operations: - method: GET name: searchusingget description: Send Search Request call: search-search-v2.searchusingget outputParameters: - type: object mapping: $. - method: POST name: searchusingpost description: Send Search Request call: search-search-v2.searchusingpost with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v2/datastream name: rest-search-v2-datastream description: REST surface for rest-search-v2-datastream. operations: - method: GET name: datastream description: Get Item Data Stream call: search-search-v2.datastream with: dataStream: rest.dataStream primaryId: rest.primaryId uniqueId: rest.uniqueId contentType: rest.contentType outputParameters: - type: object mapping: $. - path: /v1/search/v2/document name: rest-search-v2-document description: REST surface for rest-search-v2-document. operations: - method: GET name: document description: Get Item in JSON Format call: search-search-v2.document with: primaryId: rest.primaryId uniqueId: rest.uniqueId outputParameters: - type: object mapping: $. - path: /v1/search/v2/extensions name: rest-search-v2-extensions description: REST surface for rest-search-v2-extensions. operations: - method: GET name: extensions description: List Available Query Extensions call: search-search-v2.extensions outputParameters: - type: object mapping: $. - path: /v1/search/v2/facet name: rest-search-v2-facet description: REST surface for rest-search-v2-facet. operations: - method: POST name: facetsearch description: Send Facet Search Request call: search-search-v2.facetsearch with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v2/fields name: rest-search-v2-fields description: REST surface for rest-search-v2-fields. operations: - method: GET name: fields description: List All Fields call: search-search-v2.fields outputParameters: - type: object mapping: $. - path: /v1/search/v2/fields/find name: rest-search-v2-fields-find description: REST surface for rest-search-v2-fields-find. operations: - method: POST name: findfieldsfromexpression description: Find Fields from Results of a Query Expression call: search-search-v2.findfieldsfromexpression with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v2/html name: rest-search-v2-html description: REST surface for rest-search-v2-html. operations: - method: GET name: htmlget description: Get HTML Item Preview call: search-search-v2.htmlget with: uniqueId: rest.uniqueId primaryId: rest.primaryId findNext: rest.findNext findPrevious: rest.findPrevious page: rest.page enableNavigation: rest.enableNavigation requestedOutputSize: rest.requestedOutputSize outputParameters: - type: object mapping: $. - method: POST name: htmlpost description: Get HTML Item Preview call: search-search-v2.htmlpost with: uniqueId: rest.uniqueId findNext: rest.findNext findPrevious: rest.findPrevious page: rest.page enableNavigation: rest.enableNavigation requestedOutputSize: rest.requestedOutputSize body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v2/login/{provider} name: rest-search-v2-login-provider description: REST surface for rest-search-v2-login-provider. operations: - method: GET name: login description: Log in to Authentication Provider call: search-search-v2.login with: provider: rest.provider outputParameters: - type: object mapping: $. - method: POST name: loginproviderpost description: Log in to Authentication Provider call: search-search-v2.loginproviderpost with: provider: rest.provider outputParameters: - type: object mapping: $. - path: /v1/search/v2/plan name: rest-search-v2-plan description: REST surface for rest-search-v2-plan. operations: - method: GET name: plansearchusingget description: Plan Search Execution call: search-search-v2.plansearchusingget outputParameters: - type: object mapping: $. - method: POST name: plansearchusingpost description: Plan Search Execution call: search-search-v2.plansearchusingpost with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v2/querysuggest name: rest-search-v2-querysuggest description: REST surface for rest-search-v2-querySuggest. operations: - method: GET name: querysuggestget description: Request Query Suggestions call: search-search-v2.querysuggestget with: q: rest.q autoCompleter: rest.autoCompleter additionalData: rest.additionalData count: rest.count enableWordCompletion: rest.enableWordCompletion outputParameters: - type: object mapping: $. - method: POST name: querysuggestpost description: Request Query Suggestions call: search-search-v2.querysuggestpost with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v2/rating name: rest-search-v2-rating description: REST surface for rest-search-v2-rating. operations: - method: POST name: rating description: Update User Rating call: search-search-v2.rating with: rating: rest.rating uniqueId: rest.uniqueId outputParameters: - type: object mapping: $. - path: /v1/search/v2/text name: rest-search-v2-text description: REST surface for rest-search-v2-text. operations: - method: GET name: text description: Get Item in Text Format call: search-search-v2.text with: primaryId: rest.primaryId uniqueId: rest.uniqueId outputParameters: - type: object mapping: $. - path: /v1/search/v2/token name: rest-search-v2-token description: REST surface for rest-search-v2-token. operations: - method: POST name: token description: Create Search Token call: search-search-v2.token with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v2/values name: rest-search-v2-values description: REST surface for rest-search-v2-values. operations: - method: GET name: valuesget description: Get Values for One Field call: search-search-v2.valuesget with: field: rest.field lookupField: rest.lookupField ignoreAccents: rest.ignoreAccents sortCriteria: rest.sortCriteria maximumNumberOfValues: rest.maximumNumberOfValues queryOverride: rest.queryOverride constantQueryOverride: rest.constantQueryOverride disjunctionQueryOverride: rest.disjunctionQueryOverride pattern: rest.pattern patternType: rest.patternType outputParameters: - type: object mapping: $. - method: POST name: valuespost description: Get Values for One Field call: search-search-v2.valuespost with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v2/values/batch name: rest-search-v2-values-batch description: REST surface for rest-search-v2-values-batch. operations: - method: GET name: valuesbatchget description: Get Values for Several Field call: search-search-v2.valuesbatchget with: batch: rest.batch outputParameters: - type: object mapping: $. - method: POST name: valuesbatchpost description: Get Values for Several Field call: search-search-v2.valuesbatchpost with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: search-search-v2-mcp port: 9090 transport: http description: MCP adapter for Coveo Search API — Search V2. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: send-search-request description: Send Search Request hints: readOnly: true destructive: false idempotent: true call: search-search-v2.searchusingget outputParameters: - type: object mapping: $. - name: send-search-request-2 description: Send Search Request hints: readOnly: true destructive: false idempotent: false call: search-search-v2.searchusingpost with: body: tools.body outputParameters: - type: object mapping: $. - name: get-item-data-stream description: Get Item Data Stream hints: readOnly: true destructive: false idempotent: true call: search-search-v2.datastream with: dataStream: tools.dataStream primaryId: tools.primaryId uniqueId: tools.uniqueId contentType: tools.contentType outputParameters: - type: object mapping: $. - name: get-item-json-format description: Get Item in JSON Format hints: readOnly: true destructive: false idempotent: true call: search-search-v2.document with: primaryId: tools.primaryId uniqueId: tools.uniqueId outputParameters: - type: object mapping: $. - name: list-available-query-extensions description: List Available Query Extensions hints: readOnly: true destructive: false idempotent: true call: search-search-v2.extensions outputParameters: - type: object mapping: $. - name: send-facet-search-request description: Send Facet Search Request hints: readOnly: true destructive: false idempotent: false call: search-search-v2.facetsearch with: body: tools.body outputParameters: - type: object mapping: $. - name: list-all-fields description: List All Fields hints: readOnly: true destructive: false idempotent: true call: search-search-v2.fields outputParameters: - type: object mapping: $. - name: find-fields-results-query-expression description: Find Fields from Results of a Query Expression hints: readOnly: true destructive: false idempotent: false call: search-search-v2.findfieldsfromexpression with: body: tools.body outputParameters: - type: object mapping: $. - name: get-html-item-preview description: Get HTML Item Preview hints: readOnly: true destructive: false idempotent: true call: search-search-v2.htmlget with: uniqueId: tools.uniqueId primaryId: tools.primaryId findNext: tools.findNext findPrevious: tools.findPrevious page: tools.page enableNavigation: tools.enableNavigation requestedOutputSize: tools.requestedOutputSize outputParameters: - type: object mapping: $. - name: get-html-item-preview-2 description: Get HTML Item Preview hints: readOnly: true destructive: false idempotent: false call: search-search-v2.htmlpost with: uniqueId: tools.uniqueId findNext: tools.findNext findPrevious: tools.findPrevious page: tools.page enableNavigation: tools.enableNavigation requestedOutputSize: tools.requestedOutputSize body: tools.body outputParameters: - type: object mapping: $. - name: log-authentication-provider description: Log in to Authentication Provider hints: readOnly: true destructive: false idempotent: true call: search-search-v2.login with: provider: tools.provider outputParameters: - type: object mapping: $. - name: log-authentication-provider-2 description: Log in to Authentication Provider hints: readOnly: false destructive: false idempotent: false call: search-search-v2.loginproviderpost with: provider: tools.provider outputParameters: - type: object mapping: $. - name: plan-search-execution description: Plan Search Execution hints: readOnly: true destructive: false idempotent: true call: search-search-v2.plansearchusingget outputParameters: - type: object mapping: $. - name: plan-search-execution-2 description: Plan Search Execution hints: readOnly: true destructive: false idempotent: false call: search-search-v2.plansearchusingpost with: body: tools.body outputParameters: - type: object mapping: $. - name: request-query-suggestions description: Request Query Suggestions hints: readOnly: true destructive: false idempotent: true call: search-search-v2.querysuggestget with: q: tools.q autoCompleter: tools.autoCompleter additionalData: tools.additionalData count: tools.count enableWordCompletion: tools.enableWordCompletion outputParameters: - type: object mapping: $. - name: request-query-suggestions-2 description: Request Query Suggestions hints: readOnly: true destructive: false idempotent: false call: search-search-v2.querysuggestpost with: body: tools.body outputParameters: - type: object mapping: $. - name: update-user-rating description: Update User Rating hints: readOnly: false destructive: false idempotent: false call: search-search-v2.rating with: rating: tools.rating uniqueId: tools.uniqueId outputParameters: - type: object mapping: $. - name: get-item-text-format description: Get Item in Text Format hints: readOnly: true destructive: false idempotent: true call: search-search-v2.text with: primaryId: tools.primaryId uniqueId: tools.uniqueId outputParameters: - type: object mapping: $. - name: create-search-token description: Create Search Token hints: readOnly: true destructive: false idempotent: false call: search-search-v2.token with: body: tools.body outputParameters: - type: object mapping: $. - name: get-values-one-field description: Get Values for One Field hints: readOnly: true destructive: false idempotent: true call: search-search-v2.valuesget with: field: tools.field lookupField: tools.lookupField ignoreAccents: tools.ignoreAccents sortCriteria: tools.sortCriteria maximumNumberOfValues: tools.maximumNumberOfValues queryOverride: tools.queryOverride constantQueryOverride: tools.constantQueryOverride disjunctionQueryOverride: tools.disjunctionQueryOverride pattern: tools.pattern patternType: tools.patternType outputParameters: - type: object mapping: $. - name: get-values-one-field-2 description: Get Values for One Field hints: readOnly: true destructive: false idempotent: false call: search-search-v2.valuespost with: body: tools.body outputParameters: - type: object mapping: $. - name: get-values-several-field description: Get Values for Several Field hints: readOnly: true destructive: false idempotent: true call: search-search-v2.valuesbatchget with: batch: tools.batch outputParameters: - type: object mapping: $. - name: get-values-several-field-2 description: Get Values for Several Field hints: readOnly: true destructive: false idempotent: false call: search-search-v2.valuesbatchpost with: body: tools.body outputParameters: - type: object mapping: $.