naftiko: 1.0.0-alpha2 info: label: StreamYard Live Streaming description: Unified capability for managing StreamYard live streaming and recording operations. Designed for content creators, media teams, and broadcast automation platforms. Covers the full broadcast lifecycle from creation through multi-platform destination setup, live monitoring, and post-broadcast recording access. tags: - Broadcasting - Live Streaming - Multi-Streaming - Recordings - Video created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: STREAMYARD_ACCESS_TOKEN: STREAMYARD_ACCESS_TOKEN capability: consumes: - type: http namespace: streamyard baseUri: https://api.streamyard.com description: StreamYard API authentication: type: bearer token: '{{STREAMYARD_ACCESS_TOKEN}}' resources: - name: broadcasts path: /broadcasts description: Broadcast management operations: - name: list-broadcasts method: GET description: List all broadcasts in the account inputParameters: - name: page in: query type: integer required: false description: Page number - name: perPage in: query type: integer required: false description: Broadcasts per page outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-broadcast method: POST description: Create a new broadcast inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: title: '{{tools.title}}' description: '{{tools.description}}' type: '{{tools.type}}' scheduledAt: '{{tools.scheduledAt}}' - name: broadcast path: /broadcasts/{broadcastId} description: Single broadcast operations operations: - name: get-broadcast method: GET description: Get details of a specific broadcast inputParameters: - name: broadcastId in: path type: string required: true description: The broadcast identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-broadcast method: PATCH description: Update broadcast title or scheduled time inputParameters: - name: broadcastId in: path type: string required: true description: The broadcast identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: title: '{{tools.title}}' description: '{{tools.description}}' scheduledAt: '{{tools.scheduledAt}}' - name: delete-broadcast method: DELETE description: Delete a broadcast inputParameters: - name: broadcastId in: path type: string required: true description: The broadcast identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: broadcast-destinations path: /broadcasts/{broadcastId}/destinations description: Broadcast destination management operations: - name: list-broadcast-destinations method: GET description: List destinations for a broadcast inputParameters: - name: broadcastId in: path type: string required: true description: The broadcast identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: add-broadcast-destination method: POST description: Add a streaming destination to a broadcast inputParameters: - name: broadcastId in: path type: string required: true description: The broadcast identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: destinationId: '{{tools.destinationId}}' title: '{{tools.title}}' privacy: '{{tools.privacy}}' - name: destinations path: /destinations description: Connected streaming destinations operations: - name: list-destinations method: GET description: List all connected streaming destinations inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: $. - name: recordings path: /recordings description: Recorded broadcasts operations: - name: list-recordings method: GET description: List all recordings inputParameters: - name: page in: query type: integer required: false description: Page number - name: perPage in: query type: integer required: false description: Recordings per page outputRawFormat: json outputParameters: - name: result type: object value: $. - name: recording path: /recordings/{recordingId} description: Single recording access operations: - name: get-recording method: GET description: Get details and download URL for a recording inputParameters: - name: recordingId in: path type: string required: true description: The recording identifier outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: streamyard-live-streaming-api description: Unified REST API for StreamYard live streaming and recording management. resources: - path: /v1/broadcasts name: broadcasts description: Broadcast lifecycle management operations: - method: GET name: list-broadcasts description: List all broadcasts call: streamyard.list-broadcasts with: page: rest.page perPage: rest.perPage outputParameters: - type: object mapping: $. - method: POST name: create-broadcast description: Create a new broadcast call: streamyard.create-broadcast outputParameters: - type: object mapping: $. - path: /v1/broadcasts/{broadcastId} name: broadcast description: Single broadcast management operations: - method: GET name: get-broadcast description: Get broadcast details and status call: streamyard.get-broadcast with: broadcastId: rest.broadcastId outputParameters: - type: object mapping: $. - method: PATCH name: update-broadcast description: Update broadcast metadata call: streamyard.update-broadcast with: broadcastId: rest.broadcastId outputParameters: - type: object mapping: $. - method: DELETE name: delete-broadcast description: Delete a broadcast call: streamyard.delete-broadcast with: broadcastId: rest.broadcastId outputParameters: - type: object mapping: $. - path: /v1/broadcasts/{broadcastId}/destinations name: broadcast-destinations description: Multi-platform streaming destinations operations: - method: GET name: list-broadcast-destinations description: List destinations for a broadcast call: streamyard.list-broadcast-destinations with: broadcastId: rest.broadcastId outputParameters: - type: object mapping: $. - method: POST name: add-broadcast-destination description: Add a streaming destination call: streamyard.add-broadcast-destination with: broadcastId: rest.broadcastId outputParameters: - type: object mapping: $. - path: /v1/destinations name: destinations description: Connected streaming platform accounts operations: - method: GET name: list-destinations description: List connected platform accounts call: streamyard.list-destinations outputParameters: - type: object mapping: $. - path: /v1/recordings name: recordings description: Post-broadcast recordings operations: - method: GET name: list-recordings description: List all recordings call: streamyard.list-recordings with: page: rest.page perPage: rest.perPage outputParameters: - type: object mapping: $. - path: /v1/recordings/{recordingId} name: recording description: Single recording access operations: - method: GET name: get-recording description: Get recording details and download URL call: streamyard.get-recording with: recordingId: rest.recordingId outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: streamyard-live-streaming-mcp transport: http description: MCP server for AI-assisted StreamYard broadcast management. tools: - name: list-broadcasts description: List all broadcasts in the StreamYard account including live and completed hints: readOnly: true openWorld: true call: streamyard.list-broadcasts with: page: tools.page perPage: tools.perPage outputParameters: - type: object mapping: $. - name: create-broadcast description: Create a new live stream or recording session hints: readOnly: false call: streamyard.create-broadcast outputParameters: - type: object mapping: $. - name: get-broadcast description: Get details and current status of a broadcast hints: readOnly: true call: streamyard.get-broadcast with: broadcastId: tools.broadcastId outputParameters: - type: object mapping: $. - name: update-broadcast description: Update a broadcast title, description, or scheduled time hints: readOnly: false idempotent: true call: streamyard.update-broadcast with: broadcastId: tools.broadcastId outputParameters: - type: object mapping: $. - name: delete-broadcast description: Delete a broadcast permanently hints: readOnly: false destructive: true call: streamyard.delete-broadcast with: broadcastId: tools.broadcastId outputParameters: - type: object mapping: $. - name: list-broadcast-destinations description: List the streaming platforms added to a specific broadcast hints: readOnly: true call: streamyard.list-broadcast-destinations with: broadcastId: tools.broadcastId outputParameters: - type: object mapping: $. - name: add-broadcast-destination description: Add a streaming platform (YouTube, Facebook, LinkedIn, Twitch) to a broadcast hints: readOnly: false call: streamyard.add-broadcast-destination with: broadcastId: tools.broadcastId outputParameters: - type: object mapping: $. - name: list-connected-destinations description: List all connected streaming platform accounts available for broadcasting hints: readOnly: true call: streamyard.list-destinations outputParameters: - type: object mapping: $. - name: list-recordings description: List all recordings from completed broadcasts hints: readOnly: true openWorld: true call: streamyard.list-recordings with: page: tools.page perPage: tools.perPage outputParameters: - type: object mapping: $. - name: get-recording-download description: Get a recording with its time-limited download URL hints: readOnly: true call: streamyard.get-recording with: recordingId: tools.recordingId outputParameters: - type: object mapping: $.