naftiko: 1.0.0-alpha2 info: label: Tropic API — Requests description: 'Tropic API — Requests. 5 operations. Lead operation: List Requests. Self-contained Naftiko capability covering one Tropic business surface.' tags: - Tropic - Requests created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: TROPIC_API_KEY: TROPIC_API_KEY capability: consumes: - type: http namespace: tropic-requests baseUri: https://api.tropicapp.io/v1 description: Tropic API — Requests business capability. Self-contained, no shared references. resources: - name: requests path: /requests operations: - name: listrequests method: GET description: List Requests outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page in: query type: integer - name: per_page in: query type: integer - name: status in: query type: string description: Filter by request status - name: createrequest method: POST description: Create Request outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: requests-id path: /requests/{id} operations: - name: getrequest method: GET description: Get Request outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: requests-id-approve path: /requests/{id}/approve operations: - name: approverequest method: POST description: Approve Request 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: requests-id-reject path: /requests/{id}/reject operations: - name: rejectrequest method: POST description: Reject Request 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 token: '{{env.TROPIC_API_KEY}}' exposes: - type: rest namespace: tropic-requests-rest port: 8080 description: REST adapter for Tropic API — Requests. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/requests name: requests description: REST surface for requests. operations: - method: GET name: listrequests description: List Requests call: tropic-requests.listrequests with: page: rest.page per_page: rest.per_page status: rest.status outputParameters: - type: object mapping: $. - method: POST name: createrequest description: Create Request call: tropic-requests.createrequest with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/requests/{id} name: requests-id description: REST surface for requests-id. operations: - method: GET name: getrequest description: Get Request call: tropic-requests.getrequest with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/requests/{id}/approve name: requests-id-approve description: REST surface for requests-id-approve. operations: - method: POST name: approverequest description: Approve Request call: tropic-requests.approverequest with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/requests/{id}/reject name: requests-id-reject description: REST surface for requests-id-reject. operations: - method: POST name: rejectrequest description: Reject Request call: tropic-requests.rejectrequest with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: tropic-requests-mcp port: 9090 transport: http description: MCP adapter for Tropic API — Requests. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-requests description: List Requests hints: readOnly: true destructive: false idempotent: true call: tropic-requests.listrequests with: page: tools.page per_page: tools.per_page status: tools.status outputParameters: - type: object mapping: $. - name: create-request description: Create Request hints: readOnly: false destructive: false idempotent: false call: tropic-requests.createrequest with: body: tools.body outputParameters: - type: object mapping: $. - name: get-request description: Get Request hints: readOnly: true destructive: false idempotent: true call: tropic-requests.getrequest with: id: tools.id outputParameters: - type: object mapping: $. - name: approve-request description: Approve Request hints: readOnly: false destructive: false idempotent: false call: tropic-requests.approverequest with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: reject-request description: Reject Request hints: readOnly: false destructive: false idempotent: false call: tropic-requests.rejectrequest with: id: tools.id body: tools.body outputParameters: - type: object mapping: $.