naftiko: 1.0.0-alpha2 info: label: Discogs API — User Collection description: 'Discogs — User Collection. 4 operations. Lead operation: Get collection folders. Self-contained Naftiko capability covering one Discogs business surface.' tags: - Discogs - Music - User Collection created: '2026-05-29' modified: '2026-05-29' binds: - namespace: env keys: DISCOGS_TOKEN: DISCOGS_TOKEN capability: consumes: - type: http namespace: discogs-user-collection baseUri: https://api.discogs.com description: Discogs API — User Collection business capability. Self-contained, no shared references. authentication: type: apikey key: Authorization value: Discogs token={{env.DISCOGS_TOKEN}} placement: header resources: - name: users-username-collection-folders path: /users/{username}/collection/folders operations: - name: getcollectionfolders method: GET description: Get collection folders inputParameters: - name: username in: path type: string required: true description: The user's Discogs username. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createcollectionfolder method: POST description: Create a collection folder inputParameters: - name: username in: path type: string required: true description: The user's Discogs username. - name: body in: body type: object required: true description: Request body (JSON). outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-username-collection-folders-folder-id-releases path: /users/{username}/collection/folders/{folder_id}/releases operations: - name: getcollectionitemsbyfolder method: GET description: Get collection items by folder inputParameters: - name: username in: path type: string required: true description: The user's Discogs username. - name: folder_id in: path type: integer required: true description: The ID of the collection folder. - name: page in: query type: integer required: false description: The page number to return. - name: per_page in: query type: integer required: false description: The number of items to return per page. - name: sort in: query type: string required: false description: The field to sort the results by. - name: sort_order in: query type: string required: false description: The order to sort the results. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-username-collection-folders-folder-id-releases-release-id path: /users/{username}/collection/folders/{folder_id}/releases/{release_id} operations: - name: addreleasetocollectionfolder method: POST description: Add release to collection folder inputParameters: - name: username in: path type: string required: true description: The user's Discogs username. - name: folder_id in: path type: integer required: true description: The ID of the collection folder. - name: release_id in: path type: integer required: true description: The ID of the release. outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: discogs-user-collection-rest port: 8080 description: REST adapter for Discogs API — User Collection. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/users/{username}/collection/folders name: users-username-collection-folders description: REST surface for Get collection folders. operations: - method: GET name: getcollectionfolders description: Get collection folders call: discogs-user-collection.getcollectionfolders outputParameters: - type: object mapping: $. with: username: rest.username - path: /v1/users/{username}/collection/folders name: users-username-collection-folders description: REST surface for Create a collection folder. operations: - method: POST name: createcollectionfolder description: Create a collection folder call: discogs-user-collection.createcollectionfolder outputParameters: - type: object mapping: $. with: username: rest.username body: rest.body - path: /v1/users/{username}/collection/folders/{folder-id}/releases name: users-username-collection-folders-folder-id-releases description: REST surface for Get collection items by folder. operations: - method: GET name: getcollectionitemsbyfolder description: Get collection items by folder call: discogs-user-collection.getcollectionitemsbyfolder outputParameters: - type: object mapping: $. with: username: rest.username folder_id: rest.folder_id page: rest.page per_page: rest.per_page sort: rest.sort sort_order: rest.sort_order - path: /v1/users/{username}/collection/folders/{folder-id}/releases/{release-id} name: users-username-collection-folders-folder-id-releases-release-id description: REST surface for Add release to collection folder. operations: - method: POST name: addreleasetocollectionfolder description: Add release to collection folder call: discogs-user-collection.addreleasetocollectionfolder outputParameters: - type: object mapping: $. with: username: rest.username folder_id: rest.folder_id release_id: rest.release_id - type: mcp namespace: discogs-user-collection-mcp port: 9090 transport: http description: MCP adapter for Discogs API — User Collection. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-collection-folders description: Get collection folders hints: readOnly: true destructive: false idempotent: true call: discogs-user-collection.getcollectionfolders outputParameters: - type: object mapping: $. with: username: tools.username - name: create-collection-folder description: Create a collection folder hints: readOnly: false destructive: false idempotent: false call: discogs-user-collection.createcollectionfolder outputParameters: - type: object mapping: $. with: username: tools.username body: tools.body - name: getcollectionitemsbyfolder description: Get collection items by folder hints: readOnly: true destructive: false idempotent: true call: discogs-user-collection.getcollectionitemsbyfolder outputParameters: - type: object mapping: $. with: username: tools.username folder_id: tools.folder_id page: tools.page per_page: tools.per_page sort: tools.sort sort_order: tools.sort_order - name: addreleasetocollectionfolder description: Add release to collection folder hints: readOnly: false destructive: false idempotent: false call: discogs-user-collection.addreleasetocollectionfolder outputParameters: - type: object mapping: $. with: username: tools.username folder_id: tools.folder_id release_id: tools.release_id