naftiko: 1.0.0-alpha2 info: label: "Livepeer Studio \u2014 Room" description: "Livepeer Studio \u2014 Room. 9 operations. Self-contained Naftiko capability for one Studio business surface." tags: - Livepeer - Studio - Room created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: LIVEPEER_API_KEY: LIVEPEER_API_KEY capability: consumes: - type: http namespace: livepeer-studio-room baseUri: https://livepeer.studio/api description: "Livepeer Studio \u2014 Room business capability. Self-contained, no shared references." resources: - name: room path: /room operations: - name: createroom method: POST description: Create a room outputRawFormat: json outputParameters: - name: result type: object value: $. - name: room-id path: /room/{id} operations: - name: getroom method: GET description: Retrieve a room outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter 'id' required: true - name: deleteroom method: DELETE description: Delete a room outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter 'id' required: true - name: room-id-egress path: /room/{id}/egress operations: - name: startroomegress method: POST description: Start room RTMP egress outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter 'id' required: true - name: body in: body type: object description: Request body (JSON). required: false - name: stoproomegress method: DELETE description: Stop room RTMP egress outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter 'id' required: true - name: room-id-user path: /room/{id}/user operations: - name: createroomuser method: POST description: Create a room user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter 'id' required: true - name: body in: body type: object description: Request body (JSON). required: false - name: room-id-user-userId path: /room/{id}/user/{userId} operations: - name: getroomuser method: GET description: Get user details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter 'id' required: true - name: userId in: path type: string description: path parameter 'userId' required: true - name: updateroomuser method: PUT description: Update a room user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter 'id' required: true - name: userId in: path type: string description: path parameter 'userId' required: true - name: body in: body type: object description: Request body (JSON). required: false - name: deleteroomuser method: DELETE description: Remove a user from the room outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter 'id' required: true - name: userId in: path type: string description: path parameter 'userId' required: true authentication: type: bearer token: '{{env.LIVEPEER_API_KEY}}' exposes: - type: rest namespace: livepeer-studio-room-rest port: 8080 description: "REST adapter for Livepeer Studio \u2014 Room." resources: - path: /room name: room description: REST surface for room. operations: - method: POST name: createroom description: Create a room call: livepeer-studio-room.createroom outputParameters: - type: object mapping: $. - path: /room/{id} name: room-id description: REST surface for room-id. operations: - method: GET name: getroom description: Retrieve a room call: livepeer-studio-room.getroom with: id: rest.id outputParameters: - type: object mapping: $. - method: DELETE name: deleteroom description: Delete a room call: livepeer-studio-room.deleteroom with: id: rest.id outputParameters: - type: object mapping: $. - path: /room/{id}/egress name: room-id-egress description: REST surface for room-id-egress. operations: - method: POST name: startroomegress description: Start room RTMP egress call: livepeer-studio-room.startroomegress with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: stoproomegress description: Stop room RTMP egress call: livepeer-studio-room.stoproomegress with: id: rest.id outputParameters: - type: object mapping: $. - path: /room/{id}/user name: room-id-user description: REST surface for room-id-user. operations: - method: POST name: createroomuser description: Create a room user call: livepeer-studio-room.createroomuser with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /room/{id}/user/{user-id} name: room-id-user-userId description: REST surface for room-id-user-userId. operations: - method: GET name: getroomuser description: Get user details call: livepeer-studio-room.getroomuser with: id: rest.id userId: rest.userId outputParameters: - type: object mapping: $. - method: PUT name: updateroomuser description: Update a room user call: livepeer-studio-room.updateroomuser with: id: rest.id userId: rest.userId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteroomuser description: Remove a user from the room call: livepeer-studio-room.deleteroomuser with: id: rest.id userId: rest.userId outputParameters: - type: object mapping: $. - type: mcp namespace: livepeer-studio-room-mcp port: 9090 transport: http description: "MCP adapter for Livepeer Studio \u2014 Room. One tool per consumed operation." tools: - name: create-a-room description: Create a room hints: readOnly: false destructive: false idempotent: false call: livepeer-studio-room.createroom outputParameters: - type: object mapping: $. - name: retrieve-a-room description: Retrieve a room hints: readOnly: true destructive: false idempotent: true call: livepeer-studio-room.getroom with: id: tools.id outputParameters: - type: object mapping: $. - name: delete-a-room description: Delete a room hints: readOnly: false destructive: true idempotent: true call: livepeer-studio-room.deleteroom with: id: tools.id outputParameters: - type: object mapping: $. - name: start-room-rtmp-egress description: Start room RTMP egress hints: readOnly: false destructive: false idempotent: false call: livepeer-studio-room.startroomegress with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: stop-room-rtmp-egress description: Stop room RTMP egress hints: readOnly: false destructive: true idempotent: true call: livepeer-studio-room.stoproomegress with: id: tools.id outputParameters: - type: object mapping: $. - name: create-a-room-user description: Create a room user hints: readOnly: false destructive: false idempotent: false call: livepeer-studio-room.createroomuser with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: get-user-details description: Get user details hints: readOnly: true destructive: false idempotent: true call: livepeer-studio-room.getroomuser with: id: tools.id userId: tools.userId outputParameters: - type: object mapping: $. - name: update-a-room-user description: Update a room user hints: readOnly: false destructive: false idempotent: true call: livepeer-studio-room.updateroomuser with: id: tools.id userId: tools.userId body: tools.body outputParameters: - type: object mapping: $. - name: remove-a-user-from-the-room description: Remove a user from the room hints: readOnly: false destructive: true idempotent: true call: livepeer-studio-room.deleteroomuser with: id: tools.id userId: tools.userId outputParameters: - type: object mapping: $.