Fake Store API · Capability

Fake Store API

Fake Store API exposes a sample REST API for e-commerce data including products, carts, users, and authentication. It is intended for prototyping, teaching, and integration testing — write operations return fabricated responses and do not persist data on the server.

Run with Naftiko FakeStoreApiAPI

What You Can Do

GET
Listproducts — List products
/products
POST
Createproduct — Create a product
/products
GET
Getproduct — Get a product
/products/{id}
PUT
Replaceproduct — Replace a product
/products/{id}
PATCH
Updateproduct — Partially update a product
/products/{id}
DELETE
Deleteproduct — Delete a product
/products/{id}
GET
Listcategories — List product categories
/products/categories
GET
Listproductsbycategory — List products in a category
/products/category/{category}
GET
Listcarts — List carts
/carts
POST
Createcart — Create a cart
/carts
GET
Getcart — Get a cart
/carts/{id}
PUT
Replacecart — Replace a cart
/carts/{id}
PATCH
Updatecart — Partially update a cart
/carts/{id}
DELETE
Deletecart — Delete a cart
/carts/{id}
GET
Listcartsbyuser — List carts for a user
/carts/user/{userId}
GET
Listusers — List users
/users
POST
Createuser — Create a user
/users
GET
Getuser — Get a user
/users/{id}
PUT
Replaceuser — Replace a user
/users/{id}
PATCH
Updateuser — Partially update a user
/users/{id}
DELETE
Deleteuser — Delete a user
/users/{id}
POST
Login — Login
/auth/login

MCP Tools

listproducts

List products

read-only idempotent
createproduct

Create a product

getproduct

Get a product

read-only idempotent
replaceproduct

Replace a product

idempotent
updateproduct

Partially update a product

deleteproduct

Delete a product

idempotent
listcategories

List product categories

read-only idempotent
listproductsbycategory

List products in a category

read-only idempotent
listcarts

List carts

read-only idempotent
createcart

Create a cart

getcart

Get a cart

read-only idempotent
replacecart

Replace a cart

idempotent
updatecart

Partially update a cart

deletecart

Delete a cart

idempotent
listcartsbyuser

List carts for a user

read-only idempotent
listusers

List users

read-only idempotent
createuser

Create a user

getuser

Get a user

read-only idempotent
replaceuser

Replace a user

idempotent
updateuser

Partially update a user

deleteuser

Delete a user

idempotent
login

Login

Capability Spec

fake-store-api-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Fake Store API
  description: Fake Store API exposes a sample REST API for e-commerce data including products, carts, users, and authentication.
    It is intended for prototyping, teaching, and integration testing — write operations return fabricated responses and do
    not persist data on the server.
  tags:
  - Fake
  - Store
  - Api
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: fake-store-api
    baseUri: https://fakestoreapi.com
    description: Fake Store API HTTP API.
    resources:
    - name: products
      path: /products
      operations:
      - name: listproducts
        method: GET
        description: List products
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createproduct
        method: POST
        description: Create a product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: products-id
      path: /products/{id}
      operations:
      - name: getproduct
        method: GET
        description: Get a product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: replaceproduct
        method: PUT
        description: Replace a product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateproduct
        method: PATCH
        description: Partially update a product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteproduct
        method: DELETE
        description: Delete a product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: products-categories
      path: /products/categories
      operations:
      - name: listcategories
        method: GET
        description: List product categories
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: products-category-category
      path: /products/category/{category}
      operations:
      - name: listproductsbycategory
        method: GET
        description: List products in a category
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: carts
      path: /carts
      operations:
      - name: listcarts
        method: GET
        description: List carts
        inputParameters:
        - name: startdate
          in: query
          type: string
          description: Start date for filtering carts
        - name: enddate
          in: query
          type: string
          description: End date for filtering carts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createcart
        method: POST
        description: Create a cart
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: carts-id
      path: /carts/{id}
      operations:
      - name: getcart
        method: GET
        description: Get a cart
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: replacecart
        method: PUT
        description: Replace a cart
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatecart
        method: PATCH
        description: Partially update a cart
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletecart
        method: DELETE
        description: Delete a cart
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: carts-user-userid
      path: /carts/user/{userId}
      operations:
      - name: listcartsbyuser
        method: GET
        description: List carts for a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users
      path: /users
      operations:
      - name: listusers
        method: GET
        description: List users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createuser
        method: POST
        description: Create a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-id
      path: /users/{id}
      operations:
      - name: getuser
        method: GET
        description: Get a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: replaceuser
        method: PUT
        description: Replace a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateuser
        method: PATCH
        description: Partially update a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteuser
        method: DELETE
        description: Delete a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: auth-login
      path: /auth/login
      operations:
      - name: login
        method: POST
        description: Login
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: fake-store-api-rest
    description: REST adapter for Fake Store API.
    resources:
    - path: /products
      name: listproducts
      operations:
      - method: GET
        name: listproducts
        description: List products
        call: fake-store-api.listproducts
        outputParameters:
        - type: object
          mapping: $.
    - path: /products
      name: createproduct
      operations:
      - method: POST
        name: createproduct
        description: Create a product
        call: fake-store-api.createproduct
        outputParameters:
        - type: object
          mapping: $.
    - path: /products/{id}
      name: getproduct
      operations:
      - method: GET
        name: getproduct
        description: Get a product
        call: fake-store-api.getproduct
        outputParameters:
        - type: object
          mapping: $.
    - path: /products/{id}
      name: replaceproduct
      operations:
      - method: PUT
        name: replaceproduct
        description: Replace a product
        call: fake-store-api.replaceproduct
        outputParameters:
        - type: object
          mapping: $.
    - path: /products/{id}
      name: updateproduct
      operations:
      - method: PATCH
        name: updateproduct
        description: Partially update a product
        call: fake-store-api.updateproduct
        outputParameters:
        - type: object
          mapping: $.
    - path: /products/{id}
      name: deleteproduct
      operations:
      - method: DELETE
        name: deleteproduct
        description: Delete a product
        call: fake-store-api.deleteproduct
        outputParameters:
        - type: object
          mapping: $.
    - path: /products/categories
      name: listcategories
      operations:
      - method: GET
        name: listcategories
        description: List product categories
        call: fake-store-api.listcategories
        outputParameters:
        - type: object
          mapping: $.
    - path: /products/category/{category}
      name: listproductsbycategory
      operations:
      - method: GET
        name: listproductsbycategory
        description: List products in a category
        call: fake-store-api.listproductsbycategory
        outputParameters:
        - type: object
          mapping: $.
    - path: /carts
      name: listcarts
      operations:
      - method: GET
        name: listcarts
        description: List carts
        call: fake-store-api.listcarts
        outputParameters:
        - type: object
          mapping: $.
    - path: /carts
      name: createcart
      operations:
      - method: POST
        name: createcart
        description: Create a cart
        call: fake-store-api.createcart
        outputParameters:
        - type: object
          mapping: $.
    - path: /carts/{id}
      name: getcart
      operations:
      - method: GET
        name: getcart
        description: Get a cart
        call: fake-store-api.getcart
        outputParameters:
        - type: object
          mapping: $.
    - path: /carts/{id}
      name: replacecart
      operations:
      - method: PUT
        name: replacecart
        description: Replace a cart
        call: fake-store-api.replacecart
        outputParameters:
        - type: object
          mapping: $.
    - path: /carts/{id}
      name: updatecart
      operations:
      - method: PATCH
        name: updatecart
        description: Partially update a cart
        call: fake-store-api.updatecart
        outputParameters:
        - type: object
          mapping: $.
    - path: /carts/{id}
      name: deletecart
      operations:
      - method: DELETE
        name: deletecart
        description: Delete a cart
        call: fake-store-api.deletecart
        outputParameters:
        - type: object
          mapping: $.
    - path: /carts/user/{userId}
      name: listcartsbyuser
      operations:
      - method: GET
        name: listcartsbyuser
        description: List carts for a user
        call: fake-store-api.listcartsbyuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /users
      name: listusers
      operations:
      - method: GET
        name: listusers
        description: List users
        call: fake-store-api.listusers
        outputParameters:
        - type: object
          mapping: $.
    - path: /users
      name: createuser
      operations:
      - method: POST
        name: createuser
        description: Create a user
        call: fake-store-api.createuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{id}
      name: getuser
      operations:
      - method: GET
        name: getuser
        description: Get a user
        call: fake-store-api.getuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{id}
      name: replaceuser
      operations:
      - method: PUT
        name: replaceuser
        description: Replace a user
        call: fake-store-api.replaceuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{id}
      name: updateuser
      operations:
      - method: PATCH
        name: updateuser
        description: Partially update a user
        call: fake-store-api.updateuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{id}
      name: deleteuser
      operations:
      - method: DELETE
        name: deleteuser
        description: Delete a user
        call: fake-store-api.deleteuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /auth/login
      name: login
      operations:
      - method: POST
        name: login
        description: Login
        call: fake-store-api.login
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: fake-store-api-mcp
    transport: http
    description: MCP adapter for Fake Store API for AI agent use.
    tools:
    - name: listproducts
      description: List products
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fake-store-api.listproducts
      outputParameters:
      - type: object
        mapping: $.
    - name: createproduct
      description: Create a product
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: fake-store-api.createproduct
      outputParameters:
      - type: object
        mapping: $.
    - name: getproduct
      description: Get a product
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fake-store-api.getproduct
      outputParameters:
      - type: object
        mapping: $.
    - name: replaceproduct
      description: Replace a product
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: fake-store-api.replaceproduct
      outputParameters:
      - type: object
        mapping: $.
    - name: updateproduct
      description: Partially update a product
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: fake-store-api.updateproduct
      outputParameters:
      - type: object
        mapping: $.
    - name: deleteproduct
      description: Delete a product
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: fake-store-api.deleteproduct
      outputParameters:
      - type: object
        mapping: $.
    - name: listcategories
      description: List product categories
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fake-store-api.listcategories
      outputParameters:
      - type: object
        mapping: $.
    - name: listproductsbycategory
      description: List products in a category
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fake-store-api.listproductsbycategory
      outputParameters:
      - type: object
        mapping: $.
    - name: listcarts
      description: List carts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fake-store-api.listcarts
      with:
        startdate: tools.startdate
        enddate: tools.enddate
      inputParameters:
      - name: startdate
        type: string
        description: Start date for filtering carts
      - name: enddate
        type: string
        description: End date for filtering carts
      outputParameters:
      - type: object
        mapping: $.
    - name: createcart
      description: Create a cart
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: fake-store-api.createcart
      outputParameters:
      - type: object
        mapping: $.
    - name: getcart
      description: Get a cart
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fake-store-api.getcart
      outputParameters:
      - type: object
        mapping: $.
    - name: replacecart
      description: Replace a cart
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: fake-store-api.replacecart
      outputParameters:
      - type: object
        mapping: $.
    - name: updatecart
      description: Partially update a cart
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: fake-store-api.updatecart
      outputParameters:
      - type: object
        mapping: $.
    - name: deletecart
      description: Delete a cart
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: fake-store-api.deletecart
      outputParameters:
      - type: object
        mapping: $.
    - name: listcartsbyuser
      description: List carts for a user
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fake-store-api.listcartsbyuser
      outputParameters:
      - type: object
        mapping: $.
    - name: listusers
      description: List users
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fake-store-api.listusers
      outputParameters:
      - type: object
        mapping: $.
    - name: createuser
      description: Create a user
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: fake-store-api.createuser
      outputParameters:
      - type: object
        mapping: $.
    - name: getuser
      description: Get a user
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fake-store-api.getuser
      outputParameters:
      - type: object
        mapping: $.
    - name: replaceuser
      description: Replace a user
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: fake-store-api.replaceuser
      outputParameters:
      - type: object
        mapping: $.
    - name: updateuser
      description: Partially update a user
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: fake-store-api.updateuser
      outputParameters:
      - type: object
        mapping: $.
    - name: deleteuser
      description: Delete a user
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: fake-store-api.deleteuser
      outputParameters:
      - type: object
        mapping: $.
    - name: login
      description: Login
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: fake-store-api.login
      outputParameters:
      - type: object
        mapping: $.