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