naftiko: 1.0.0-alpha2 info: label: Radio Cult API — Playlists description: 'Radio Cult API — Playlists. 3 operations. Lead operation: Retrieve all playlists. Self-contained Naftiko capability covering one Radio Cult business surface.' tags: - Radio Cult - Playlists created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: RADIO_CULT_API_KEY: RADIO_CULT_API_KEY capability: consumes: - type: http namespace: radio-cult-playlists baseUri: https://api.radiocult.fm description: Radio Cult API — Playlists business capability. Self-contained, no shared references. resources: - name: api-station-stationId-media-playlist path: /api/station/{stationId}/media/playlist operations: - name: get method: GET description: Retrieve all playlists outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: stationId in: path type: string required: true - name: api-station-stationId-media-playlist-playlistId-entries path: /api/station/{stationId}/media/playlist/{playlistId}/entries operations: - name: delete method: DELETE description: Clear all entries from a playlist outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: stationId in: path type: string required: true - name: playlistId in: path type: string required: true - name: api-station-stationId-media-playlist-playlistId-entry path: /api/station/{stationId}/media/playlist/{playlistId}/entry operations: - name: post method: POST description: Add an entry to a playlist outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: stationId in: path type: string required: true - name: playlistId in: path type: string required: true authentication: type: apikey key: x-api-key value: '{{env.RADIO_CULT_API_KEY}}' placement: header exposes: - type: rest namespace: radio-cult-playlists-rest port: 8080 description: REST adapter for Radio Cult API — Playlists. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/station/{stationid}/media/playlist name: api-station-stationid-media-playlist description: REST surface for api-station-stationId-media-playlist. operations: - method: GET name: get description: Retrieve all playlists call: radio-cult-playlists.get with: stationId: rest.stationId outputParameters: - type: object mapping: $. - path: /v1/api/station/{stationid}/media/playlist/{playlistid}/entries name: api-station-stationid-media-playlist-playlistid-entries description: REST surface for api-station-stationId-media-playlist-playlistId-entries. operations: - method: DELETE name: delete description: Clear all entries from a playlist call: radio-cult-playlists.delete with: stationId: rest.stationId playlistId: rest.playlistId outputParameters: - type: object mapping: $. - path: /v1/api/station/{stationid}/media/playlist/{playlistid}/entry name: api-station-stationid-media-playlist-playlistid-entry description: REST surface for api-station-stationId-media-playlist-playlistId-entry. operations: - method: POST name: post description: Add an entry to a playlist call: radio-cult-playlists.post with: stationId: rest.stationId playlistId: rest.playlistId outputParameters: - type: object mapping: $. - type: mcp namespace: radio-cult-playlists-mcp port: 9090 transport: http description: MCP adapter for Radio Cult API — Playlists. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: retrieve-all-playlists description: Retrieve all playlists hints: readOnly: true destructive: false idempotent: true call: radio-cult-playlists.get with: stationId: tools.stationId outputParameters: - type: object mapping: $. - name: clear-all-entries-playlist description: Clear all entries from a playlist hints: readOnly: false destructive: true idempotent: true call: radio-cult-playlists.delete with: stationId: tools.stationId playlistId: tools.playlistId outputParameters: - type: object mapping: $. - name: add-entry-playlist description: Add an entry to a playlist hints: readOnly: false destructive: false idempotent: false call: radio-cult-playlists.post with: stationId: tools.stationId playlistId: tools.playlistId outputParameters: - type: object mapping: $.