naftiko: 1.0.0-alpha2 info: label: Riverside Podcast Production description: Unified workflow capability for enterprise podcast and video production using the Riverside Business API. Combines recording management, transcription retrieval, export handling, and webinar registration into workflows for content teams and production managers. tags: - Podcast - Recording - Media - Content Creation - Riverside - Video created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: RIVERSIDE_API_KEY: RIVERSIDE_API_KEY capability: consumes: - type: http namespace: riverside baseUri: https://platform.riverside.fm description: Riverside Business API for podcast and video recording management authentication: type: bearer token: '{{RIVERSIDE_API_KEY}}' resources: - name: productions path: /api/v3/productions description: Workspace production management operations: - name: list-workspace method: GET description: List all productions in the workspace with studios and projects inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: $. - name: recordings path: /api/v2/recordings description: Recording list and search operations: - name: list-all-recordings method: GET description: List all recordings with optional filters inputParameters: - name: studioId in: query type: string required: false description: Filter by studio ID - name: projectId in: query type: string required: false description: Filter by project ID - name: start_date in: query type: string required: false description: Filter recordings on or after date (YYYY-MM-DD) - name: end_date in: query type: string required: false description: Filter recordings on or before date (YYYY-MM-DD) - name: page in: query type: integer required: false description: Page number for pagination outputRawFormat: json outputParameters: - name: result type: object value: $. - name: recording-detail path: /api/v1/recordings/{recording_id} description: Individual recording management operations: - name: get-recording method: GET description: Retrieve a single recording with tracks and metadata inputParameters: - name: recording_id in: path type: string required: true description: The recording ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: delete-recording method: DELETE description: Permanently delete a recording inputParameters: - name: recording_id in: path type: string required: true description: The recording ID to delete outputRawFormat: json outputParameters: - name: result type: object value: $. - name: recording-transcription path: /api/v1/recordings/{recording_id}/transcription/download description: Transcription file download operations: - name: download-transcription-file method: GET description: Download recording transcription in SRT or TXT format inputParameters: - name: recording_id in: path type: string required: true description: The recording ID - name: format in: query type: string required: false description: Transcription format (srt or txt) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: exports path: /api/v1/exports description: Export management operations: - name: list-all-exports method: GET description: List all exports in the workspace inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: $. - name: export-detail path: /api/v1/exports/{export_id} description: Individual export management operations: - name: get-export method: GET description: Get details for a specific export inputParameters: - name: export_id in: path type: string required: true description: The export ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: delete-export method: DELETE description: Delete an export inputParameters: - name: export_id in: path type: string required: true description: The export ID to delete outputRawFormat: json outputParameters: - name: result type: object value: $. - name: webinar-registrants path: /api/v1/webinars/{webinar_id}/registrants description: Webinar registration management operations: - name: create-webinar-registrant method: POST description: Register a participant for a webinar inputParameters: - name: webinar_id in: path type: string required: true description: The webinar ID outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: email: '{{tools.email}}' name: '{{tools.name}}' - name: get-registrants method: GET description: List all registrants for a webinar inputParameters: - name: webinar_id in: path type: string required: true description: The webinar ID outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: riverside-production-api description: Unified REST API for Riverside podcast and video production workflows. resources: - path: /v1/productions name: productions description: Production workspace management operations: - method: GET name: list-productions description: List all productions with associated studios and projects call: riverside.list-workspace outputParameters: - type: object mapping: $. - path: /v1/recordings name: recordings description: Recording management operations: - method: GET name: list-recordings description: List all recordings with optional studio, project, or date filters call: riverside.list-all-recordings with: studioId: rest.studioId projectId: rest.projectId start_date: rest.start_date end_date: rest.end_date page: rest.page outputParameters: - type: object mapping: $. - path: /v1/recordings/{recording-id} name: recording-detail description: Individual recording operations: - method: GET name: get-recording description: Get a recording with tracks and metadata call: riverside.get-recording with: recording_id: rest.recording-id outputParameters: - type: object mapping: $. - method: DELETE name: delete-recording description: Permanently delete a recording call: riverside.delete-recording with: recording_id: rest.recording-id outputParameters: - type: object mapping: $. - path: /v1/recordings/{recording-id}/transcription name: transcription description: Transcription file access operations: - method: GET name: download-transcription description: Download transcription file in SRT or TXT format call: riverside.download-transcription-file with: recording_id: rest.recording-id format: rest.format outputParameters: - type: object mapping: $. - path: /v1/exports name: exports description: Export management operations: - method: GET name: list-exports description: List all exports in the workspace call: riverside.list-all-exports outputParameters: - type: object mapping: $. - path: /v1/exports/{export-id} name: export-detail description: Individual export operations: - method: GET name: get-export description: Get details for a specific export call: riverside.get-export with: export_id: rest.export-id outputParameters: - type: object mapping: $. - method: DELETE name: delete-export description: Delete an export call: riverside.delete-export with: export_id: rest.export-id outputParameters: - type: object mapping: $. - path: /v1/webinars/{webinar-id}/registrants name: webinar-registrants description: Webinar registration operations: - method: POST name: register-participant description: Register a participant for a webinar call: riverside.create-webinar-registrant with: webinar_id: rest.webinar-id outputParameters: - type: object mapping: $. - method: GET name: list-registrants description: List all webinar registrants call: riverside.get-registrants with: webinar_id: rest.webinar-id outputParameters: - type: object mapping: $. - type: mcp port: 9080 namespace: riverside-production-mcp transport: http description: MCP server for AI-assisted Riverside podcast production workflows. tools: - name: list-productions description: List all workspace productions with their studios and projects hints: readOnly: true openWorld: false call: riverside.list-workspace outputParameters: - type: object mapping: $. - name: list-recordings description: List recordings, optionally filtered by studio, project, or date range hints: readOnly: true openWorld: false call: riverside.list-all-recordings with: studioId: tools.studioId projectId: tools.projectId start_date: tools.start_date end_date: tools.end_date page: tools.page outputParameters: - type: object mapping: $. - name: get-recording description: Retrieve a single recording with tracks and transcription status hints: readOnly: true openWorld: false call: riverside.get-recording with: recording_id: tools.recording_id outputParameters: - type: object mapping: $. - name: delete-recording description: Permanently delete a recording and all its files hints: readOnly: false destructive: true idempotent: true call: riverside.delete-recording with: recording_id: tools.recording_id outputParameters: - type: object mapping: $. - name: download-transcription description: Download a recording transcription in SRT or TXT format hints: readOnly: true openWorld: false call: riverside.download-transcription-file with: recording_id: tools.recording_id format: tools.format outputParameters: - type: object mapping: $. - name: list-exports description: List all exports in the workspace hints: readOnly: true openWorld: false call: riverside.list-all-exports outputParameters: - type: object mapping: $. - name: get-export description: Get details for a specific export hints: readOnly: true openWorld: false call: riverside.get-export with: export_id: tools.export_id outputParameters: - type: object mapping: $. - name: delete-export description: Delete an export hints: readOnly: false destructive: true idempotent: true call: riverside.delete-export with: export_id: tools.export_id outputParameters: - type: object mapping: $. - name: register-webinar-participant description: Register a participant for a scheduled webinar hints: readOnly: false destructive: false call: riverside.create-webinar-registrant with: webinar_id: tools.webinar_id outputParameters: - type: object mapping: $. - name: list-webinar-registrants description: List all registrants for a webinar session hints: readOnly: true openWorld: false call: riverside.get-registrants with: webinar_id: tools.webinar_id outputParameters: - type: object mapping: $.