TD SYNNEX · Capability

TD SYNNEX Cloud Distribution

Workflow capability for TD SYNNEX StreamOne Ion cloud distribution management. Enables MSPs and resellers to automate end-to-end cloud subscription lifecycle management including customer provisioning, product ordering, subscription tracking, and business intelligence reporting across multiple cloud vendors through a single unified interface.

Run with Naftiko TD SYNNEXStreamOne IonCloud DistributionTechnology DistributionMSPResellerSubscription ManagementOrder Management

What You Can Do

GET
List customers — List all end customers in the partner account
/v1/customers
POST
Create customer — Add a new end customer to the platform
/v1/customers
GET
Get customer — Get details for a specific customer
/v1/customers/{customerId}
GET
List products — Browse available technology products
/v1/products
GET
List orders — List all orders for the account
/v1/orders
POST
Create order — Create a new technology product order
/v1/orders
GET
Get order — Get details for a specific order
/v1/orders/{orderId}
GET
List subscriptions — List cloud subscriptions for a customer
/v1/customers/{customerId}/subscriptions
GET
List reports — List available business intelligence reports
/v1/reports
GET
Get report data — Access report data
/v1/reports/{reportId}/data

MCP Tools

list-customers

List all end customers in the TD SYNNEX partner account

read-only
create-customer

Add a new end customer to the TD SYNNEX StreamOne platform

get-customer

Get details for a specific end customer including cloud profiles

read-only
list-products

Browse available technology products in the TD SYNNEX distribution catalog

read-only
get-product

Get detailed information for a specific technology product including pricing

read-only
list-orders

List all technology product orders for the partner account

read-only
create-order

Create a new technology product order for an end customer

get-order

Get status and details for a specific technology product order

read-only
list-customer-subscriptions

List all active cloud software subscriptions for a customer

read-only
list-reports

List available business intelligence reports for distribution analytics

read-only
get-report-data

Access business intelligence report data for distribution analytics

read-only

APIs Used

streamone-ion

Capability Spec

cloud-distribution.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "TD SYNNEX Cloud Distribution"
  description: >-
    Workflow capability for TD SYNNEX StreamOne Ion cloud distribution management.
    Enables MSPs and resellers to automate end-to-end cloud subscription lifecycle
    management including customer provisioning, product ordering, subscription
    tracking, and business intelligence reporting across multiple cloud vendors
    through a single unified interface.
  tags:
    - TD SYNNEX
    - StreamOne Ion
    - Cloud Distribution
    - Technology Distribution
    - MSP
    - Reseller
    - Subscription Management
    - Order Management
  created: "2026-05-03"
  modified: "2026-05-03"

binds:
  - namespace: env
    keys:
      TDSYNNEX_ACCESS_TOKEN: TDSYNNEX_ACCESS_TOKEN

capability:
  consumes:
    - import: streamone-ion
      location: ./shared/streamone-ion.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: tdsynnex-cloud-distribution-api
      description: "Unified REST API for TD SYNNEX cloud distribution lifecycle management."
      resources:
        - path: /v1/customers
          name: customers
          description: "End customer account management"
          operations:
            - method: GET
              name: list-customers
              description: "List all end customers in the partner account"
              call: "streamone-ion.list-customers"
              with:
                accountId: "rest.accountId"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-customer
              description: "Add a new end customer to the platform"
              call: "streamone-ion.create-customer"
              with:
                accountId: "rest.accountId"
                companyName: "rest.companyName"
                email: "rest.email"
                phone: "rest.phone"
                address: "rest.address"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/customers/{customerId}
          name: customer-detail
          description: "Single customer management"
          operations:
            - method: GET
              name: get-customer
              description: "Get details for a specific customer"
              call: "streamone-ion.get-customer"
              with:
                accountId: "rest.accountId"
                customerId: "rest.customerId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/products
          name: products
          description: "Technology product catalog"
          operations:
            - method: GET
              name: list-products
              description: "Browse available technology products"
              call: "streamone-ion.list-products"
              with:
                accountId: "rest.accountId"
                vendor: "rest.vendor"
                category: "rest.category"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/orders
          name: orders
          description: "Product order management"
          operations:
            - method: GET
              name: list-orders
              description: "List all orders for the account"
              call: "streamone-ion.list-orders"
              with:
                accountId: "rest.accountId"
                status: "rest.status"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-order
              description: "Create a new technology product order"
              call: "streamone-ion.create-order"
              with:
                accountId: "rest.accountId"
                customerId: "rest.customerId"
                items: "rest.items"
                notes: "rest.notes"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/orders/{orderId}
          name: order-detail
          description: "Single order management"
          operations:
            - method: GET
              name: get-order
              description: "Get details for a specific order"
              call: "streamone-ion.get-order"
              with:
                accountId: "rest.accountId"
                orderId: "rest.orderId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/customers/{customerId}/subscriptions
          name: subscriptions
          description: "Customer subscription management"
          operations:
            - method: GET
              name: list-subscriptions
              description: "List cloud subscriptions for a customer"
              call: "streamone-ion.list-subscriptions"
              with:
                accountId: "rest.accountId"
                customerId: "rest.customerId"
                vendor: "rest.vendor"
                status: "rest.status"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/reports
          name: reports
          description: "Business intelligence reports"
          operations:
            - method: GET
              name: list-reports
              description: "List available business intelligence reports"
              call: "streamone-ion.list-reports"
              with:
                accountId: "rest.accountId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/reports/{reportId}/data
          name: report-data
          description: "Report data access"
          operations:
            - method: GET
              name: get-report-data
              description: "Access report data"
              call: "streamone-ion.get-report-data"
              with:
                accountId: "rest.accountId"
                reportId: "rest.reportId"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9090
      namespace: tdsynnex-cloud-distribution-mcp
      transport: http
      description: "MCP server for AI-assisted TD SYNNEX cloud distribution management."
      tools:
        - name: list-customers
          description: "List all end customers in the TD SYNNEX partner account"
          hints:
            readOnly: true
            openWorld: false
          call: "streamone-ion.list-customers"
          with:
            accountId: "tools.accountId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: create-customer
          description: "Add a new end customer to the TD SYNNEX StreamOne platform"
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: "streamone-ion.create-customer"
          with:
            accountId: "tools.accountId"
            companyName: "tools.companyName"
            email: "tools.email"
            phone: "tools.phone"
            address: "tools.address"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-customer
          description: "Get details for a specific end customer including cloud profiles"
          hints:
            readOnly: true
            openWorld: false
          call: "streamone-ion.get-customer"
          with:
            accountId: "tools.accountId"
            customerId: "tools.customerId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-products
          description: "Browse available technology products in the TD SYNNEX distribution catalog"
          hints:
            readOnly: true
            openWorld: true
          call: "streamone-ion.list-products"
          with:
            accountId: "tools.accountId"
            vendor: "tools.vendor"
            category: "tools.category"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-product
          description: "Get detailed information for a specific technology product including pricing"
          hints:
            readOnly: true
            openWorld: true
          call: "streamone-ion.get-product"
          with:
            accountId: "tools.accountId"
            productId: "tools.productId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-orders
          description: "List all technology product orders for the partner account"
          hints:
            readOnly: true
            openWorld: false
          call: "streamone-ion.list-orders"
          with:
            accountId: "tools.accountId"
            status: "tools.status"
          outputParameters:
            - type: object
              mapping: "$."

        - name: create-order
          description: "Create a new technology product order for an end customer"
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: "streamone-ion.create-order"
          with:
            accountId: "tools.accountId"
            customerId: "tools.customerId"
            items: "tools.items"
            notes: "tools.notes"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-order
          description: "Get status and details for a specific technology product order"
          hints:
            readOnly: true
            openWorld: false
          call: "streamone-ion.get-order"
          with:
            accountId: "tools.accountId"
            orderId: "tools.orderId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-customer-subscriptions
          description: "List all active cloud software subscriptions for a customer"
          hints:
            readOnly: true
            openWorld: false
          call: "streamone-ion.list-subscriptions"
          with:
            accountId: "tools.accountId"
            customerId: "tools.customerId"
            vendor: "tools.vendor"
            status: "tools.status"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-reports
          description: "List available business intelligence reports for distribution analytics"
          hints:
            readOnly: true
            openWorld: false
          call: "streamone-ion.list-reports"
          with:
            accountId: "tools.accountId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-report-data
          description: "Access business intelligence report data for distribution analytics"
          hints:
            readOnly: true
            openWorld: false
          call: "streamone-ion.get-report-data"
          with:
            accountId: "tools.accountId"
            reportId: "tools.reportId"
          outputParameters:
            - type: object
              mapping: "$."