naftiko: 1.0.0-alpha2 info: label: Viam Fleet Management — Machines description: Manage Viam machines (robots) and their parts (viam-server processes). tags: [Viam, Fleet, Machines] created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: VIAM_API_KEY: VIAM_API_KEY capability: consumes: - type: http namespace: fleet-machines baseUri: https://app.viam.com description: Viam AppService — machine operations. resources: - name: list-robots path: /viam.app.v1.AppService/ListRobots operations: - { name: listRobots, method: POST, description: List machines in a location., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] } - name: get-robot path: /viam.app.v1.AppService/GetRobot operations: - { name: getRobot, method: POST, description: Retrieve a machine by id., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] } - name: new-robot path: /viam.app.v1.AppService/NewRobot operations: - { name: newRobot, method: POST, description: Create a new machine., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] } - name: update-robot path: /viam.app.v1.AppService/UpdateRobot operations: - { name: updateRobot, method: POST, description: Update a machine., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] } - name: delete-robot path: /viam.app.v1.AppService/DeleteRobot operations: - { name: deleteRobot, method: POST, description: Delete a machine., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] } - name: get-robot-parts path: /viam.app.v1.AppService/GetRobotParts operations: - { name: getRobotParts, method: POST, description: List parts for a machine., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] } - name: mark-part-for-restart path: /viam.app.v1.AppService/MarkPartForRestart operations: - { name: markPartForRestart, method: POST, description: Schedule a restart for a machine part., 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: fleet-machines-mcp port: 9090 transport: http description: MCP adapter for Viam machine management. tools: - { name: viam-list-machines, description: List machines., hints: { readOnly: true, destructive: false, idempotent: true }, call: fleet-machines.listRobots, with: { body: tools.body } } - { name: viam-get-machine, description: Get a machine., hints: { readOnly: true, destructive: false, idempotent: true }, call: fleet-machines.getRobot, with: { body: tools.body } } - { name: viam-create-machine, description: Create a machine., hints: { readOnly: false, destructive: false, idempotent: false }, call: fleet-machines.newRobot, with: { body: tools.body } } - { name: viam-delete-machine, description: Delete a machine., hints: { readOnly: false, destructive: true, idempotent: true }, call: fleet-machines.deleteRobot, with: { body: tools.body } } - { name: viam-restart-machine-part, description: Schedule a restart for a machine part., hints: { readOnly: false, destructive: false, idempotent: false }, call: fleet-machines.markPartForRestart, with: { body: tools.body } }