naftiko: 1.0.0-alpha2 info: label: Tropic API — Contracts description: 'Tropic API — Contracts. 5 operations. Lead operation: List Contracts. Self-contained Naftiko capability covering one Tropic business surface.' tags: - Tropic - Contracts created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: TROPIC_API_KEY: TROPIC_API_KEY capability: consumes: - type: http namespace: tropic-contracts baseUri: https://api.tropicapp.io/v1 description: Tropic API — Contracts business capability. Self-contained, no shared references. resources: - name: contracts path: /contracts operations: - name: listcontracts method: GET description: List Contracts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page in: query type: integer description: Page number for pagination - name: per_page in: query type: integer description: Number of results per page - name: status in: query type: string description: Filter by contract status - name: supplier_id in: query type: string description: Filter by supplier ID - name: createcontract method: POST description: Create Contract outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: contracts-id path: /contracts/{id} operations: - name: getcontract method: GET description: Get Contract outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Contract ID required: true - name: updatecontract method: PUT description: Update Contract 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: true - name: deletecontract method: DELETE description: Delete Contract outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true authentication: type: bearer token: '{{env.TROPIC_API_KEY}}' exposes: - type: rest namespace: tropic-contracts-rest port: 8080 description: REST adapter for Tropic API — Contracts. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/contracts name: contracts description: REST surface for contracts. operations: - method: GET name: listcontracts description: List Contracts call: tropic-contracts.listcontracts with: page: rest.page per_page: rest.per_page status: rest.status supplier_id: rest.supplier_id outputParameters: - type: object mapping: $. - method: POST name: createcontract description: Create Contract call: tropic-contracts.createcontract with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/contracts/{id} name: contracts-id description: REST surface for contracts-id. operations: - method: GET name: getcontract description: Get Contract call: tropic-contracts.getcontract with: id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: updatecontract description: Update Contract call: tropic-contracts.updatecontract with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletecontract description: Delete Contract call: tropic-contracts.deletecontract with: id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: tropic-contracts-mcp port: 9090 transport: http description: MCP adapter for Tropic API — Contracts. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-contracts description: List Contracts hints: readOnly: true destructive: false idempotent: true call: tropic-contracts.listcontracts with: page: tools.page per_page: tools.per_page status: tools.status supplier_id: tools.supplier_id outputParameters: - type: object mapping: $. - name: create-contract description: Create Contract hints: readOnly: false destructive: false idempotent: false call: tropic-contracts.createcontract with: body: tools.body outputParameters: - type: object mapping: $. - name: get-contract description: Get Contract hints: readOnly: true destructive: false idempotent: true call: tropic-contracts.getcontract with: id: tools.id outputParameters: - type: object mapping: $. - name: update-contract description: Update Contract hints: readOnly: false destructive: false idempotent: true call: tropic-contracts.updatecontract with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: delete-contract description: Delete Contract hints: readOnly: false destructive: true idempotent: true call: tropic-contracts.deletecontract with: id: tools.id outputParameters: - type: object mapping: $.