Discogs · Capability

Discogs API — Database

Discogs — Database. 12 operations. Lead operation: Get an artist. Self-contained Naftiko capability covering one Discogs business surface.

Run with Naftiko DiscogsMusicDatabase

What You Can Do

GET
Getartist — Get an artist
/v1/artists/{artist-id}
GET
Getartistreleases — Get artist releases
/v1/artists/{artist-id}/releases
GET
Searchdatabase — Search the database
/v1/database/search
GET
Getlabel — Get a label
/v1/labels/{label-id}
GET
Getlabelreleases — Get all label releases
/v1/labels/{label-id}/releases
GET
Getmasterrelease — Get a master release
/v1/masters/{master-id}
GET
Getmasterreleaseversions — Get master release versions
/v1/masters/{master-id}/versions
GET
Getrelease — Get a release
/v1/releases/{release-id}
GET
Getreleasecommunityrating — Discogs Get Release Community Rating
/v1/releases/{release-id}/rating
GET
Getreleaseratingbyuser — Discogs Get Release Rating by User
/v1/releases/{release-id}/rating/{username}
PUT
Updatereleaseratingbyuser — Discogs Update Release Rating by User
/v1/releases/{release-id}/rating/{username}
DELETE
Deletereleaseratingbyuser — Discogs Delete Release Rating by User
/v1/releases/{release-id}/rating/{username}

MCP Tools

get-artist

Get an artist

read-only idempotent
list-artist-releases

Get artist releases

read-only idempotent
search-database

Search the database

read-only idempotent
get-label

Get a label

read-only idempotent
list-label-releases

Get all label releases

read-only idempotent
getmasterrelease

Get a master release

read-only idempotent
getmasterreleaseversions

Get master release versions

read-only idempotent
get-release

Get a release

read-only idempotent
get-release-rating

Discogs Get Release Community Rating

read-only idempotent
get-user-release-rating

Discogs Get Release Rating by User

read-only idempotent
update-user-release-rating

Discogs Update Release Rating by User

idempotent
delete-user-release-rating

Discogs Delete Release Rating by User

idempotent

Capability Spec

discogs-database.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Discogs API — Database
  description: 'Discogs — Database. 12 operations. Lead operation: Get an artist. Self-contained Naftiko capability covering one Discogs business surface.'
  tags:
  - Discogs
  - Music
  - Database
  created: '2026-05-29'
  modified: '2026-05-29'
binds:
- namespace: env
  keys:
    DISCOGS_TOKEN: DISCOGS_TOKEN
capability:
  consumes:
  - type: http
    namespace: discogs-database
    baseUri: https://api.discogs.com
    description: Discogs API — Database business capability. Self-contained, no shared references.
    authentication:
      type: apikey
      key: Authorization
      value: Discogs token={{env.DISCOGS_TOKEN}}
      placement: header
    resources:
    - name: artists-artist-id
      path: /artists/{artist_id}
      operations:
      - name: getartist
        method: GET
        description: Get an artist
        inputParameters:
        - name: artist_id
          in: path
          type: integer
          required: true
          description: The ID of the artist.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: artists-artist-id-releases
      path: /artists/{artist_id}/releases
      operations:
      - name: getartistreleases
        method: GET
        description: Get artist releases
        inputParameters:
        - name: artist_id
          in: path
          type: integer
          required: true
          description: The ID of the artist.
        - 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: database-search
      path: /database/search
      operations:
      - name: searchdatabase
        method: GET
        description: Search the database
        inputParameters:
        - name: query
          in: query
          type: string
          required: false
          description: Your search query.
        - name: type
          in: query
          type: string
          required: false
          description: The type of resource to search for.
        - name: title
          in: query
          type: string
          required: false
          description: Search by combined "Artist Name - Release Title" field.
        - name: release_title
          in: query
          type: string
          required: false
          description: Search release titles.
        - name: credit
          in: query
          type: string
          required: false
          description: Search release credits.
        - name: artist
          in: query
          type: string
          required: false
          description: Search artist names.
        - name: anv
          in: query
          type: string
          required: false
          description: Search an "Artist Name Variation" (ANV).
        - name: label
          in: query
          type: string
          required: false
          description: Search label names.
        - name: genre
          in: query
          type: string
          required: false
          description: Search genres.
        - name: style
          in: query
          type: string
          required: false
          description: Search styles.
        - name: country
          in: query
          type: string
          required: false
          description: Search release country.
        - name: year
          in: query
          type: string
          required: false
          description: Search release year.
        - name: format
          in: query
          type: string
          required: false
          description: Search formats.
        - name: catno
          in: query
          type: string
          required: false
          description: Search catalog number.
        - name: barcode
          in: query
          type: string
          required: false
          description: Search barcodes.
        - name: track
          in: query
          type: string
          required: false
          description: Search track titles.
        - name: submitter
          in: query
          type: string
          required: false
          description: Search by submitter username.
        - name: contributor
          in: query
          type: string
          required: false
          description: Search by contributor username.
        - 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.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: labels-label-id
      path: /labels/{label_id}
      operations:
      - name: getlabel
        method: GET
        description: Get a label
        inputParameters:
        - name: label_id
          in: path
          type: integer
          required: true
          description: The ID of the label.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: labels-label-id-releases
      path: /labels/{label_id}/releases
      operations:
      - name: getlabelreleases
        method: GET
        description: Get all label releases
        inputParameters:
        - name: label_id
          in: path
          type: integer
          required: true
          description: The ID of the label.
        - 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.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: masters-master-id
      path: /masters/{master_id}
      operations:
      - name: getmasterrelease
        method: GET
        description: Get a master release
        inputParameters:
        - name: master_id
          in: path
          type: integer
          required: true
          description: The ID of the master release.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: masters-master-id-versions
      path: /masters/{master_id}/versions
      operations:
      - name: getmasterreleaseversions
        method: GET
        description: Get master release versions
        inputParameters:
        - name: master_id
          in: path
          type: integer
          required: true
          description: The ID of the master release.
        - 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: format
          in: query
          type: string
          required: false
          description: Filter by format.
        - name: label
          in: query
          type: string
          required: false
          description: Filter by label.
        - name: released
          in: query
          type: string
          required: false
          description: Filter by release year.
        - name: country
          in: query
          type: string
          required: false
          description: Filter by country.
        - 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: releases-release-id
      path: /releases/{release_id}
      operations:
      - name: getrelease
        method: GET
        description: Get a release
        inputParameters:
        - name: release_id
          in: path
          type: integer
          required: true
          description: The ID of the release.
        - name: curr_abbr
          in: query
          type: string
          required: false
          description: Currency for marketplace data.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: releases-release-id-rating
      path: /releases/{release_id}/rating
      operations:
      - name: getreleasecommunityrating
        method: GET
        description: Discogs Get Release Community Rating
        inputParameters:
        - name: release_id
          in: path
          type: integer
          required: true
          description: Release ID.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: releases-release-id-rating-username
      path: /releases/{release_id}/rating/{username}
      operations:
      - name: getreleaseratingbyuser
        method: GET
        description: Discogs Get Release Rating by User
        inputParameters:
        - name: release_id
          in: path
          type: integer
          required: true
          description: Release ID.
        - name: username
          in: path
          type: string
          required: true
          description: Discogs username.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatereleaseratingbyuser
        method: PUT
        description: Discogs Update Release Rating by User
        inputParameters:
        - name: release_id
          in: path
          type: integer
          required: true
          description: Release ID.
        - 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: deletereleaseratingbyuser
        method: DELETE
        description: Discogs Delete Release Rating by User
        inputParameters:
        - name: release_id
          in: path
          type: integer
          required: true
          description: Release ID.
        - name: username
          in: path
          type: string
          required: true
          description: Discogs username.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    namespace: discogs-database-rest
    port: 8080
    description: REST adapter for Discogs API — Database. One Spectral-compliant resource per consumed operation, prefixed with /v1.
    resources:
    - path: /v1/artists/{artist-id}
      name: artists-artist-id
      description: REST surface for Get an artist.
      operations:
      - method: GET
        name: getartist
        description: Get an artist
        call: discogs-database.getartist
        outputParameters:
        - type: object
          mapping: $.
        with:
          artist_id: rest.artist_id
    - path: /v1/artists/{artist-id}/releases
      name: artists-artist-id-releases
      description: REST surface for Get artist releases.
      operations:
      - method: GET
        name: getartistreleases
        description: Get artist releases
        call: discogs-database.getartistreleases
        outputParameters:
        - type: object
          mapping: $.
        with:
          artist_id: rest.artist_id
          page: rest.page
          per_page: rest.per_page
          sort: rest.sort
          sort_order: rest.sort_order
    - path: /v1/database/search
      name: database-search
      description: REST surface for Search the database.
      operations:
      - method: GET
        name: searchdatabase
        description: Search the database
        call: discogs-database.searchdatabase
        outputParameters:
        - type: object
          mapping: $.
        with:
          query: rest.query
          type: rest.type
          title: rest.title
          release_title: rest.release_title
          credit: rest.credit
          artist: rest.artist
          anv: rest.anv
          label: rest.label
          genre: rest.genre
          style: rest.style
          country: rest.country
          year: rest.year
          format: rest.format
          catno: rest.catno
          barcode: rest.barcode
          track: rest.track
          submitter: rest.submitter
          contributor: rest.contributor
          page: rest.page
          per_page: rest.per_page
    - path: /v1/labels/{label-id}
      name: labels-label-id
      description: REST surface for Get a label.
      operations:
      - method: GET
        name: getlabel
        description: Get a label
        call: discogs-database.getlabel
        outputParameters:
        - type: object
          mapping: $.
        with:
          label_id: rest.label_id
    - path: /v1/labels/{label-id}/releases
      name: labels-label-id-releases
      description: REST surface for Get all label releases.
      operations:
      - method: GET
        name: getlabelreleases
        description: Get all label releases
        call: discogs-database.getlabelreleases
        outputParameters:
        - type: object
          mapping: $.
        with:
          label_id: rest.label_id
          page: rest.page
          per_page: rest.per_page
    - path: /v1/masters/{master-id}
      name: masters-master-id
      description: REST surface for Get a master release.
      operations:
      - method: GET
        name: getmasterrelease
        description: Get a master release
        call: discogs-database.getmasterrelease
        outputParameters:
        - type: object
          mapping: $.
        with:
          master_id: rest.master_id
    - path: /v1/masters/{master-id}/versions
      name: masters-master-id-versions
      description: REST surface for Get master release versions.
      operations:
      - method: GET
        name: getmasterreleaseversions
        description: Get master release versions
        call: discogs-database.getmasterreleaseversions
        outputParameters:
        - type: object
          mapping: $.
        with:
          master_id: rest.master_id
          page: rest.page
          per_page: rest.per_page
          format: rest.format
          label: rest.label
          released: rest.released
          country: rest.country
          sort: rest.sort
          sort_order: rest.sort_order
    - path: /v1/releases/{release-id}
      name: releases-release-id
      description: REST surface for Get a release.
      operations:
      - method: GET
        name: getrelease
        description: Get a release
        call: discogs-database.getrelease
        outputParameters:
        - type: object
          mapping: $.
        with:
          release_id: rest.release_id
          curr_abbr: rest.curr_abbr
    - path: /v1/releases/{release-id}/rating
      name: releases-release-id-rating
      description: REST surface for Discogs Get Release Community Rating.
      operations:
      - method: GET
        name: getreleasecommunityrating
        description: Discogs Get Release Community Rating
        call: discogs-database.getreleasecommunityrating
        outputParameters:
        - type: object
          mapping: $.
        with:
          release_id: rest.release_id
    - path: /v1/releases/{release-id}/rating/{username}
      name: releases-release-id-rating-username
      description: REST surface for Discogs Get Release Rating by User.
      operations:
      - method: GET
        name: getreleaseratingbyuser
        description: Discogs Get Release Rating by User
        call: discogs-database.getreleaseratingbyuser
        outputParameters:
        - type: object
          mapping: $.
        with:
          release_id: rest.release_id
          username: rest.username
    - path: /v1/releases/{release-id}/rating/{username}
      name: releases-release-id-rating-username
      description: REST surface for Discogs Update Release Rating by User.
      operations:
      - method: PUT
        name: updatereleaseratingbyuser
        description: Discogs Update Release Rating by User
        call: discogs-database.updatereleaseratingbyuser
        outputParameters:
        - type: object
          mapping: $.
        with:
          release_id: rest.release_id
          username: rest.username
          body: rest.body
    - path: /v1/releases/{release-id}/rating/{username}
      name: releases-release-id-rating-username
      description: REST surface for Discogs Delete Release Rating by User.
      operations:
      - method: DELETE
        name: deletereleaseratingbyuser
        description: Discogs Delete Release Rating by User
        call: discogs-database.deletereleaseratingbyuser
        outputParameters:
        - type: object
          mapping: $.
        with:
          release_id: rest.release_id
          username: rest.username
  - type: mcp
    namespace: discogs-database-mcp
    port: 9090
    transport: http
    description: MCP adapter for Discogs API — Database. One tool per consumed operation, routed inline through this capability's consumes block.
    tools:
    - name: get-artist
      description: Get an artist
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discogs-database.getartist
      outputParameters:
      - type: object
        mapping: $.
      with:
        artist_id: tools.artist_id
    - name: list-artist-releases
      description: Get artist releases
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discogs-database.getartistreleases
      outputParameters:
      - type: object
        mapping: $.
      with:
        artist_id: tools.artist_id
        page: tools.page
        per_page: tools.per_page
        sort: tools.sort
        sort_order: tools.sort_order
    - name: search-database
      description: Search the database
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discogs-database.searchdatabase
      outputParameters:
      - type: object
        mapping: $.
      with:
        query: tools.query
        type: tools.type
        title: tools.title
        release_title: tools.release_title
        credit: tools.credit
        artist: tools.artist
        anv: tools.anv
        label: tools.label
        genre: tools.genre
        style: tools.style
        country: tools.country
        year: tools.year
        format: tools.format
        catno: tools.catno
        barcode: tools.barcode
        track: tools.track
        submitter: tools.submitter
        contributor: tools.contributor
        page: tools.page
        per_page: tools.per_page
    - name: get-label
      description: Get a label
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discogs-database.getlabel
      outputParameters:
      - type: object
        mapping: $.
      with:
        label_id: tools.label_id
    - name: list-label-releases
      description: Get all label releases
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discogs-database.getlabelreleases
      outputParameters:
      - type: object
        mapping: $.
      with:
        label_id: tools.label_id
        page: tools.page
        per_page: tools.per_page
    - name: getmasterrelease
      description: Get a master release
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discogs-database.getmasterrelease
      outputParameters:
      - type: object
        mapping: $.
      with:
        master_id: tools.master_id
    - name: getmasterreleaseversions
      description: Get master release versions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discogs-database.getmasterreleaseversions
      outputParameters:
      - type: object
        mapping: $.
      with:
        master_id: tools.master_id
        page: tools.page
        per_page: tools.per_page
        format: tools.format
        label: tools.label
        released: tools.released
        country: tools.country
        sort: tools.sort
        sort_order: tools.sort_order
    - name: get-release
      description: Get a release
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discogs-database.getrelease
      outputParameters:
      - type: object
        mapping: $.
      with:
        release_id: tools.release_id
        curr_abbr: tools.curr_abbr
    - name: get-release-rating
      description: Discogs Get Release Community Rating
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discogs-database.getreleasecommunityrating
      outputParameters:
      - type: object
        mapping: $.
      with:
        release_id: tools.release_id
    - name: get-user-release-rating
      description: Discogs Get Release Rating by User
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discogs-database.getreleaseratingbyuser
      outputParameters:
      - type: object
        mapping: $.
      with:
        release_id: tools.release_id
        username: tools.username
    - name: update-user-release-rating
      description: Discogs Update Release Rating by User
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: discogs-database.updatereleaseratingbyuser
      outputParameters:
      - type: object
        mapping: $.
      with:
        release_id: tools.release_id
        username: tools.username
        body: tools.body
    - name: delete-user-release-rating
      description: Discogs Delete Release Rating by User
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: discogs-database.deletereleaseratingbyuser
      outputParameters:
      - type: object
        mapping: $.
      with:
        release_id: tools.release_id
        username: tools.username