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.
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 } }