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.

Run with Naftiko Furniture ApiProducts

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

furniture-products.yaml Raw ↑
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: $.