naftiko: 1.0.0-alpha2 info: label: LangWatch Suites API description: 'Compose and execute batch test suites combining scenarios, datasets, and evaluators. Self-contained Naftiko capability covering one LangWatch business surface.' tags: - LangWatch - Suites - Experiments created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: LANGWATCH_API_KEY: LANGWATCH_API_KEY capability: consumes: - type: http namespace: suites baseUri: https://app.langwatch.ai description: Compose and execute batch test suites combining scenarios, datasets, and evaluators. resources: - name: api-suites path: /api/suites operations: - name: listSuites method: GET description: List suites. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createSuite method: POST description: Create a suite. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: api-suites-id path: /api/suites/{id} operations: - name: getSuite method: GET description: Retrieve a suite. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: updateSuite method: PATCH description: Update a suite. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: false - name: deleteSuite method: DELETE description: Delete a suite. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: api-suites-id-duplicate path: /api/suites/{id}/duplicate operations: - name: duplicateSuite method: POST description: Duplicate a suite. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: false - name: api-suites-id-run path: /api/suites/{id}/run operations: - name: runSuite method: POST description: Run a suite. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: false authentication: type: bearer value: '{{env.LANGWATCH_API_KEY}}' placement: header exposes: - type: rest namespace: suites-rest port: 8080 description: REST adapter for LangWatch Suites API. resources: - path: /v1/api/suites name: listsuites-resource description: REST surface for listSuites. operations: - method: GET name: listSuites description: List suites. call: suites.listSuites outputParameters: - type: object mapping: $. - path: /v1/api/suites name: createsuite-resource description: REST surface for createSuite. operations: - method: POST name: createSuite description: Create a suite. call: suites.createSuite with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/suites/{id} name: getsuite-resource description: REST surface for getSuite. operations: - method: GET name: getSuite description: Retrieve a suite. call: suites.getSuite with: id: rest.path.id outputParameters: - type: object mapping: $. - path: /v1/api/suites/{id} name: updatesuite-resource description: REST surface for updateSuite. operations: - method: PATCH name: updateSuite description: Update a suite. call: suites.updateSuite with: id: rest.path.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/suites/{id} name: deletesuite-resource description: REST surface for deleteSuite. operations: - method: DELETE name: deleteSuite description: Delete a suite. call: suites.deleteSuite with: id: rest.path.id outputParameters: - type: object mapping: $. - path: /v1/api/suites/{id}/duplicate name: duplicatesuite-resource description: REST surface for duplicateSuite. operations: - method: POST name: duplicateSuite description: Duplicate a suite. call: suites.duplicateSuite with: id: rest.path.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/suites/{id}/run name: runsuite-resource description: REST surface for runSuite. operations: - method: POST name: runSuite description: Run a suite. call: suites.runSuite with: id: rest.path.id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: suites-mcp port: 9090 transport: http description: MCP adapter for LangWatch Suites API. One tool per consumed operation. tools: - name: langwatch-listSuites description: List suites. hints: readOnly: true destructive: false idempotent: true call: suites.listSuites outputParameters: - type: object mapping: $. - name: langwatch-createSuite description: Create a suite. hints: readOnly: false destructive: false idempotent: false call: suites.createSuite with: body: tools.body outputParameters: - type: object mapping: $. - name: langwatch-getSuite description: Retrieve a suite. hints: readOnly: true destructive: false idempotent: true call: suites.getSuite with: id: tools.id outputParameters: - type: object mapping: $. - name: langwatch-updateSuite description: Update a suite. hints: readOnly: false destructive: false idempotent: false call: suites.updateSuite with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: langwatch-deleteSuite description: Delete a suite. hints: readOnly: false destructive: true idempotent: true call: suites.deleteSuite with: id: tools.id outputParameters: - type: object mapping: $. - name: langwatch-duplicateSuite description: Duplicate a suite. hints: readOnly: false destructive: false idempotent: false call: suites.duplicateSuite with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: langwatch-runSuite description: Run a suite. hints: readOnly: false destructive: false idempotent: false call: suites.runSuite with: id: tools.id body: tools.body outputParameters: - type: object mapping: $.