naftiko: 1.0.0-alpha2 info: label: "Livepeer Studio \u2014 Stream" description: "Livepeer Studio \u2014 Stream. 11 operations. Self-contained Naftiko capability for one Studio business surface." tags: - Livepeer - Studio - Stream 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-stream baseUri: https://livepeer.studio/api description: "Livepeer Studio \u2014 Stream business capability. Self-contained, no shared references." resources: - name: stream path: /stream operations: - name: createstream method: POST description: Create a stream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: getstreams method: GET description: Retrieve streams outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: streamsonly in: query type: string description: query parameter 'streamsonly' required: false - name: stream-id path: /stream/{id} operations: - name: getstream method: GET description: Retrieve a stream outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatestream method: PATCH description: Update a stream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: deletestream method: DELETE description: Delete a stream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: ID of the stream required: true - name: stream-id-terminate path: /stream/{id}/terminate operations: - name: terminatestream method: DELETE description: Terminates a live stream outputRawFormat: json outputParameters: - name: result type: object value: $. - name: stream-id-start-pull path: /stream/{id}/start-pull operations: - name: startpullstream method: POST description: Start ingest for a pull stream outputRawFormat: json outputParameters: - name: result type: object value: $. - name: clip path: /clip operations: - name: createclip method: POST description: Create a clip outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: stream-id-clips path: /stream/{id}/clips operations: - name: getclips method: GET description: Retrieve clips of a livestream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: ID of the parent stream or playbackId of parent stream required: true - name: stream-id-create-multistream-target path: /stream/{id}/create-multistream-target operations: - name: addmultistreamtarget method: POST description: Add a multistream target outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: ID of the parent stream required: true - name: body in: body type: object description: Request body (JSON). required: false - name: stream-id-multistream-targetId path: /stream/{id}/multistream/{targetId} operations: - name: removemultistreamtarget method: DELETE description: Remove a multistream target outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: ID of the parent stream required: true - name: targetId in: path type: string description: ID of the multistream target required: true authentication: type: bearer token: '{{env.LIVEPEER_API_KEY}}' exposes: - type: rest namespace: livepeer-studio-stream-rest port: 8080 description: "REST adapter for Livepeer Studio \u2014 Stream." resources: - path: /stream name: stream description: REST surface for stream. operations: - method: POST name: createstream description: Create a stream call: livepeer-studio-stream.createstream with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: getstreams description: Retrieve streams call: livepeer-studio-stream.getstreams with: streamsonly: rest.streamsonly outputParameters: - type: object mapping: $. - path: /stream/{id} name: stream-id description: REST surface for stream-id. operations: - method: GET name: getstream description: Retrieve a stream call: livepeer-studio-stream.getstream outputParameters: - type: object mapping: $. - method: PATCH name: updatestream description: Update a stream call: livepeer-studio-stream.updatestream with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletestream description: Delete a stream call: livepeer-studio-stream.deletestream with: id: rest.id outputParameters: - type: object mapping: $. - path: /stream/{id}/terminate name: stream-id-terminate description: REST surface for stream-id-terminate. operations: - method: DELETE name: terminatestream description: Terminates a live stream call: livepeer-studio-stream.terminatestream outputParameters: - type: object mapping: $. - path: /stream/{id}/start-pull name: stream-id-start-pull description: REST surface for stream-id-start-pull. operations: - method: POST name: startpullstream description: Start ingest for a pull stream call: livepeer-studio-stream.startpullstream outputParameters: - type: object mapping: $. - path: /clip name: clip description: REST surface for clip. operations: - method: POST name: createclip description: Create a clip call: livepeer-studio-stream.createclip with: body: rest.body outputParameters: - type: object mapping: $. - path: /stream/{id}/clips name: stream-id-clips description: REST surface for stream-id-clips. operations: - method: GET name: getclips description: Retrieve clips of a livestream call: livepeer-studio-stream.getclips with: id: rest.id outputParameters: - type: object mapping: $. - path: /stream/{id}/create-multistream-target name: stream-id-create-multistream-target description: REST surface for stream-id-create-multistream-target. operations: - method: POST name: addmultistreamtarget description: Add a multistream target call: livepeer-studio-stream.addmultistreamtarget with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /stream/{id}/multistream/{target-id} name: stream-id-multistream-targetId description: REST surface for stream-id-multistream-targetId. operations: - method: DELETE name: removemultistreamtarget description: Remove a multistream target call: livepeer-studio-stream.removemultistreamtarget with: id: rest.id targetId: rest.targetId outputParameters: - type: object mapping: $. - type: mcp namespace: livepeer-studio-stream-mcp port: 9090 transport: http description: "MCP adapter for Livepeer Studio \u2014 Stream. One tool per consumed operation." tools: - name: create-a-stream description: Create a stream hints: readOnly: false destructive: false idempotent: false call: livepeer-studio-stream.createstream with: body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-streams description: Retrieve streams hints: readOnly: true destructive: false idempotent: true call: livepeer-studio-stream.getstreams with: streamsonly: tools.streamsonly outputParameters: - type: object mapping: $. - name: retrieve-a-stream description: Retrieve a stream hints: readOnly: true destructive: false idempotent: true call: livepeer-studio-stream.getstream outputParameters: - type: object mapping: $. - name: update-a-stream description: Update a stream hints: readOnly: false destructive: false idempotent: false call: livepeer-studio-stream.updatestream with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-a-stream description: Delete a stream hints: readOnly: false destructive: true idempotent: true call: livepeer-studio-stream.deletestream with: id: tools.id outputParameters: - type: object mapping: $. - name: terminates-a-live-stream description: Terminates a live stream hints: readOnly: false destructive: true idempotent: true call: livepeer-studio-stream.terminatestream outputParameters: - type: object mapping: $. - name: start-ingest-for-a-pull-stream description: Start ingest for a pull stream hints: readOnly: false destructive: false idempotent: false call: livepeer-studio-stream.startpullstream outputParameters: - type: object mapping: $. - name: create-a-clip description: Create a clip hints: readOnly: false destructive: false idempotent: false call: livepeer-studio-stream.createclip with: body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-clips-of-a-livestream description: Retrieve clips of a livestream hints: readOnly: true destructive: false idempotent: true call: livepeer-studio-stream.getclips with: id: tools.id outputParameters: - type: object mapping: $. - name: add-a-multistream-target description: Add a multistream target hints: readOnly: false destructive: false idempotent: false call: livepeer-studio-stream.addmultistreamtarget with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: remove-a-multistream-target description: Remove a multistream target hints: readOnly: false destructive: true idempotent: true call: livepeer-studio-stream.removemultistreamtarget with: id: tools.id targetId: tools.targetId outputParameters: - type: object mapping: $.