Viam · Capability

Viam Provisioning

Bootstrap a smart machine onto Wi-Fi and into the Viam cloud via Bluetooth or hotspot.

Viam Provisioning is a Naftiko capability published by Viam, one of 27 capabilities the APIs.io network indexes for this provider. It bundles 5 operations.

The capability includes 2 read-only operations and 3 state-changing operations. Lead operation: Provisioning status. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Viam, Provisioning, and Onboarding.

Run with Naftiko ViamProvisioningOnboarding

MCP Tools

viam-provision-status

Provisioning status.

read-only idempotent
viam-provision-set-network

Set Wi-Fi credentials.

idempotent
viam-provision-set-cloud

Set Viam cloud credentials.

idempotent
viam-provision-networks

List Wi-Fi networks.

read-only idempotent
viam-provision-exit

Exit provisioning.

idempotent

Capability Spec

provisioning.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Viam Provisioning
  description: Bootstrap a smart machine onto Wi-Fi and into the Viam cloud via Bluetooth or hotspot.
  tags: [Viam, Provisioning, Onboarding]
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
- namespace: env
  keys:
    VIAM_PROVISIONING_ADDRESS: VIAM_PROVISIONING_ADDRESS
capability:
  consumes:
  - type: http
    namespace: provisioning
    baseUri: '{{env.VIAM_PROVISIONING_ADDRESS}}'
    description: Viam ProvisioningService — exposed by viam-agent on a fresh device.
    resources:
    - name: get-smart-machine-status
      path: /viam.provisioning.v1.ProvisioningService/GetSmartMachineStatus
      operations:
      - { name: getSmartMachineStatus, method: POST, description: Device provisioning status., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    - name: set-network-credentials
      path: /viam.provisioning.v1.ProvisioningService/SetNetworkCredentials
      operations:
      - { name: setNetworkCredentials, method: POST, description: Submit Wi-Fi credentials., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    - name: set-smart-machine-credentials
      path: /viam.provisioning.v1.ProvisioningService/SetSmartMachineCredentials
      operations:
      - { name: setSmartMachineCredentials, method: POST, description: Submit Viam cloud credentials., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    - name: get-network-list
      path: /viam.provisioning.v1.ProvisioningService/GetNetworkList
      operations:
      - { name: getNetworkList, method: POST, description: List visible Wi-Fi networks., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    - name: exit-provisioning
      path: /viam.provisioning.v1.ProvisioningService/ExitProvisioning
      operations:
      - { name: exitProvisioning, method: POST, description: Exit provisioning., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
  exposes:
  - type: mcp
    namespace: provisioning-mcp
    port: 9090
    transport: http
    description: MCP adapter for device provisioning.
    tools:
    - { name: viam-provision-status, description: Provisioning status., hints: { readOnly: true, destructive: false, idempotent: true }, call: provisioning.getSmartMachineStatus, with: { body: tools.body } }
    - { name: viam-provision-set-network, description: Set Wi-Fi credentials., hints: { readOnly: false, destructive: false, idempotent: true }, call: provisioning.setNetworkCredentials, with: { body: tools.body } }
    - { name: viam-provision-set-cloud, description: Set Viam cloud credentials., hints: { readOnly: false, destructive: false, idempotent: true }, call: provisioning.setSmartMachineCredentials, with: { body: tools.body } }
    - { name: viam-provision-networks, description: List Wi-Fi networks., hints: { readOnly: true, destructive: false, idempotent: true }, call: provisioning.getNetworkList, with: { body: tools.body } }
    - { name: viam-provision-exit, description: Exit provisioning., hints: { readOnly: false, destructive: false, idempotent: true }, call: provisioning.exitProvisioning, with: { body: tools.body } }