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