naftiko: 1.0.0-alpha2 info: label: Viam Machine Management — Sessions description: Manage viam-server client sessions and safety-timeout heartbeats. tags: [Viam, Machine, Sessions] 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: machine-sessions baseUri: '{{env.VIAM_MACHINE_ADDRESS}}' description: Viam RobotService — session operations. resources: - name: start-session path: /viam.robot.v1.RobotService/StartSession operations: - { name: startSession, method: POST, description: Open a session with the machine., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] } - name: send-session-heartbeat path: /viam.robot.v1.RobotService/SendSessionHeartbeat operations: - { name: sendSessionHeartbeat, method: POST, description: Send a session heartbeat., outputRawFormat: json, inputParameters: [{ name: body, in: body, type: object, required: true }] } - name: get-sessions path: /viam.robot.v1.RobotService/GetSessions operations: - { name: getSessions, method: POST, description: List active sessions., 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: machine-sessions-mcp port: 9090 transport: http description: MCP adapter for viam-server sessions. tools: - { name: viam-start-session, description: Start a session., hints: { readOnly: false, destructive: false, idempotent: false }, call: machine-sessions.startSession, with: { body: tools.body } } - { name: viam-session-heartbeat, description: Send a heartbeat., hints: { readOnly: false, destructive: false, idempotent: true }, call: machine-sessions.sendSessionHeartbeat, with: { body: tools.body } } - { name: viam-get-sessions, description: List sessions., hints: { readOnly: true, destructive: false, idempotent: true }, call: machine-sessions.getSessions, with: { body: tools.body } }