Viam · Capability

Viam Component — Motor

Control any Viam motor component — SetPower, GoFor, GoTo, SetRPM, Stop.

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

The capability includes 1 read-only operation and 5 state-changing operations. Lead operation: Set motor power. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Viam, Component, and Motor.

Run with Naftiko ViamComponentMotor

MCP Tools

viam-motor-set-power

Set motor power.

idempotent
viam-motor-go-for

Spin N revolutions.

viam-motor-go-to

Move to position.

idempotent
viam-motor-set-rpm

Spin at RPM.

idempotent
viam-motor-stop

Stop motor.

idempotent
viam-motor-is-powered

Check power state.

read-only idempotent

Capability Spec

component-motor.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Viam Component — Motor
  description: Control any Viam motor component — SetPower, GoFor, GoTo, SetRPM, Stop.
  tags: [Viam, Component, Motor]
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
- namespace: env
  keys:
    VIAM_API_KEY: VIAM_API_KEY
    VIAM_MACHINE_ADDRESS: VIAM_MACHINE_ADDRESS
capability:
  consumes:
  - type: http
    namespace: component-motor
    baseUri: '{{env.VIAM_MACHINE_ADDRESS}}'
    description: Viam MotorService.
    resources:
    - name: set-power
      path: /viam.component.motor.v1.MotorService/SetPower
      operations:
      - { name: setPower, method: POST, description: Set motor power., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    - name: go-for
      path: /viam.component.motor.v1.MotorService/GoFor
      operations:
      - { name: goFor, method: POST, description: Spin for N revolutions at RPM., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    - name: go-to
      path: /viam.component.motor.v1.MotorService/GoTo
      operations:
      - { name: goTo, method: POST, description: Move to a position at RPM., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    - name: set-rpm
      path: /viam.component.motor.v1.MotorService/SetRPM
      operations:
      - { name: setRPM, method: POST, description: Spin continuously at RPM., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    - name: stop
      path: /viam.component.motor.v1.MotorService/Stop
      operations:
      - { name: stop, method: POST, description: Stop the motor., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    - name: is-powered
      path: /viam.component.motor.v1.MotorService/IsPowered
      operations:
      - { name: isPowered, method: POST, description: Check motor power state., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    authentication:
      type: apikey
      key: key
      value: '{{env.VIAM_API_KEY}}'
      placement: header
  exposes:
  - type: mcp
    namespace: component-motor-mcp
    port: 9090
    transport: http
    description: MCP adapter for motor components.
    tools:
    - { name: viam-motor-set-power, description: Set motor power., hints: { readOnly: false, destructive: false, idempotent: true }, call: component-motor.setPower, with: { body: tools.body } }
    - { name: viam-motor-go-for, description: Spin N revolutions., hints: { readOnly: false, destructive: false, idempotent: false }, call: component-motor.goFor, with: { body: tools.body } }
    - { name: viam-motor-go-to, description: Move to position., hints: { readOnly: false, destructive: false, idempotent: true }, call: component-motor.goTo, with: { body: tools.body } }
    - { name: viam-motor-set-rpm, description: Spin at RPM., hints: { readOnly: false, destructive: false, idempotent: true }, call: component-motor.setRPM, with: { body: tools.body } }
    - { name: viam-motor-stop, description: Stop motor., hints: { readOnly: false, destructive: true, idempotent: true }, call: component-motor.stop, with: { body: tools.body } }
    - { name: viam-motor-is-powered, description: Check power state., hints: { readOnly: true, destructive: false, idempotent: true }, call: component-motor.isPowered, with: { body: tools.body } }