naftiko: 1.0.0-alpha2 info: label: Furniture API — Products description: 'Furniture API — Products. 5 operations. Lead operation: List products. Self-contained Naftiko capability covering one Furniture Api business surface.' tags: - Furniture Api - Products created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FURNITURE_API_API_KEY: FURNITURE_API_API_KEY capability: consumes: - type: http namespace: furniture-products baseUri: https://furniture-api.fly.dev description: Furniture API — Products business capability. Self-contained, no shared references. resources: - name: v1-products path: /v1/products operations: - name: listproducts method: GET description: List products outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: category in: query type: string description: Filter products by category. - name: minPrice in: query type: number description: Minimum price filter. - name: maxPrice in: query type: number description: Maximum price filter. - name: woodType in: query type: string description: Filter products by wood type. - name: page in: query type: integer description: Page number for pagination. - name: limit in: query type: integer description: Number of items returned per page. - name: v1-products-stock path: /v1/products/stock operations: - name: updatestock method: PATCH description: Update stock levels outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-products-sku path: /v1/products/{sku} operations: - name: getproductbysku method: GET description: Get product by SKU outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sku in: path type: string description: The unique stock keeping unit (SKU) for the product. required: true - name: v1-products-sku-discount path: /v1/products/{sku}/discount operations: - name: applydiscount method: PATCH description: Apply product discount outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sku in: path type: string description: The SKU of the product to discount. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-products-sku-featured path: /v1/products/{sku}/featured operations: - name: togglefeatured method: PATCH description: Toggle featured status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sku in: path type: string description: The SKU of the product to update. required: true - name: body in: body type: object description: Request body (JSON). required: false exposes: - type: rest namespace: furniture-products-rest port: 8080 description: REST adapter for Furniture API — Products. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/products name: v1-products description: REST surface for v1-products. operations: - method: GET name: listproducts description: List products call: furniture-products.listproducts with: category: rest.category minPrice: rest.minPrice maxPrice: rest.maxPrice woodType: rest.woodType page: rest.page limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/v1/products/stock name: v1-products-stock description: REST surface for v1-products-stock. operations: - method: PATCH name: updatestock description: Update stock levels call: furniture-products.updatestock with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/products/{sku} name: v1-products-sku description: REST surface for v1-products-sku. operations: - method: GET name: getproductbysku description: Get product by SKU call: furniture-products.getproductbysku with: sku: rest.sku outputParameters: - type: object mapping: $. - path: /v1/v1/products/{sku}/discount name: v1-products-sku-discount description: REST surface for v1-products-sku-discount. operations: - method: PATCH name: applydiscount description: Apply product discount call: furniture-products.applydiscount with: sku: rest.sku body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/products/{sku}/featured name: v1-products-sku-featured description: REST surface for v1-products-sku-featured. operations: - method: PATCH name: togglefeatured description: Toggle featured status call: furniture-products.togglefeatured with: sku: rest.sku body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: furniture-products-mcp port: 9090 transport: http description: MCP adapter for Furniture API — Products. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-products description: List products hints: readOnly: true destructive: false idempotent: true call: furniture-products.listproducts with: category: tools.category minPrice: tools.minPrice maxPrice: tools.maxPrice woodType: tools.woodType page: tools.page limit: tools.limit outputParameters: - type: object mapping: $. - name: update-stock-levels description: Update stock levels hints: readOnly: false destructive: false idempotent: true call: furniture-products.updatestock with: body: tools.body outputParameters: - type: object mapping: $. - name: get-product-sku description: Get product by SKU hints: readOnly: true destructive: false idempotent: true call: furniture-products.getproductbysku with: sku: tools.sku outputParameters: - type: object mapping: $. - name: apply-product-discount description: Apply product discount hints: readOnly: false destructive: false idempotent: true call: furniture-products.applydiscount with: sku: tools.sku body: tools.body outputParameters: - type: object mapping: $. - name: toggle-featured-status description: Toggle featured status hints: readOnly: false destructive: false idempotent: true call: furniture-products.togglefeatured with: sku: tools.sku body: tools.body outputParameters: - type: object mapping: $.