MusicBrainz · Capability

MusicBrainz Web Service v2 — Collections And Submission

MusicBrainz Web Service v2 — Collections And Submission. 8 operations. Lead operation: List User Collections. Self-contained Naftiko capability covering one MusicBrainz business surface.

Run with Naftiko MusicBrainzCollections And Submission

What You Can Do

GET
Listusercollections — List User Collections
/ws/2/collection
GET
Lookupcollection — Lookup Collection By MBID
/ws/2/collection/{collection-mbid}
PUT
Addentitiestocollection — Add Entities To Collection
/ws/2/collection/{collection-mbid}/{entity-type}
DELETE
Removeentitiesfromcollection — Remove Entities From Collection
/ws/2/collection/{collection-mbid}/{entity-type}
POST
Submittags — Submit User Tags
/ws/2/tag
POST
Submitratings — Submit User Ratings
/ws/2/rating
POST
Submitbarcodes — Submit Release Barcodes
/ws/2/release
POST
Submitisrcs — Submit Recording ISRCs
/ws/2/recording

MCP Tools

list-user-collections

List User Collections

read-only idempotent
lookup-collection

Lookup Collection By MBID

read-only idempotent
add-entities-to-collection

Add Entities To Collection

idempotent
remove-entities-from-collection

Remove Entities From Collection

idempotent
submit-tags

Submit User Tags

submit-ratings

Submit User Ratings

idempotent
submit-barcodes

Submit Release Barcodes

idempotent
submit-isrcs

Submit Recording ISRCs

idempotent

Capability Spec

musicbrainz-collections.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: MusicBrainz Web Service v2 — Collections And Submission
  description: 'MusicBrainz Web Service v2 — Collections And Submission. 8 operations. Lead operation: List User Collections.
    Self-contained Naftiko capability covering one MusicBrainz business surface.'
  tags:
  - MusicBrainz
  - Collections And Submission
  created: '2026-05-29'
  modified: '2026-05-29'
binds:
- namespace: env
  keys:
    MUSICBRAINZ_USER_AGENT: MUSICBRAINZ_USER_AGENT
capability:
  consumes:
  - type: http
    namespace: musicbrainz-collections
    baseUri: https://musicbrainz.org/ws/2
    description: MusicBrainz Web Service v2 — Collections And Submission business capability. Self-contained, no shared references.
    resources:
    - name: collection
      path: /collection
      operations:
      - name: listUserCollections
        method: GET
        description: List User Collections
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: editor
          in: query
          type: string
          required: true
        - name: inc
          in: query
          type: string
        - name: fmt
          in: query
          type: string
    - name: collection-collection-mbid
      path: /collection/{collection_mbid}
      operations:
      - name: lookupCollection
        method: GET
        description: Lookup Collection By MBID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: collection_mbid
          in: path
          type: string
          required: true
        - name: fmt
          in: query
          type: string
    - name: collection-collection-mbid-entity-type
      path: /collection/{collection_mbid}/{entity_type}
      operations:
      - name: addEntitiesToCollection
        method: PUT
        description: Add Entities To Collection
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: collection_mbid
          in: path
          type: string
          required: true
        - name: entity_type
          in: path
          type: string
          required: true
        - name: client
          in: query
          type: string
          required: true
      - name: removeEntitiesFromCollection
        method: DELETE
        description: Remove Entities From Collection
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: collection_mbid
          in: path
          type: string
          required: true
        - name: entity_type
          in: path
          type: string
          required: true
        - name: client
          in: query
          type: string
          required: true
    - name: tag
      path: /tag
      operations:
      - name: submitTags
        method: POST
        description: Submit User Tags
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: client
          in: query
          type: string
          required: true
    - name: rating
      path: /rating
      operations:
      - name: submitRatings
        method: POST
        description: Submit User Ratings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: client
          in: query
          type: string
          required: true
    - name: release
      path: /release
      operations:
      - name: submitBarcodes
        method: POST
        description: Submit Release Barcodes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: client
          in: query
          type: string
          required: true
    - name: recording
      path: /recording
      operations:
      - name: submitISRCs
        method: POST
        description: Submit Recording ISRCs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: client
          in: query
          type: string
          required: true
    headers:
      User-Agent: '{{env.MUSICBRAINZ_USER_AGENT}}'
      Accept: application/json
  exposes:
  - type: rest
    namespace: musicbrainz-collections-rest
    port: 8080
    description: REST adapter for MusicBrainz Web Service v2 — Collections And Submission. One Spectral-compliant resource
      per consumed operation, prefixed with /ws/2.
    resources:
    - path: /ws/2/collection
      name: collection
      description: REST surface for collection.
      operations:
      - method: GET
        name: listUserCollections
        description: List User Collections
        call: musicbrainz-collections.listUserCollections
        outputParameters:
        - type: object
          mapping: $.
        with:
          editor: rest.editor
          inc: rest.inc
          fmt: rest.fmt
    - path: /ws/2/collection/{collection-mbid}
      name: collection-collection-mbid
      description: REST surface for collection-collection-mbid.
      operations:
      - method: GET
        name: lookupCollection
        description: Lookup Collection By MBID
        call: musicbrainz-collections.lookupCollection
        outputParameters:
        - type: object
          mapping: $.
        with:
          collection_mbid: rest.collection_mbid
          fmt: rest.fmt
    - path: /ws/2/collection/{collection-mbid}/{entity-type}
      name: collection-collection-mbid-entity-type
      description: REST surface for collection-collection-mbid-entity-type.
      operations:
      - method: PUT
        name: addEntitiesToCollection
        description: Add Entities To Collection
        call: musicbrainz-collections.addEntitiesToCollection
        outputParameters:
        - type: object
          mapping: $.
        with:
          collection_mbid: rest.collection_mbid
          entity_type: rest.entity_type
          client: rest.client
      - method: DELETE
        name: removeEntitiesFromCollection
        description: Remove Entities From Collection
        call: musicbrainz-collections.removeEntitiesFromCollection
        outputParameters:
        - type: object
          mapping: $.
        with:
          collection_mbid: rest.collection_mbid
          entity_type: rest.entity_type
          client: rest.client
    - path: /ws/2/tag
      name: tag
      description: REST surface for tag.
      operations:
      - method: POST
        name: submitTags
        description: Submit User Tags
        call: musicbrainz-collections.submitTags
        outputParameters:
        - type: object
          mapping: $.
        with:
          client: rest.client
    - path: /ws/2/rating
      name: rating
      description: REST surface for rating.
      operations:
      - method: POST
        name: submitRatings
        description: Submit User Ratings
        call: musicbrainz-collections.submitRatings
        outputParameters:
        - type: object
          mapping: $.
        with:
          client: rest.client
    - path: /ws/2/release
      name: release
      description: REST surface for release.
      operations:
      - method: POST
        name: submitBarcodes
        description: Submit Release Barcodes
        call: musicbrainz-collections.submitBarcodes
        outputParameters:
        - type: object
          mapping: $.
        with:
          client: rest.client
    - path: /ws/2/recording
      name: recording
      description: REST surface for recording.
      operations:
      - method: POST
        name: submitISRCs
        description: Submit Recording ISRCs
        call: musicbrainz-collections.submitISRCs
        outputParameters:
        - type: object
          mapping: $.
        with:
          client: rest.client
  - type: mcp
    namespace: musicbrainz-collections-mcp
    port: 9090
    transport: http
    description: MCP adapter for MusicBrainz Web Service v2 — Collections And Submission. One tool per consumed operation,
      routed inline through this capability's consumes block.
    tools:
    - name: list-user-collections
      description: List User Collections
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: musicbrainz-collections.listUserCollections
      outputParameters:
      - type: object
        mapping: $.
      with:
        editor: tools.editor
        inc: tools.inc
        fmt: tools.fmt
    - name: lookup-collection
      description: Lookup Collection By MBID
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: musicbrainz-collections.lookupCollection
      outputParameters:
      - type: object
        mapping: $.
      with:
        collection_mbid: tools.collection_mbid
        fmt: tools.fmt
    - name: add-entities-to-collection
      description: Add Entities To Collection
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: musicbrainz-collections.addEntitiesToCollection
      outputParameters:
      - type: object
        mapping: $.
      with:
        collection_mbid: tools.collection_mbid
        entity_type: tools.entity_type
        client: tools.client
    - name: remove-entities-from-collection
      description: Remove Entities From Collection
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: musicbrainz-collections.removeEntitiesFromCollection
      outputParameters:
      - type: object
        mapping: $.
      with:
        collection_mbid: tools.collection_mbid
        entity_type: tools.entity_type
        client: tools.client
    - name: submit-tags
      description: Submit User Tags
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: musicbrainz-collections.submitTags
      outputParameters:
      - type: object
        mapping: $.
      with:
        client: tools.client
    - name: submit-ratings
      description: Submit User Ratings
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: musicbrainz-collections.submitRatings
      outputParameters:
      - type: object
        mapping: $.
      with:
        client: tools.client
    - name: submit-barcodes
      description: Submit Release Barcodes
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: musicbrainz-collections.submitBarcodes
      outputParameters:
      - type: object
        mapping: $.
      with:
        client: tools.client
    - name: submit-isrcs
      description: Submit Recording ISRCs
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: musicbrainz-collections.submitISRCs
      outputParameters:
      - type: object
        mapping: $.
      with:
        client: tools.client