Viam · Capability

Viam Component — Base

Control any Viam mobile base component — MoveStraight, Spin, SetPower, SetVelocity, Stop.

Viam Component — Base 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 5 state-changing operations. Lead operation: Move straight. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Viam, Component, and Base.

Run with Naftiko ViamComponentBase

MCP Tools

viam-base-move-straight

Move straight.

viam-base-spin

Spin.

viam-base-set-power

Set base power.

idempotent
viam-base-set-velocity

Set base velocity.

idempotent
viam-base-stop

Stop base.

idempotent

Capability Spec

component-base.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Viam Component — Base
  description: Control any Viam mobile base component — MoveStraight, Spin, SetPower, SetVelocity, Stop.
  tags: [Viam, Component, Base]
  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-base
    baseUri: '{{env.VIAM_MACHINE_ADDRESS}}'
    description: Viam BaseService.
    resources:
    - name: move-straight
      path: /viam.component.base.v1.BaseService/MoveStraight
      operations:
      - { name: moveStraight, method: POST, description: Move straight., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    - name: spin
      path: /viam.component.base.v1.BaseService/Spin
      operations:
      - { name: spin, method: POST, description: Spin in place., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    - name: set-power
      path: /viam.component.base.v1.BaseService/SetPower
      operations:
      - { name: setPower, method: POST, description: Set linear/angular power., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    - name: set-velocity
      path: /viam.component.base.v1.BaseService/SetVelocity
      operations:
      - { name: setVelocity, method: POST, description: Set linear/angular velocity., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] }
    - name: stop
      path: /viam.component.base.v1.BaseService/Stop
      operations:
      - { name: stop, method: POST, description: Stop the base., 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-base-mcp
    port: 9090
    transport: http
    description: MCP adapter for base components.
    tools:
    - { name: viam-base-move-straight, description: Move straight., hints: { readOnly: false, destructive: false, idempotent: false }, call: component-base.moveStraight, with: { body: tools.body } }
    - { name: viam-base-spin, description: Spin., hints: { readOnly: false, destructive: false, idempotent: false }, call: component-base.spin, with: { body: tools.body } }
    - { name: viam-base-set-power, description: Set base power., hints: { readOnly: false, destructive: false, idempotent: true }, call: component-base.setPower, with: { body: tools.body } }
    - { name: viam-base-set-velocity, description: Set base velocity., hints: { readOnly: false, destructive: false, idempotent: true }, call: component-base.setVelocity, with: { body: tools.body } }
    - { name: viam-base-stop, description: Stop base., hints: { readOnly: false, destructive: true, idempotent: true }, call: component-base.stop, with: { body: tools.body } }