Furniture API · Capability
Furniture API — Products
Furniture API — Products. 5 operations. Lead operation: List products. Self-contained Naftiko capability covering one Furniture Api business surface.
What You Can Do
GET
Listproducts
— List products
/v1/v1/products
PATCH
Updatestock
— Update stock levels
/v1/v1/products/stock
GET
Getproductbysku
— Get product by SKU
/v1/v1/products/{sku}
PATCH
Applydiscount
— Apply product discount
/v1/v1/products/{sku}/discount
PATCH
Togglefeatured
— Toggle featured status
/v1/v1/products/{sku}/featured
MCP Tools
list-products
List products
read-only
idempotent
update-stock-levels
Update stock levels
idempotent
get-product-sku
Get product by SKU
read-only
idempotent
apply-product-discount
Apply product discount
idempotent
toggle-featured-status
Toggle featured status
idempotent
Capability Spec
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: $.