naftiko: 1.0.0-alpha2 info: label: Discogs API — User Identity description: 'Discogs — User Identity. 5 operations. Lead operation: Get user identity. Self-contained Naftiko capability covering one Discogs business surface.' tags: - Discogs - Music - User Identity created: '2026-05-29' modified: '2026-05-29' binds: - namespace: env keys: DISCOGS_TOKEN: DISCOGS_TOKEN capability: consumes: - type: http namespace: discogs-user-identity baseUri: https://api.discogs.com description: Discogs API — User Identity business capability. Self-contained, no shared references. authentication: type: apikey key: Authorization value: Discogs token={{env.DISCOGS_TOKEN}} placement: header resources: - name: oauth-identity path: /oauth/identity operations: - name: getuseridentity method: GET description: Get user identity outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-username path: /users/{username} operations: - name: getuserprofile method: GET description: Get a user profile inputParameters: - name: username in: path type: string required: true description: The user's Discogs username. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateuserprofile method: POST description: Discogs Update User Profile inputParameters: - name: username in: path type: string required: true description: 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-contributions path: /users/{username}/contributions operations: - name: getusercontributions method: GET description: Discogs Get User Contributions inputParameters: - name: username in: path type: string required: true description: Discogs username. - name: page in: query type: integer required: false description: Page number. - name: per_page in: query type: integer required: false description: Items per page. - name: sort in: query type: string required: false description: Sort field. - name: sort_order in: query type: string required: false description: Sort order. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-username-submissions path: /users/{username}/submissions operations: - name: getusersubmissions method: GET description: Discogs Get User Submissions inputParameters: - name: username in: path type: string required: true description: Discogs username. - name: page in: query type: integer required: false description: Page number. - name: per_page in: query type: integer required: false description: Items per page. outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: discogs-user-identity-rest port: 8080 description: REST adapter for Discogs API — User Identity. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/oauth/identity name: oauth-identity description: REST surface for Get user identity. operations: - method: GET name: getuseridentity description: Get user identity call: discogs-user-identity.getuseridentity outputParameters: - type: object mapping: $. - path: /v1/users/{username} name: users-username description: REST surface for Get a user profile. operations: - method: GET name: getuserprofile description: Get a user profile call: discogs-user-identity.getuserprofile outputParameters: - type: object mapping: $. with: username: rest.username - path: /v1/users/{username} name: users-username description: REST surface for Discogs Update User Profile. operations: - method: POST name: updateuserprofile description: Discogs Update User Profile call: discogs-user-identity.updateuserprofile outputParameters: - type: object mapping: $. with: username: rest.username body: rest.body - path: /v1/users/{username}/contributions name: users-username-contributions description: REST surface for Discogs Get User Contributions. operations: - method: GET name: getusercontributions description: Discogs Get User Contributions call: discogs-user-identity.getusercontributions outputParameters: - type: object mapping: $. with: username: rest.username page: rest.page per_page: rest.per_page sort: rest.sort sort_order: rest.sort_order - path: /v1/users/{username}/submissions name: users-username-submissions description: REST surface for Discogs Get User Submissions. operations: - method: GET name: getusersubmissions description: Discogs Get User Submissions call: discogs-user-identity.getusersubmissions outputParameters: - type: object mapping: $. with: username: rest.username page: rest.page per_page: rest.per_page - type: mcp namespace: discogs-user-identity-mcp port: 9090 transport: http description: MCP adapter for Discogs API — User Identity. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: getuseridentity description: Get user identity hints: readOnly: true destructive: false idempotent: true call: discogs-user-identity.getuseridentity outputParameters: - type: object mapping: $. - name: get-user-profile description: Get a user profile hints: readOnly: true destructive: false idempotent: true call: discogs-user-identity.getuserprofile outputParameters: - type: object mapping: $. with: username: tools.username - name: update-user-profile description: Discogs Update User Profile hints: readOnly: false destructive: false idempotent: false call: discogs-user-identity.updateuserprofile outputParameters: - type: object mapping: $. with: username: tools.username body: tools.body - name: list-user-contributions description: Discogs Get User Contributions hints: readOnly: true destructive: false idempotent: true call: discogs-user-identity.getusercontributions outputParameters: - type: object mapping: $. with: username: tools.username page: tools.page per_page: tools.per_page sort: tools.sort sort_order: tools.sort_order - name: list-user-submissions description: Discogs Get User Submissions hints: readOnly: true destructive: false idempotent: true call: discogs-user-identity.getusersubmissions outputParameters: - type: object mapping: $. with: username: tools.username page: tools.page per_page: tools.per_page