naftiko: 1.0.0-alpha2 info: label: Shopify Admin Store Management description: Unified workflow capability for comprehensive Shopify store management. Combines product catalog management, customer relationship management, order processing, inventory tracking, and store configuration into a single integrated capability for merchants and app developers. tags: - Commerce - Ecommerce - Admin - Store Management - Products - Orders - Customers - Inventory created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: SHOPIFY_ACCESS_TOKEN: SHOPIFY_ACCESS_TOKEN SHOPIFY_STORE_NAME: SHOPIFY_STORE_NAME capability: consumes: - type: http namespace: shopify-admin-rest baseUri: https://{{env.SHOPIFY_STORE_NAME}}.myshopify.com/admin/api/2024-10 description: Shopify Admin REST API for store management authentication: type: apikey key: X-Shopify-Access-Token value: '{{env.SHOPIFY_ACCESS_TOKEN}}' placement: header resources: - name: products path: /products.json description: Manage Shopify store products operations: - name: list-products method: GET description: Retrieve a list of products inputParameters: - name: limit in: query type: integer required: false description: Maximum number of results (max 250) - name: status in: query type: string required: false description: Filter by product status (active, archived, draft) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-product method: POST description: Create a new product outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: product: title: '{{tools.title}}' body_html: '{{tools.body_html}}' vendor: '{{tools.vendor}}' status: '{{tools.status}}' - name: product-detail path: /products/{product_id}.json description: Manage a specific Shopify product operations: - name: get-product method: GET description: Retrieve a specific product by ID inputParameters: - name: product_id in: path type: integer required: true description: The ID of the product outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-product method: PUT description: Update an existing product inputParameters: - name: product_id in: path type: integer required: true description: The ID of the product outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: product: title: '{{tools.title}}' status: '{{tools.status}}' - name: delete-product method: DELETE description: Delete a product inputParameters: - name: product_id in: path type: integer required: true description: The ID of the product to delete outputRawFormat: json outputParameters: - name: result type: object value: $. - name: customers path: /customers.json description: Manage Shopify store customers operations: - name: list-customers method: GET description: Retrieve a list of customers inputParameters: - name: limit in: query type: integer required: false description: Maximum number of results - name: email in: query type: string required: false description: Filter by email address outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-customer method: POST description: Create a new customer outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: customer: email: '{{tools.email}}' first_name: '{{tools.first_name}}' last_name: '{{tools.last_name}}' - name: customer-detail path: /customers/{customer_id}.json description: Manage a specific customer operations: - name: get-customer method: GET description: Retrieve a specific customer by ID inputParameters: - name: customer_id in: path type: integer required: true description: The ID of the customer outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-customer method: PUT description: Update a customer inputParameters: - name: customer_id in: path type: integer required: true description: The ID of the customer outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: customer: first_name: '{{tools.first_name}}' last_name: '{{tools.last_name}}' email: '{{tools.email}}' - name: orders path: /orders.json description: Manage Shopify store orders operations: - name: list-orders method: GET description: Retrieve a list of orders inputParameters: - name: limit in: query type: integer required: false description: Maximum number of results - name: status in: query type: string required: false description: Filter by order status (open, closed, cancelled, any) - name: financial_status in: query type: string required: false description: Filter by financial status outputRawFormat: json outputParameters: - name: result type: object value: $. - name: order-detail path: /orders/{order_id}.json description: Manage a specific order operations: - name: get-order method: GET description: Retrieve a specific order by ID inputParameters: - name: order_id in: path type: integer required: true description: The ID of the order outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-order method: PUT description: Update an order inputParameters: - name: order_id in: path type: integer required: true description: The ID of the order outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: order: note: '{{tools.note}}' tags: '{{tools.tags}}' - name: order-cancel path: /orders/{order_id}/cancel.json description: Cancel an order operations: - name: cancel-order method: POST description: Cancel a specific order inputParameters: - name: order_id in: path type: integer required: true description: The ID of the order to cancel outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: reason: '{{tools.reason}}' - name: inventory-levels path: /inventory_levels.json description: Manage product inventory levels operations: - name: list-inventory-levels method: GET description: Retrieve inventory levels for items or locations inputParameters: - name: inventory_item_ids in: query type: string required: false description: Comma-separated inventory item IDs - name: location_ids in: query type: string required: false description: Comma-separated location IDs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: locations path: /locations.json description: List store locations operations: - name: list-locations method: GET description: Retrieve all store locations outputRawFormat: json outputParameters: - name: result type: object value: $. - name: webhooks path: /webhooks.json description: Manage webhook subscriptions operations: - name: list-webhooks method: GET description: Retrieve all webhook subscriptions outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-webhook method: POST description: Create a new webhook subscription outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: webhook: topic: '{{tools.topic}}' address: '{{tools.address}}' format: '{{tools.format}}' - name: shop path: /shop.json description: Retrieve store configuration operations: - name: get-shop method: GET description: Retrieve store settings and configuration outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: shopify-store-management-api description: Unified REST API for comprehensive Shopify store management. resources: - path: /v1/products name: products description: Product catalog management operations: - method: GET name: list-products description: List all products with optional status filtering call: shopify-admin-rest.list-products outputParameters: - type: object mapping: $. - method: POST name: create-product description: Create a new product in the store call: shopify-admin-rest.create-product outputParameters: - type: object mapping: $. - path: /v1/products/{id} name: product-detail description: Individual product management operations: - method: GET name: get-product description: Retrieve a product by ID call: shopify-admin-rest.get-product with: product_id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: update-product description: Update product details call: shopify-admin-rest.update-product with: product_id: rest.id outputParameters: - type: object mapping: $. - method: DELETE name: delete-product description: Remove a product from the store call: shopify-admin-rest.delete-product with: product_id: rest.id outputParameters: - type: object mapping: $. - path: /v1/orders name: orders description: Order management and fulfillment operations: - method: GET name: list-orders description: List orders with financial and fulfillment status filtering call: shopify-admin-rest.list-orders outputParameters: - type: object mapping: $. - path: /v1/orders/{id} name: order-detail description: Individual order management operations: - method: GET name: get-order description: Retrieve an order by ID call: shopify-admin-rest.get-order with: order_id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: update-order description: Update order notes and tags call: shopify-admin-rest.update-order with: order_id: rest.id outputParameters: - type: object mapping: $. - path: /v1/orders/{id}/cancel name: order-cancel description: Order cancellation operations: - method: POST name: cancel-order description: Cancel an order with a reason call: shopify-admin-rest.cancel-order with: order_id: rest.id outputParameters: - type: object mapping: $. - path: /v1/customers name: customers description: Customer relationship management operations: - method: GET name: list-customers description: List customers with optional email filtering call: shopify-admin-rest.list-customers outputParameters: - type: object mapping: $. - method: POST name: create-customer description: Create a new customer account call: shopify-admin-rest.create-customer outputParameters: - type: object mapping: $. - path: /v1/customers/{id} name: customer-detail description: Individual customer management operations: - method: GET name: get-customer description: Retrieve a customer by ID call: shopify-admin-rest.get-customer with: customer_id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: update-customer description: Update customer information call: shopify-admin-rest.update-customer with: customer_id: rest.id outputParameters: - type: object mapping: $. - path: /v1/inventory-levels name: inventory description: Inventory tracking across locations operations: - method: GET name: list-inventory-levels description: List inventory levels for items and locations call: shopify-admin-rest.list-inventory-levels outputParameters: - type: object mapping: $. - path: /v1/locations name: locations description: Store location management operations: - method: GET name: list-locations description: List all store locations call: shopify-admin-rest.list-locations outputParameters: - type: object mapping: $. - path: /v1/webhooks name: webhooks description: Event subscription management operations: - method: GET name: list-webhooks description: List all webhook subscriptions call: shopify-admin-rest.list-webhooks outputParameters: - type: object mapping: $. - method: POST name: create-webhook description: Subscribe to store events via webhook call: shopify-admin-rest.create-webhook outputParameters: - type: object mapping: $. - path: /v1/shop name: shop description: Store settings and configuration operations: - method: GET name: get-shop description: Retrieve store configuration and settings call: shopify-admin-rest.get-shop outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: shopify-store-management-mcp transport: http description: MCP server for AI-assisted Shopify store management. tools: - name: list-products description: List all products in the Shopify store with optional status filtering hints: readOnly: true openWorld: true call: shopify-admin-rest.list-products outputParameters: - type: object mapping: $. - name: get-product description: Retrieve a specific product by its ID hints: readOnly: true openWorld: true call: shopify-admin-rest.get-product with: product_id: tools.product_id outputParameters: - type: object mapping: $. - name: create-product description: Create a new product with title, description, vendor, and variants hints: readOnly: false destructive: false call: shopify-admin-rest.create-product with: title: tools.title body_html: tools.body_html vendor: tools.vendor status: tools.status outputParameters: - type: object mapping: $. - name: update-product description: Update an existing product's details hints: readOnly: false idempotent: true call: shopify-admin-rest.update-product with: product_id: tools.product_id outputParameters: - type: object mapping: $. - name: delete-product description: Permanently delete a product from the store hints: readOnly: false destructive: true idempotent: true call: shopify-admin-rest.delete-product with: product_id: tools.product_id outputParameters: - type: object mapping: $. - name: list-orders description: List orders filtered by status, financial status, or fulfillment status hints: readOnly: true openWorld: true call: shopify-admin-rest.list-orders outputParameters: - type: object mapping: $. - name: get-order description: Retrieve a specific order with full line item and shipping details hints: readOnly: true openWorld: true call: shopify-admin-rest.get-order with: order_id: tools.order_id outputParameters: - type: object mapping: $. - name: update-order description: Update order notes and tags hints: readOnly: false idempotent: true call: shopify-admin-rest.update-order with: order_id: tools.order_id note: tools.note tags: tools.tags outputParameters: - type: object mapping: $. - name: cancel-order description: Cancel an order specifying the reason (customer, fraud, inventory, declined, other) hints: readOnly: false destructive: true call: shopify-admin-rest.cancel-order with: order_id: tools.order_id reason: tools.reason outputParameters: - type: object mapping: $. - name: list-customers description: List all customers with optional email address filtering hints: readOnly: true openWorld: true call: shopify-admin-rest.list-customers outputParameters: - type: object mapping: $. - name: get-customer description: Retrieve a specific customer's profile and order history hints: readOnly: true openWorld: true call: shopify-admin-rest.get-customer with: customer_id: tools.customer_id outputParameters: - type: object mapping: $. - name: create-customer description: Create a new customer account with email and profile information hints: readOnly: false destructive: false call: shopify-admin-rest.create-customer with: email: tools.email first_name: tools.first_name last_name: tools.last_name outputParameters: - type: object mapping: $. - name: update-customer description: Update an existing customer's profile information hints: readOnly: false idempotent: true call: shopify-admin-rest.update-customer with: customer_id: tools.customer_id outputParameters: - type: object mapping: $. - name: list-inventory-levels description: Check inventory quantities for products across store locations hints: readOnly: true openWorld: true call: shopify-admin-rest.list-inventory-levels outputParameters: - type: object mapping: $. - name: list-locations description: List all fulfillment locations for the store hints: readOnly: true openWorld: true call: shopify-admin-rest.list-locations outputParameters: - type: object mapping: $. - name: get-shop description: Retrieve store settings including currency, timezone, and plan details hints: readOnly: true openWorld: true call: shopify-admin-rest.get-shop outputParameters: - type: object mapping: $. - name: list-webhooks description: List all active webhook subscriptions hints: readOnly: true openWorld: true call: shopify-admin-rest.list-webhooks outputParameters: - type: object mapping: $. - name: create-webhook description: Subscribe to Shopify store events by creating a webhook hints: readOnly: false destructive: false call: shopify-admin-rest.create-webhook with: topic: tools.topic address: tools.address format: tools.format outputParameters: - type: object mapping: $.