Restream · Capability

Restream Multistream Management

Unified workflow capability for managing live multistreaming operations. Combines Restream REST API capabilities for channel configuration, event lifecycle management, stream key retrieval, and platform management. Used by content creators and developers integrating multistreaming into their applications.

Run with Naftiko BroadcastChannelsEventsLive StreamingMultistreamingRestream

What You Can Do

GET
List platforms — List all supported streaming destination platforms
/v1/platforms
GET
List channels — List all connected streaming channels
/v1/channels
GET
Get channel — Get a specific channel
/v1/channels/{id}
PATCH
Update channel — Update channel settings
/v1/channels/{id}
GET
Get channel meta — Get channel stream metadata
/v1/channels/{id}/meta
PATCH
Update channel meta — Update channel stream title and description
/v1/channels/{id}/meta
GET
Get stream key — Get stream key for broadcasting
/v1/stream-key
GET
List upcoming events — List upcoming live events
/v1/events/upcoming
GET
List in progress events — List currently active live events
/v1/events/in-progress
GET
List event history — List historical events
/v1/events/history
GET
Get event — Get a specific event
/v1/events/{id}
GET
Get event stream key — Get stream key for a specific event
/v1/events/{id}/stream-key

MCP Tools

list-platforms

List all streaming platforms supported by Restream for multistreaming destinations

read-only idempotent
get-user-profile

Get the authenticated user's Restream account profile

read-only idempotent
get-stream-key

Retrieve the RTMP stream key and SRT URL for broadcasting

read-only idempotent
list-channels

List all connected streaming destination channels

read-only idempotent
get-channel

Get details for a specific streaming channel

read-only idempotent
update-channel

Enable or disable a channel, or update its display name

idempotent
get-channel-meta

Get stream metadata (title, description) for a channel

read-only idempotent
update-channel-meta

Update the stream title and description for a channel

idempotent
list-upcoming-events

List all scheduled upcoming live stream events

read-only idempotent
list-in-progress-events

List all currently active live streaming events

read-only idempotent
list-event-history

List historical completed live streaming events

read-only idempotent
get-event

Get details for a specific live streaming event

read-only idempotent
get-event-stream-key

Get the stream key for a specific event

read-only idempotent

APIs Used

restream

Capability Spec

multistream-management.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Restream Multistream Management"
  description: >-
    Unified workflow capability for managing live multistreaming operations.
    Combines Restream REST API capabilities for channel configuration, event
    lifecycle management, stream key retrieval, and platform management.
    Used by content creators and developers integrating multistreaming into
    their applications.
  tags:
    - Broadcast
    - Channels
    - Events
    - Live Streaming
    - Multistreaming
    - Restream
  created: "2026-05-02"
  modified: "2026-05-02"

binds:
  - namespace: env
    keys:
      RESTREAM_ACCESS_TOKEN: RESTREAM_ACCESS_TOKEN

capability:
  consumes:
    - import: restream
      location: ./shared/restream-api.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: multistream-management-api
      description: "Unified REST API for Restream multistreaming management."
      resources:
        - path: /v1/platforms
          name: platforms
          description: "Streaming platform directory"
          operations:
            - method: GET
              name: list-platforms
              description: "List all supported streaming destination platforms"
              call: "restream.list-platforms"
              outputParameters:
                - type: array
                  mapping: "$."

        - path: /v1/channels
          name: channels
          description: "Connected streaming channels"
          operations:
            - method: GET
              name: list-channels
              description: "List all connected streaming channels"
              call: "restream.list-channels"
              outputParameters:
                - type: array
                  mapping: "$."

        - path: /v1/channels/{id}
          name: channel
          description: "Individual channel management"
          operations:
            - method: GET
              name: get-channel
              description: "Get a specific channel"
              call: "restream.get-channel"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: PATCH
              name: update-channel
              description: "Update channel settings"
              call: "restream.update-channel"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/channels/{id}/meta
          name: channel-meta
          description: "Channel stream metadata"
          operations:
            - method: GET
              name: get-channel-meta
              description: "Get channel stream metadata"
              call: "restream.get-channel-meta"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: PATCH
              name: update-channel-meta
              description: "Update channel stream title and description"
              call: "restream.update-channel-meta"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/stream-key
          name: stream-key
          description: "RTMP stream key and SRT URL"
          operations:
            - method: GET
              name: get-stream-key
              description: "Get stream key for broadcasting"
              call: "restream.get-stream-key"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/events/upcoming
          name: upcoming-events
          description: "Scheduled upcoming events"
          operations:
            - method: GET
              name: list-upcoming-events
              description: "List upcoming live events"
              call: "restream.list-upcoming-events"
              outputParameters:
                - type: array
                  mapping: "$."

        - path: /v1/events/in-progress
          name: live-events
          description: "Currently streaming events"
          operations:
            - method: GET
              name: list-in-progress-events
              description: "List currently active live events"
              call: "restream.list-in-progress-events"
              outputParameters:
                - type: array
                  mapping: "$."

        - path: /v1/events/history
          name: event-history
          description: "Completed event history"
          operations:
            - method: GET
              name: list-event-history
              description: "List historical events"
              call: "restream.list-event-history"
              outputParameters:
                - type: array
                  mapping: "$."

        - path: /v1/events/{id}
          name: event
          description: "Individual event management"
          operations:
            - method: GET
              name: get-event
              description: "Get a specific event"
              call: "restream.get-event"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/events/{id}/stream-key
          name: event-stream-key
          description: "Event-specific stream key"
          operations:
            - method: GET
              name: get-event-stream-key
              description: "Get stream key for a specific event"
              call: "restream.get-event-stream-key"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9080
      namespace: multistream-management-mcp
      transport: http
      description: "MCP server for AI-assisted multistreaming management and live event operations."
      tools:
        - name: list-platforms
          description: "List all streaming platforms supported by Restream for multistreaming destinations"
          hints:
            readOnly: true
            idempotent: true
          call: "restream.list-platforms"
          outputParameters:
            - type: array
              mapping: "$."

        - name: get-user-profile
          description: "Get the authenticated user's Restream account profile"
          hints:
            readOnly: true
            idempotent: true
          call: "restream.get-user-profile"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-stream-key
          description: "Retrieve the RTMP stream key and SRT URL for broadcasting"
          hints:
            readOnly: true
            idempotent: true
          call: "restream.get-stream-key"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-channels
          description: "List all connected streaming destination channels"
          hints:
            readOnly: true
            idempotent: true
          call: "restream.list-channels"
          outputParameters:
            - type: array
              mapping: "$."

        - name: get-channel
          description: "Get details for a specific streaming channel"
          hints:
            readOnly: true
            idempotent: true
          call: "restream.get-channel"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."

        - name: update-channel
          description: "Enable or disable a channel, or update its display name"
          hints:
            readOnly: false
            idempotent: true
          call: "restream.update-channel"
          with:
            id: "tools.id"
            active: "tools.active"
            displayName: "tools.displayName"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-channel-meta
          description: "Get stream metadata (title, description) for a channel"
          hints:
            readOnly: true
            idempotent: true
          call: "restream.get-channel-meta"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."

        - name: update-channel-meta
          description: "Update the stream title and description for a channel"
          hints:
            readOnly: false
            idempotent: true
          call: "restream.update-channel-meta"
          with:
            id: "tools.id"
            title: "tools.title"
            description: "tools.description"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-upcoming-events
          description: "List all scheduled upcoming live stream events"
          hints:
            readOnly: true
            idempotent: true
          call: "restream.list-upcoming-events"
          outputParameters:
            - type: array
              mapping: "$."

        - name: list-in-progress-events
          description: "List all currently active live streaming events"
          hints:
            readOnly: true
            idempotent: true
          call: "restream.list-in-progress-events"
          outputParameters:
            - type: array
              mapping: "$."

        - name: list-event-history
          description: "List historical completed live streaming events"
          hints:
            readOnly: true
            idempotent: true
          call: "restream.list-event-history"
          with:
            limit: "tools.limit"
            offset: "tools.offset"
          outputParameters:
            - type: array
              mapping: "$."

        - name: get-event
          description: "Get details for a specific live streaming event"
          hints:
            readOnly: true
            idempotent: true
          call: "restream.get-event"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-event-stream-key
          description: "Get the stream key for a specific event"
          hints:
            readOnly: true
            idempotent: true
          call: "restream.get-event-stream-key"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."