Roku · Capability

Roku Nabu Cloud — devices

Roku Nabu Cloud — devices. 9 operations. Lead operation: Roku List Devices. Self-contained Naftiko capability covering one Roku business surface.

Run with Naftiko Rokudevices

What You Can Do

GET
Deviceslistdevices — Roku List Devices
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices
POST
Devicescreatedevice — Roku Create Device
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices
GET
Devicesgetdevice — Roku Get Device
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}
PATCH
Devicesupdatedevice — Roku Update Device
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}
DELETE
Devicesdeletedevice — Roku Delete Device
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}
GET
Devicesreadlogs — Roku Read Logs
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/logs/{instance-id}
GET
Devicesgetdeviceruns — Roku Get Device Runs
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/runs
POST
Devicesstartdevice — Roku Start Device
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/start
POST
Devicesstopdevice — Roku Stop Device
/v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/stop

MCP Tools

roku-list-devices

Roku List Devices

read-only idempotent
roku-create-device

Roku Create Device

roku-get-device

Roku Get Device

read-only idempotent
roku-update-device

Roku Update Device

idempotent
roku-delete-device

Roku Delete Device

idempotent
roku-read-logs

Roku Read Logs

read-only idempotent
roku-get-device-runs

Roku Get Device Runs

read-only idempotent
roku-start-device

Roku Start Device

roku-stop-device

Roku Stop Device

Capability Spec

nabu-cloud-devices.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Roku Nabu Cloud — devices
  description: 'Roku Nabu Cloud — devices. 9 operations. Lead operation: Roku List Devices. Self-contained Naftiko capability
    covering one Roku business surface.'
  tags:
  - Roku
  - devices
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ROKU_API_KEY: ROKU_API_KEY
capability:
  consumes:
  - type: http
    namespace: nabu-cloud-devices
    baseUri: https://api.cloud.roku.dev
    description: Roku Nabu Cloud — devices business capability. Self-contained, no shared references.
    resources:
    - name: api-v1-organisations-organisation_id-projects-project_id-devices
      path: /api/v1/organisations/{organisation_id}/projects/{project_id}/devices
      operations:
      - name: deviceslistdevices
        method: GET
        description: Roku List Devices
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: items
          in: query
          type: integer
          description: The number of items per page. Use 0 for no limit.
        - name: page
          in: query
          type: integer
          description: The page number. Use 0 for the first page.
        - name: esn
          in: query
          type: string
          description: The ESN of the device.
        - name: device_type
          in: query
          type: string
          description: The type of the Device.
        - name: name
          in: query
          type: string
          description: The name of the Device.
        - name: description
          in: query
          type: string
          description: Description of the Device.
        - name: account_name
          in: query
          type: string
          description: Account name of the Device.
        - name: properties
          in: query
          type: string
          description: Device properties.
        - name: qa_hub
          in: query
          type: boolean
          description: Whether the device should be auto registered in QA Hub.
        - name: created_at
          in: query
          type: string
          description: The day the device was created
      - name: devicescreatedevice
        method: POST
        description: Roku Create Device
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-v1-organisations-organisation_id-projects-project_id-devices-device_id
      path: /api/v1/organisations/{organisation_id}/projects/{project_id}/devices/{device_id}
      operations:
      - name: devicesgetdevice
        method: GET
        description: Roku Get Device
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: device_id
          in: path
          type: integer
          required: true
      - name: devicesupdatedevice
        method: PATCH
        description: Roku Update Device
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: device_id
          in: path
          type: integer
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: devicesdeletedevice
        method: DELETE
        description: Roku Delete Device
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: device_id
          in: path
          type: integer
          required: true
        - name: delete_snapshots
          in: query
          type: boolean
    - name: api-v1-organisations-organisation_id-projects-project_id-devices-device_id-logs-
      path: /api/v1/organisations/{organisation_id}/projects/{project_id}/devices/{device_id}/logs/{instance_id}
      operations:
      - name: devicesreadlogs
        method: GET
        description: Roku Read Logs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: instance_id
          in: path
          type: integer
          required: true
        - name: project_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: device_id
          in: path
          type: integer
          required: true
    - name: api-v1-organisations-organisation_id-projects-project_id-devices-device_id-runs
      path: /api/v1/organisations/{organisation_id}/projects/{project_id}/devices/{device_id}/runs
      operations:
      - name: devicesgetdeviceruns
        method: GET
        description: Roku Get Device Runs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: device_id
          in: path
          type: integer
          required: true
    - name: api-v1-organisations-organisation_id-projects-project_id-devices-device_id-start
      path: /api/v1/organisations/{organisation_id}/projects/{project_id}/devices/{device_id}/start
      operations:
      - name: devicesstartdevice
        method: POST
        description: Roku Start Device
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: device_id
          in: path
          type: integer
          required: true
        - name: skip_build_validation
          in: query
          type: boolean
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-v1-organisations-organisation_id-projects-project_id-devices-device_id-stop
      path: /api/v1/organisations/{organisation_id}/projects/{project_id}/devices/{device_id}/stop
      operations:
      - name: devicesstopdevice
        method: POST
        description: Roku Stop Device
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: device_id
          in: path
          type: integer
          required: true
  exposes:
  - type: rest
    namespace: nabu-cloud-devices-rest
    port: 8080
    description: REST adapter for Roku Nabu Cloud — devices. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices
      name: api-v1-organisations-organisation-id-projects-project-id-devices
      description: REST surface for api-v1-organisations-organisation_id-projects-project_id-devices.
      operations:
      - method: GET
        name: deviceslistdevices
        description: Roku List Devices
        call: nabu-cloud-devices.deviceslistdevices
        with:
          project_id: rest.project_id
          organisation_id: rest.organisation_id
          items: rest.items
          page: rest.page
          esn: rest.esn
          device_type: rest.device_type
          name: rest.name
          description: rest.description
          account_name: rest.account_name
          properties: rest.properties
          qa_hub: rest.qa_hub
          created_at: rest.created_at
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: devicescreatedevice
        description: Roku Create Device
        call: nabu-cloud-devices.devicescreatedevice
        with:
          project_id: rest.project_id
          organisation_id: rest.organisation_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}
      name: api-v1-organisations-organisation-id-projects-project-id-devices-device-id
      description: REST surface for api-v1-organisations-organisation_id-projects-project_id-devices-device_id.
      operations:
      - method: GET
        name: devicesgetdevice
        description: Roku Get Device
        call: nabu-cloud-devices.devicesgetdevice
        with:
          project_id: rest.project_id
          organisation_id: rest.organisation_id
          device_id: rest.device_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: devicesupdatedevice
        description: Roku Update Device
        call: nabu-cloud-devices.devicesupdatedevice
        with:
          project_id: rest.project_id
          organisation_id: rest.organisation_id
          device_id: rest.device_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: devicesdeletedevice
        description: Roku Delete Device
        call: nabu-cloud-devices.devicesdeletedevice
        with:
          project_id: rest.project_id
          organisation_id: rest.organisation_id
          device_id: rest.device_id
          delete_snapshots: rest.delete_snapshots
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/logs/{instance-id}
      name: api-v1-organisations-organisation-id-projects-project-id-devices-device-id-logs
      description: REST surface for api-v1-organisations-organisation_id-projects-project_id-devices-device_id-logs-.
      operations:
      - method: GET
        name: devicesreadlogs
        description: Roku Read Logs
        call: nabu-cloud-devices.devicesreadlogs
        with:
          instance_id: rest.instance_id
          project_id: rest.project_id
          organisation_id: rest.organisation_id
          device_id: rest.device_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/runs
      name: api-v1-organisations-organisation-id-projects-project-id-devices-device-id-runs
      description: REST surface for api-v1-organisations-organisation_id-projects-project_id-devices-device_id-runs.
      operations:
      - method: GET
        name: devicesgetdeviceruns
        description: Roku Get Device Runs
        call: nabu-cloud-devices.devicesgetdeviceruns
        with:
          project_id: rest.project_id
          organisation_id: rest.organisation_id
          device_id: rest.device_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/start
      name: api-v1-organisations-organisation-id-projects-project-id-devices-device-id-start
      description: REST surface for api-v1-organisations-organisation_id-projects-project_id-devices-device_id-start.
      operations:
      - method: POST
        name: devicesstartdevice
        description: Roku Start Device
        call: nabu-cloud-devices.devicesstartdevice
        with:
          project_id: rest.project_id
          organisation_id: rest.organisation_id
          device_id: rest.device_id
          skip_build_validation: rest.skip_build_validation
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/organisations/{organisation-id}/projects/{project-id}/devices/{device-id}/stop
      name: api-v1-organisations-organisation-id-projects-project-id-devices-device-id-stop
      description: REST surface for api-v1-organisations-organisation_id-projects-project_id-devices-device_id-stop.
      operations:
      - method: POST
        name: devicesstopdevice
        description: Roku Stop Device
        call: nabu-cloud-devices.devicesstopdevice
        with:
          project_id: rest.project_id
          organisation_id: rest.organisation_id
          device_id: rest.device_id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: nabu-cloud-devices-mcp
    port: 9090
    transport: http
    description: MCP adapter for Roku Nabu Cloud — devices. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: roku-list-devices
      description: Roku List Devices
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nabu-cloud-devices.deviceslistdevices
      with:
        project_id: tools.project_id
        organisation_id: tools.organisation_id
        items: tools.items
        page: tools.page
        esn: tools.esn
        device_type: tools.device_type
        name: tools.name
        description: tools.description
        account_name: tools.account_name
        properties: tools.properties
        qa_hub: tools.qa_hub
        created_at: tools.created_at
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-create-device
      description: Roku Create Device
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: nabu-cloud-devices.devicescreatedevice
      with:
        project_id: tools.project_id
        organisation_id: tools.organisation_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-get-device
      description: Roku Get Device
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nabu-cloud-devices.devicesgetdevice
      with:
        project_id: tools.project_id
        organisation_id: tools.organisation_id
        device_id: tools.device_id
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-update-device
      description: Roku Update Device
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: nabu-cloud-devices.devicesupdatedevice
      with:
        project_id: tools.project_id
        organisation_id: tools.organisation_id
        device_id: tools.device_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-delete-device
      description: Roku Delete Device
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: nabu-cloud-devices.devicesdeletedevice
      with:
        project_id: tools.project_id
        organisation_id: tools.organisation_id
        device_id: tools.device_id
        delete_snapshots: tools.delete_snapshots
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-read-logs
      description: Roku Read Logs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nabu-cloud-devices.devicesreadlogs
      with:
        instance_id: tools.instance_id
        project_id: tools.project_id
        organisation_id: tools.organisation_id
        device_id: tools.device_id
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-get-device-runs
      description: Roku Get Device Runs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nabu-cloud-devices.devicesgetdeviceruns
      with:
        project_id: tools.project_id
        organisation_id: tools.organisation_id
        device_id: tools.device_id
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-start-device
      description: Roku Start Device
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: nabu-cloud-devices.devicesstartdevice
      with:
        project_id: tools.project_id
        organisation_id: tools.organisation_id
        device_id: tools.device_id
        skip_build_validation: tools.skip_build_validation
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-stop-device
      description: Roku Stop Device
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: nabu-cloud-devices.devicesstopdevice
      with:
        project_id: tools.project_id
        organisation_id: tools.organisation_id
        device_id: tools.device_id
      outputParameters:
      - type: object
        mapping: $.