Roku · Capability

Roku Nabu Cloud — groups

Roku Nabu Cloud — groups. 10 operations. Lead operation: Roku List Group. Self-contained Naftiko capability covering one Roku business surface.

Run with Naftiko Rokugroups

What You Can Do

GET
Groupslistgroup — Roku List Group
/v1/api/v1/organisations/{organisation-id}/groups
POST
Groupscreategroup — Roku Create Group
/v1/api/v1/organisations/{organisation-id}/groups
GET
Groupsgetgroup — Roku Get a Group by ID
/v1/api/v1/organisations/{organisation-id}/groups/{group-id}
PATCH
Groupsupdategroup — Roku Update Group
/v1/api/v1/organisations/{organisation-id}/groups/{group-id}
DELETE
Groupsdeletegroup — Roku Delete Group
/v1/api/v1/organisations/{organisation-id}/groups/{group-id}
GET
Groupslistgroupmembers — Roku List Group Members
/v1/api/v1/organisations/{organisation-id}/groups/{group-id}/members
POST
Groupsaddgroupmember — Roku Add Group Member
/v1/api/v1/organisations/{organisation-id}/groups/{group-id}/members
GET
Groupsgetgroupmember — Roku Get Group Member
/v1/api/v1/organisations/{organisation-id}/groups/{group-id}/members/{user-id}
PATCH
Groupsupdategroupmember — Roku Update Group Member
/v1/api/v1/organisations/{organisation-id}/groups/{group-id}/members/{user-id}
DELETE
Groupsremovegroupmember — Roku Remove Group Member
/v1/api/v1/organisations/{organisation-id}/groups/{group-id}/members/{user-id}

MCP Tools

roku-list-group

Roku List Group

read-only idempotent
roku-create-group

Roku Create Group

roku-get-group-id

Roku Get a Group by ID

read-only idempotent
roku-update-group

Roku Update Group

idempotent
roku-delete-group

Roku Delete Group

idempotent
roku-list-group-members

Roku List Group Members

read-only idempotent
roku-add-group-member

Roku Add Group Member

roku-get-group-member

Roku Get Group Member

read-only idempotent
roku-update-group-member

Roku Update Group Member

idempotent
roku-remove-group-member

Roku Remove Group Member

idempotent

Capability Spec

nabu-cloud-groups.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Roku Nabu Cloud — groups
  description: 'Roku Nabu Cloud — groups. 10 operations. Lead operation: Roku List Group. Self-contained Naftiko capability
    covering one Roku business surface.'
  tags:
  - Roku
  - groups
  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-groups
    baseUri: https://api.cloud.roku.dev
    description: Roku Nabu Cloud — groups business capability. Self-contained, no shared references.
    resources:
    - name: api-v1-organisations-organisation_id-groups
      path: /api/v1/organisations/{organisation_id}/groups
      operations:
      - name: groupslistgroup
        method: GET
        description: Roku List Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - 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: project_id
          in: query
          type: string
        - name: name
          in: query
          type: string
          description: The name of the group. Unique in the organisation
        - name: description
          in: query
          type: string
          description: Description of the Group.
        - name: created_at
          in: query
          type: string
          description: The day the group was created
      - name: groupscreategroup
        method: POST
        description: Roku Create Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - 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-groups-group_id
      path: /api/v1/organisations/{organisation_id}/groups/{group_id}
      operations:
      - name: groupsgetgroup
        method: GET
        description: Roku Get a Group by ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: group_id
          in: path
          type: integer
          required: true
      - name: groupsupdategroup
        method: PATCH
        description: Roku Update Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: group_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: groupsdeletegroup
        method: DELETE
        description: Roku Delete Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: group_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
    - name: api-v1-organisations-organisation_id-groups-group_id-members
      path: /api/v1/organisations/{organisation_id}/groups/{group_id}/members
      operations:
      - name: groupslistgroupmembers
        method: GET
        description: Roku List Group Members
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: group_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: skip
          in: query
          type: integer
          description: The number of results to skip. Use this for pagination. Use 0 for the first page.
        - name: limit
          in: query
          type: integer
          description: The number of results to return, must be non-negative int. Use 0 for no limit.
      - name: groupsaddgroupmember
        method: POST
        description: Roku Add Group Member
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: group_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-groups-group_id-members-user_id
      path: /api/v1/organisations/{organisation_id}/groups/{group_id}/members/{user_id}
      operations:
      - name: groupsgetgroupmember
        method: GET
        description: Roku Get Group Member
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: group_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: user_id
          in: path
          type: string
          required: true
      - name: groupsupdategroupmember
        method: PATCH
        description: Roku Update Group Member
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: group_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: user_id
          in: path
          type: string
          required: true
        - name: group_role_id
          in: query
          type: integer
          required: true
      - name: groupsremovegroupmember
        method: DELETE
        description: Roku Remove Group Member
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: group_id
          in: path
          type: integer
          required: true
        - name: organisation_id
          in: path
          type: integer
          required: true
        - name: user_id
          in: path
          type: string
          required: true
  exposes:
  - type: rest
    namespace: nabu-cloud-groups-rest
    port: 8080
    description: REST adapter for Roku Nabu Cloud — groups. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/api/v1/organisations/{organisation-id}/groups
      name: api-v1-organisations-organisation-id-groups
      description: REST surface for api-v1-organisations-organisation_id-groups.
      operations:
      - method: GET
        name: groupslistgroup
        description: Roku List Group
        call: nabu-cloud-groups.groupslistgroup
        with:
          organisation_id: rest.organisation_id
          items: rest.items
          page: rest.page
          project_id: rest.project_id
          name: rest.name
          description: rest.description
          created_at: rest.created_at
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: groupscreategroup
        description: Roku Create Group
        call: nabu-cloud-groups.groupscreategroup
        with:
          organisation_id: rest.organisation_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/organisations/{organisation-id}/groups/{group-id}
      name: api-v1-organisations-organisation-id-groups-group-id
      description: REST surface for api-v1-organisations-organisation_id-groups-group_id.
      operations:
      - method: GET
        name: groupsgetgroup
        description: Roku Get a Group by ID
        call: nabu-cloud-groups.groupsgetgroup
        with:
          organisation_id: rest.organisation_id
          group_id: rest.group_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: groupsupdategroup
        description: Roku Update Group
        call: nabu-cloud-groups.groupsupdategroup
        with:
          group_id: rest.group_id
          organisation_id: rest.organisation_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: groupsdeletegroup
        description: Roku Delete Group
        call: nabu-cloud-groups.groupsdeletegroup
        with:
          group_id: rest.group_id
          organisation_id: rest.organisation_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/organisations/{organisation-id}/groups/{group-id}/members
      name: api-v1-organisations-organisation-id-groups-group-id-members
      description: REST surface for api-v1-organisations-organisation_id-groups-group_id-members.
      operations:
      - method: GET
        name: groupslistgroupmembers
        description: Roku List Group Members
        call: nabu-cloud-groups.groupslistgroupmembers
        with:
          group_id: rest.group_id
          organisation_id: rest.organisation_id
          skip: rest.skip
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: groupsaddgroupmember
        description: Roku Add Group Member
        call: nabu-cloud-groups.groupsaddgroupmember
        with:
          group_id: rest.group_id
          organisation_id: rest.organisation_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/organisations/{organisation-id}/groups/{group-id}/members/{user-id}
      name: api-v1-organisations-organisation-id-groups-group-id-members-user-id
      description: REST surface for api-v1-organisations-organisation_id-groups-group_id-members-user_id.
      operations:
      - method: GET
        name: groupsgetgroupmember
        description: Roku Get Group Member
        call: nabu-cloud-groups.groupsgetgroupmember
        with:
          group_id: rest.group_id
          organisation_id: rest.organisation_id
          user_id: rest.user_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: groupsupdategroupmember
        description: Roku Update Group Member
        call: nabu-cloud-groups.groupsupdategroupmember
        with:
          group_id: rest.group_id
          organisation_id: rest.organisation_id
          user_id: rest.user_id
          group_role_id: rest.group_role_id
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: groupsremovegroupmember
        description: Roku Remove Group Member
        call: nabu-cloud-groups.groupsremovegroupmember
        with:
          group_id: rest.group_id
          organisation_id: rest.organisation_id
          user_id: rest.user_id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: nabu-cloud-groups-mcp
    port: 9090
    transport: http
    description: MCP adapter for Roku Nabu Cloud — groups. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: roku-list-group
      description: Roku List Group
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nabu-cloud-groups.groupslistgroup
      with:
        organisation_id: tools.organisation_id
        items: tools.items
        page: tools.page
        project_id: tools.project_id
        name: tools.name
        description: tools.description
        created_at: tools.created_at
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-create-group
      description: Roku Create Group
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: nabu-cloud-groups.groupscreategroup
      with:
        organisation_id: tools.organisation_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-get-group-id
      description: Roku Get a Group by ID
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nabu-cloud-groups.groupsgetgroup
      with:
        organisation_id: tools.organisation_id
        group_id: tools.group_id
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-update-group
      description: Roku Update Group
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: nabu-cloud-groups.groupsupdategroup
      with:
        group_id: tools.group_id
        organisation_id: tools.organisation_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-delete-group
      description: Roku Delete Group
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: nabu-cloud-groups.groupsdeletegroup
      with:
        group_id: tools.group_id
        organisation_id: tools.organisation_id
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-list-group-members
      description: Roku List Group Members
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nabu-cloud-groups.groupslistgroupmembers
      with:
        group_id: tools.group_id
        organisation_id: tools.organisation_id
        skip: tools.skip
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-add-group-member
      description: Roku Add Group Member
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: nabu-cloud-groups.groupsaddgroupmember
      with:
        group_id: tools.group_id
        organisation_id: tools.organisation_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-get-group-member
      description: Roku Get Group Member
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nabu-cloud-groups.groupsgetgroupmember
      with:
        group_id: tools.group_id
        organisation_id: tools.organisation_id
        user_id: tools.user_id
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-update-group-member
      description: Roku Update Group Member
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: nabu-cloud-groups.groupsupdategroupmember
      with:
        group_id: tools.group_id
        organisation_id: tools.organisation_id
        user_id: tools.user_id
        group_role_id: tools.group_role_id
      outputParameters:
      - type: object
        mapping: $.
    - name: roku-remove-group-member
      description: Roku Remove Group Member
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: nabu-cloud-groups.groupsremovegroupmember
      with:
        group_id: tools.group_id
        organisation_id: tools.organisation_id
        user_id: tools.user_id
      outputParameters:
      - type: object
        mapping: $.