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