naftiko: 1.0.0-alpha2 info: label: TIDAL Playback API — Play Queues description: TIDAL Playback API — Play Queues. 13 operations. Self-contained Naftiko capability covering one TIDAL business surface. tags: - TIDAL - Music - playQueues created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: TIDAL_ACCESS_TOKEN: TIDAL_ACCESS_TOKEN capability: consumes: - type: http namespace: playback-play-queues baseUri: https://openapi.tidal.com description: TIDAL Playback API — Play Queues business capability. Self-contained, no shared references. resources: - name: playQueues path: /playQueues operations: - name: getplayqueues method: GET description: Get multiple playQueues. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page[cursor] in: query type: string description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified required: false - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: current, future, owners, past' required: false - name: filter[owners.id] in: query type: array description: User id. Use `me` for the authenticated user required: false - name: postplayqueues method: POST description: Create single playQueue. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: JSON:API document request body. required: true - name: playQueues-id path: /playQueues/{id} operations: - name: deleteplayqueues method: DELETE description: Delete single playQueue. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Play queue id required: true - name: getplayqueues method: GET description: Get single playQueue. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Play queue id required: true - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: current, future, owners, past' required: false - name: patchplayqueues method: PATCH description: Update single playQueue. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Play queue id required: true - name: body in: body type: object description: JSON:API document request body. required: true - name: playQueues-id-relationships-current path: /playQueues/{id}/relationships/current operations: - name: getplayqueues method: GET description: Get current relationship ("to-one"). outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Play queue id required: true - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: current' required: false - name: patchplayqueues method: PATCH description: Update current relationship ("to-one"). outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Play queue id required: true - name: body in: body type: object description: JSON:API document request body. required: true - name: playQueues-id-relationships-future path: /playQueues/{id}/relationships/future operations: - name: deleteplayqueues method: DELETE description: Delete from future relationship ("to-many"). outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Play queue id required: true - name: getplayqueues method: GET description: Get future relationship ("to-many"). outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Play queue id required: true - name: page[cursor] in: query type: string description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified required: false - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: future' required: false - name: patchplayqueues method: PATCH description: Update future relationship ("to-many"). outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Play queue id required: true - name: body in: body type: object description: JSON:API document request body. required: true - name: postplayqueues method: POST description: Add to future relationship ("to-many"). outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Play queue id required: true - name: body in: body type: object description: JSON:API document request body. required: true - name: playQueues-id-relationships-owners path: /playQueues/{id}/relationships/owners operations: - name: getplayqueues method: GET description: Get owners relationship ("to-many"). outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Play queue id required: true - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: owners' required: false - name: page[cursor] in: query type: string description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified required: false - name: playQueues-id-relationships-past path: /playQueues/{id}/relationships/past operations: - name: getplayqueues method: GET description: Get past relationship ("to-many"). outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Play queue id required: true - name: page[cursor] in: query type: string description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not specified required: false - name: include in: query type: array description: 'Allows the client to customize which related resources should be returned. Available options: past' required: false authentication: type: bearer value: '{{env.TIDAL_ACCESS_TOKEN}}' placement: header header: Authorization prefix: 'Bearer ' exposes: - type: rest namespace: playback-play-queues-rest port: 8080 description: REST adapter for TIDAL Playback API — Play Queues. One Spectral-compliant resource per consumed operation, prefixed with /v2. resources: - path: /v2/playQueues name: playQueues description: REST surface for playQueues. operations: - method: GET name: getplayqueues description: Get multiple playQueues. call: playback-play-queues.getplayqueues with: page[cursor]: rest.query.page[cursor] include: rest.query.include filter[owners.id]: rest.query.filter[owners.id] outputParameters: - type: object mapping: $. - method: POST name: postplayqueues description: Create single playQueue. call: playback-play-queues.postplayqueues with: body: rest.body outputParameters: - type: object mapping: $. - path: /v2/playQueues/{id} name: playQueues-id description: REST surface for playQueues-id. operations: - method: DELETE name: deleteplayqueues description: Delete single playQueue. call: playback-play-queues.deleteplayqueues with: id: rest.path.id outputParameters: - type: object mapping: $. - method: GET name: getplayqueues description: Get single playQueue. call: playback-play-queues.getplayqueues with: id: rest.path.id include: rest.query.include outputParameters: - type: object mapping: $. - method: PATCH name: patchplayqueues description: Update single playQueue. call: playback-play-queues.patchplayqueues with: id: rest.path.id body: rest.body outputParameters: - type: object mapping: $. - path: /v2/playQueues/{id}/relationships/current name: playQueues-id-relationships-current description: REST surface for playQueues-id-relationships-current. operations: - method: GET name: getplayqueues description: Get current relationship ("to-one"). call: playback-play-queues.getplayqueues with: id: rest.path.id include: rest.query.include outputParameters: - type: object mapping: $. - method: PATCH name: patchplayqueues description: Update current relationship ("to-one"). call: playback-play-queues.patchplayqueues with: id: rest.path.id body: rest.body outputParameters: - type: object mapping: $. - path: /v2/playQueues/{id}/relationships/future name: playQueues-id-relationships-future description: REST surface for playQueues-id-relationships-future. operations: - method: DELETE name: deleteplayqueues description: Delete from future relationship ("to-many"). call: playback-play-queues.deleteplayqueues with: id: rest.path.id outputParameters: - type: object mapping: $. - method: GET name: getplayqueues description: Get future relationship ("to-many"). call: playback-play-queues.getplayqueues with: id: rest.path.id page[cursor]: rest.query.page[cursor] include: rest.query.include outputParameters: - type: object mapping: $. - method: PATCH name: patchplayqueues description: Update future relationship ("to-many"). call: playback-play-queues.patchplayqueues with: id: rest.path.id body: rest.body outputParameters: - type: object mapping: $. - method: POST name: postplayqueues description: Add to future relationship ("to-many"). call: playback-play-queues.postplayqueues with: id: rest.path.id body: rest.body outputParameters: - type: object mapping: $. - path: /v2/playQueues/{id}/relationships/owners name: playQueues-id-relationships-owners description: REST surface for playQueues-id-relationships-owners. operations: - method: GET name: getplayqueues description: Get owners relationship ("to-many"). call: playback-play-queues.getplayqueues with: id: rest.path.id include: rest.query.include page[cursor]: rest.query.page[cursor] outputParameters: - type: object mapping: $. - path: /v2/playQueues/{id}/relationships/past name: playQueues-id-relationships-past description: REST surface for playQueues-id-relationships-past. operations: - method: GET name: getplayqueues description: Get past relationship ("to-many"). call: playback-play-queues.getplayqueues with: id: rest.path.id page[cursor]: rest.query.page[cursor] include: rest.query.include outputParameters: - type: object mapping: $. - type: mcp namespace: playback-play-queues-mcp port: 9090 transport: http description: MCP adapter for TIDAL Playback API — Play Queues. One tool per consumed operation. tools: - name: tidal-getplayqueues description: Get multiple playQueues. hints: readOnly: true destructive: false idempotent: true call: playback-play-queues.getplayqueues with: page[cursor]: tools.page[cursor] include: tools.include filter[owners.id]: tools.filter[owners.id] outputParameters: - type: object mapping: $. - name: tidal-postplayqueues description: Create single playQueue. hints: readOnly: false destructive: false idempotent: false call: playback-play-queues.postplayqueues with: body: tools.body outputParameters: - type: object mapping: $. - name: tidal-deleteplayqueues description: Delete single playQueue. hints: readOnly: false destructive: true idempotent: true call: playback-play-queues.deleteplayqueues with: id: tools.id outputParameters: - type: object mapping: $. - name: tidal-getplayqueues description: Get single playQueue. hints: readOnly: true destructive: false idempotent: true call: playback-play-queues.getplayqueues with: id: tools.id include: tools.include outputParameters: - type: object mapping: $. - name: tidal-patchplayqueues description: Update single playQueue. hints: readOnly: false destructive: false idempotent: false call: playback-play-queues.patchplayqueues with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: tidal-getplayqueues description: Get current relationship ("to-one"). hints: readOnly: true destructive: false idempotent: true call: playback-play-queues.getplayqueues with: id: tools.id include: tools.include outputParameters: - type: object mapping: $. - name: tidal-patchplayqueues description: Update current relationship ("to-one"). hints: readOnly: false destructive: false idempotent: false call: playback-play-queues.patchplayqueues with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: tidal-deleteplayqueues description: Delete from future relationship ("to-many"). hints: readOnly: false destructive: true idempotent: true call: playback-play-queues.deleteplayqueues with: id: tools.id outputParameters: - type: object mapping: $. - name: tidal-getplayqueues description: Get future relationship ("to-many"). hints: readOnly: true destructive: false idempotent: true call: playback-play-queues.getplayqueues with: id: tools.id page[cursor]: tools.page[cursor] include: tools.include outputParameters: - type: object mapping: $. - name: tidal-patchplayqueues description: Update future relationship ("to-many"). hints: readOnly: false destructive: false idempotent: false call: playback-play-queues.patchplayqueues with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: tidal-postplayqueues description: Add to future relationship ("to-many"). hints: readOnly: false destructive: false idempotent: false call: playback-play-queues.postplayqueues with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: tidal-getplayqueues description: Get owners relationship ("to-many"). hints: readOnly: true destructive: false idempotent: true call: playback-play-queues.getplayqueues with: id: tools.id include: tools.include page[cursor]: tools.page[cursor] outputParameters: - type: object mapping: $. - name: tidal-getplayqueues description: Get past relationship ("to-many"). hints: readOnly: true destructive: false idempotent: true call: playback-play-queues.getplayqueues with: id: tools.id page[cursor]: tools.page[cursor] include: tools.include outputParameters: - type: object mapping: $.