Shopify · Capability

Shopify Commerce Management

Unified commerce management capability for Shopify stores covering products, orders, customers, and inventory

Run with Naftiko CommerceShopifyEcommerceRetailInventory

What You Can Do

GET
List products — List products with optional filters
/v1/products
POST
Create product — Create a new product
/v1/products
GET
List orders — List orders with filters
/v1/orders
POST
Create order — Create a new order
/v1/orders
GET
List customers — List customers
/v1/customers
POST
Create customer — Create a new customer
/v1/customers
GET
List collections — List product collections
/v1/collections
GET
List inventory levels — List inventory levels across locations
/v1/inventory
POST
Adjust inventory — Adjust inventory at a location
/v1/inventory
GET
List fulfillments — List fulfillments for an order
/v1/fulfillments
POST
Create fulfillment — Fulfill an order
/v1/fulfillments
GET
List webhooks — List webhook subscriptions
/v1/webhooks
POST
Create webhook — Create a webhook subscription
/v1/webhooks

MCP Tools

list-products

List Shopify store products with optional filters for status, vendor, and product type

read-only
create-product

Create a new product listing in the Shopify store

list-orders

List Shopify orders with filters for status, financial status, and fulfillment status

read-only
create-order

Create a new order in the Shopify store

list-customers

List Shopify customers with optional email filter

read-only
create-customer

Create a new customer record in the Shopify store

list-collections

List custom product collections in the Shopify store

read-only
list-inventory-levels

List inventory levels for products across store locations

read-only
adjust-inventory

Adjust inventory quantity for a product variant at a specific location

list-fulfillments

List fulfillment records for a specific order

read-only
create-fulfillment

Create a fulfillment record to mark order items as shipped

list-webhooks

List all webhook subscriptions configured for the store

read-only
create-webhook

Create a webhook subscription to receive real-time store event notifications

Capability Spec

commerce-management.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Shopify Commerce Management"
  description: "Unified commerce management capability for Shopify stores covering products, orders, customers, and inventory"
  tags:
    - Commerce
    - Shopify
    - Ecommerce
    - Retail
    - Inventory
  created: "2026-05-02"
  modified: "2026-05-02"

imports:
  - ./shared/admin-rest.yaml

binds:
  - namespace: env
    keys:
      SHOPIFY_ACCESS_TOKEN: SHOPIFY_ACCESS_TOKEN
      SHOPIFY_STORE: SHOPIFY_STORE

capability:
  exposes:
    - type: rest
      port: 8080
      namespace: shopify-commerce-rest
      resources:
        - path: /v1/products
          name: products
          description: "Manage store products"
          operations:
            - method: GET
              name: list-products
              description: "List products with optional filters"
              call: "shopify-admin.list-products"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-product
              description: "Create a new product"
              call: "shopify-admin.create-product"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/orders
          name: orders
          description: "Manage customer orders"
          operations:
            - method: GET
              name: list-orders
              description: "List orders with filters"
              call: "shopify-admin.list-orders"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-order
              description: "Create a new order"
              call: "shopify-admin.create-order"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/customers
          name: customers
          description: "Manage customer records"
          operations:
            - method: GET
              name: list-customers
              description: "List customers"
              call: "shopify-admin.list-customers"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-customer
              description: "Create a new customer"
              call: "shopify-admin.create-customer"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/collections
          name: collections
          description: "Manage product collections"
          operations:
            - method: GET
              name: list-collections
              description: "List product collections"
              call: "shopify-admin.list-collections"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/inventory
          name: inventory
          description: "Manage inventory levels"
          operations:
            - method: GET
              name: list-inventory-levels
              description: "List inventory levels across locations"
              call: "shopify-admin.list-inventory-levels"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: adjust-inventory
              description: "Adjust inventory at a location"
              call: "shopify-admin.adjust-inventory"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/fulfillments
          name: fulfillments
          description: "Manage order fulfillments"
          operations:
            - method: GET
              name: list-fulfillments
              description: "List fulfillments for an order"
              call: "shopify-admin.list-fulfillments"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-fulfillment
              description: "Fulfill an order"
              call: "shopify-admin.create-fulfillment"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/webhooks
          name: webhooks
          description: "Manage webhook subscriptions"
          operations:
            - method: GET
              name: list-webhooks
              description: "List webhook subscriptions"
              call: "shopify-admin.list-webhooks"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-webhook
              description: "Create a webhook subscription"
              call: "shopify-admin.create-webhook"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9090
      namespace: shopify-commerce-mcp
      transport: http
      tools:
        - name: list-products
          description: "List Shopify store products with optional filters for status, vendor, and product type"
          hints:
            readOnly: true
          call: "shopify-admin.list-products"
          inputParameters:
            - name: limit
              type: integer
              description: "Maximum number of products to return (max 250)"
            - name: status
              type: string
              description: "Filter by status: active, draft, or archived"
            - name: vendor
              type: string
              description: "Filter products by vendor name"
            - name: product_type
              type: string
              description: "Filter products by product type"
          outputParameters:
            - type: object
              mapping: "$."
        - name: create-product
          description: "Create a new product listing in the Shopify store"
          hints:
            readOnly: false
          call: "shopify-admin.create-product"
          inputParameters:
            - name: title
              type: string
              description: "Product title"
            - name: vendor
              type: string
              description: "Product vendor or brand"
            - name: product_type
              type: string
              description: "Product category or type"
            - name: status
              type: string
              description: "Product status: active, draft, or archived"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-orders
          description: "List Shopify orders with filters for status, financial status, and fulfillment status"
          hints:
            readOnly: true
          call: "shopify-admin.list-orders"
          inputParameters:
            - name: status
              type: string
              description: "Order status: open, closed, cancelled, or any"
            - name: financial_status
              type: string
              description: "Payment status: pending, authorized, paid, refunded, etc."
            - name: fulfillment_status
              type: string
              description: "Fulfillment status: fulfilled, partial, or null for unfulfilled"
            - name: limit
              type: integer
              description: "Maximum number of orders to return"
            - name: created_at_min
              type: string
              description: "Return orders created after this date (ISO 8601)"
          outputParameters:
            - type: object
              mapping: "$."
        - name: create-order
          description: "Create a new order in the Shopify store"
          hints:
            readOnly: false
          call: "shopify-admin.create-order"
          inputParameters:
            - name: email
              type: string
              description: "Customer email address"
            - name: line_items
              type: array
              description: "Array of line items with variant_id and quantity"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-customers
          description: "List Shopify customers with optional email filter"
          hints:
            readOnly: true
          call: "shopify-admin.list-customers"
          inputParameters:
            - name: limit
              type: integer
              description: "Maximum number of customers to return"
            - name: email
              type: string
              description: "Filter customers by email address"
          outputParameters:
            - type: object
              mapping: "$."
        - name: create-customer
          description: "Create a new customer record in the Shopify store"
          hints:
            readOnly: false
          call: "shopify-admin.create-customer"
          inputParameters:
            - name: first_name
              type: string
              description: "Customer first name"
            - name: last_name
              type: string
              description: "Customer last name"
            - name: email
              type: string
              description: "Customer email address"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-collections
          description: "List custom product collections in the Shopify store"
          hints:
            readOnly: true
          call: "shopify-admin.list-collections"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-inventory-levels
          description: "List inventory levels for products across store locations"
          hints:
            readOnly: true
          call: "shopify-admin.list-inventory-levels"
          inputParameters:
            - name: inventory_item_ids
              type: string
              description: "Comma-separated list of inventory item IDs"
            - name: location_ids
              type: string
              description: "Comma-separated list of location IDs"
          outputParameters:
            - type: object
              mapping: "$."
        - name: adjust-inventory
          description: "Adjust inventory quantity for a product variant at a specific location"
          hints:
            readOnly: false
          call: "shopify-admin.adjust-inventory"
          inputParameters:
            - name: location_id
              type: integer
              description: "ID of the location to adjust inventory at"
            - name: inventory_item_id
              type: integer
              description: "ID of the inventory item to adjust"
            - name: adjustment
              type: integer
              description: "Quantity to add (positive) or remove (negative)"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-fulfillments
          description: "List fulfillment records for a specific order"
          hints:
            readOnly: true
          call: "shopify-admin.list-fulfillments"
          inputParameters:
            - name: order_id
              type: integer
              description: "ID of the order to list fulfillments for"
              required: true
          outputParameters:
            - type: object
              mapping: "$."
        - name: create-fulfillment
          description: "Create a fulfillment record to mark order items as shipped"
          hints:
            readOnly: false
          call: "shopify-admin.create-fulfillment"
          inputParameters:
            - name: location_id
              type: integer
              description: "ID of the fulfillment location"
            - name: tracking_number
              type: string
              description: "Shipment tracking number"
            - name: tracking_company
              type: string
              description: "Shipping carrier name"
            - name: notify_customer
              type: boolean
              description: "Whether to send tracking notification to customer"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-webhooks
          description: "List all webhook subscriptions configured for the store"
          hints:
            readOnly: true
          call: "shopify-admin.list-webhooks"
          outputParameters:
            - type: object
              mapping: "$."
        - name: create-webhook
          description: "Create a webhook subscription to receive real-time store event notifications"
          hints:
            readOnly: false
          call: "shopify-admin.create-webhook"
          inputParameters:
            - name: topic
              type: string
              description: "Event topic to subscribe to (e.g., orders/create, products/update)"
            - name: address
              type: string
              description: "HTTPS URL to receive webhook POST requests"
            - name: format
              type: string
              description: "Payload format: json or xml"
          outputParameters:
            - type: object
              mapping: "$."