← Back to MusicBrainz docs

MusicBrainz — Tool Reference

Resolve canonical MusicBrainz identifiers and read metadata from Toolforest's replicated MusicBrainz mirror

14 tools · auto-generated from the deployed toolkit

Your AI assistant discovers and invokes these tools through the MCP Server's meta tools — it calls execute_tool with the tool name and arguments below.

# get_artist read

Get MusicBrainz artist metadata and tags by artist MBID.

Full description
Get artist metadata from the replicated MusicBrainz mirror.
Parameter Type Required Description
mbid string Yes MusicBrainz UUID.
Parameter schema (JSON)
{
  "properties": {
    "mbid": {
      "description": "MusicBrainz UUID.",
      "minLength": 1,
      "title": "Mbid",
      "type": "string"
    }
  },
  "required": [
    "mbid"
  ],
  "title": "MbidParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "artist": {
      "additionalProperties": true,
      "title": "Artist",
      "type": "object"
    }
  },
  "required": [
    "success",
    "artist"
  ],
  "title": "GetArtistResult",
  "type": "object"
}

# get_artist_credited_recordings read

Find recordings where an artist is credited as producer, engineer, performer, vocalist, or another relationship role.

Full description
Get the inverse view of recording credits for an artist.
Parameter Type Required Description
mbid string Yes MusicBrainz UUID.
credit_type string | array<string> | null No Optional single MusicBrainz recording relationship type filter for this artist, such as 'producer', 'engineer', 'instrument', 'vocal', 'performer', or 'mix'.
credit_types array<string> No Optional MusicBrainz recording relationship type filters, e.g. ['producer', 'mix', 'engineer'].
limit integer No Maximum credited recordings to return. Default: 100
offset integer No Pagination offset. Default: 0
Parameter schema (JSON)
{
  "properties": {
    "mbid": {
      "description": "MusicBrainz UUID.",
      "minLength": 1,
      "title": "Mbid",
      "type": "string"
    },
    "credit_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional single MusicBrainz recording relationship type filter for this artist, such as 'producer', 'engineer', 'instrument', 'vocal', 'performer', or 'mix'.",
      "title": "Credit Type"
    },
    "credit_types": {
      "description": "Optional MusicBrainz recording relationship type filters, e.g. ['producer', 'mix', 'engineer'].",
      "items": {
        "type": "string"
      },
      "title": "Credit Types",
      "type": "array"
    },
    "limit": {
      "default": 100,
      "description": "Maximum credited recordings to return.",
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "description": "Pagination offset.",
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    }
  },
  "required": [
    "mbid"
  ],
  "title": "GetArtistCreditedRecordingsParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "artist_mbid": {
      "title": "Artist Mbid",
      "type": "string"
    },
    "recordings": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Recordings",
      "type": "array"
    }
  },
  "required": [
    "success",
    "artist_mbid",
    "recordings"
  ],
  "title": "GetArtistCreditedRecordingsResult",
  "type": "object"
}

# get_artist_recordings read

Get an artist's primary-credit MusicBrainz recordings, sorted by ListenBrainz popularity by default.

Full description
Get recordings where the artist is the primary credited artist.
Parameter Type Required Description
mbid string Yes MusicBrainz UUID.
sort "listen_count" | "first_release_date" No Sort recordings by replicated ListenBrainz listen count or, when available in the mirror, release-group first release date. Default: "listen_count"
limit integer No Maximum recordings to return. Default: 50
offset integer No Pagination offset. Default: 0
Parameter schema (JSON)
{
  "properties": {
    "mbid": {
      "description": "MusicBrainz UUID.",
      "minLength": 1,
      "title": "Mbid",
      "type": "string"
    },
    "sort": {
      "default": "listen_count",
      "description": "Sort recordings by replicated ListenBrainz listen count or, when available in the mirror, release-group first release date.",
      "enum": [
        "listen_count",
        "first_release_date"
      ],
      "title": "Sort",
      "type": "string"
    },
    "limit": {
      "default": 50,
      "description": "Maximum recordings to return.",
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "description": "Pagination offset.",
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    }
  },
  "required": [
    "mbid"
  ],
  "title": "GetArtistRecordingsParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "artist_mbid": {
      "title": "Artist Mbid",
      "type": "string"
    },
    "recordings": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Recordings",
      "type": "array"
    }
  },
  "required": [
    "success",
    "artist_mbid",
    "recordings"
  ],
  "title": "GetArtistRecordingsResult",
  "type": "object"
}

# get_artist_relationships read

Get MusicBrainz artist-to-artist relationships such as band membership and collaborations.

Full description
Get artist relationships from Toolforest's replicated MusicBrainz relationship tables.
Parameter Type Required Description
mbid string Yes MusicBrainz UUID.
relationship_type string | null No Optional MusicBrainz relationship type filter, such as 'member of band', 'collaboration', 'founder', or 'teacher'.
limit integer No Maximum relationships to return. Default: 50
Parameter schema (JSON)
{
  "properties": {
    "mbid": {
      "description": "MusicBrainz UUID.",
      "minLength": 1,
      "title": "Mbid",
      "type": "string"
    },
    "relationship_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional MusicBrainz relationship type filter, such as 'member of band', 'collaboration', 'founder', or 'teacher'.",
      "title": "Relationship Type"
    },
    "limit": {
      "default": 50,
      "description": "Maximum relationships to return.",
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "mbid"
  ],
  "title": "GetArtistRelationshipsParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "artist_mbid": {
      "title": "Artist Mbid",
      "type": "string"
    },
    "relationships": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Relationships",
      "type": "array"
    }
  },
  "required": [
    "success",
    "artist_mbid",
    "relationships"
  ],
  "title": "GetArtistRelationshipsResult",
  "type": "object"
}

# get_artist_release_groups read

List an artist's MusicBrainz release groups such as albums, EPs, and singles.

Full description
Get release groups where the artist is the primary credited artist.
Parameter Type Required Description
mbid string Yes MusicBrainz UUID.
release_type "album" | "ep" | "single" | "broadcast" | "other" | null No Optional release-group primary type filter.
limit integer No Maximum release groups to return. Default: 50
offset integer No Pagination offset. Default: 0
Parameter schema (JSON)
{
  "properties": {
    "mbid": {
      "description": "MusicBrainz UUID.",
      "minLength": 1,
      "title": "Mbid",
      "type": "string"
    },
    "release_type": {
      "anyOf": [
        {
          "enum": [
            "album",
            "ep",
            "single",
            "broadcast",
            "other"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional release-group primary type filter.",
      "title": "Release Type"
    },
    "limit": {
      "default": 50,
      "description": "Maximum release groups to return.",
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "description": "Pagination offset.",
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    }
  },
  "required": [
    "mbid"
  ],
  "title": "GetArtistReleaseGroupsParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "artist_mbid": {
      "title": "Artist Mbid",
      "type": "string"
    },
    "release_groups": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Release Groups",
      "type": "array"
    }
  },
  "required": [
    "success",
    "artist_mbid",
    "release_groups"
  ],
  "title": "GetArtistReleaseGroupsResult",
  "type": "object"
}

Get normalized external links for a MusicBrainz artist or recording.

Full description
Get Phase 1 external links for artists or recordings.
Parameter Type Required Description
mbid string Yes MusicBrainz UUID.
entity_type "artist" | "recording" Yes Phase 1 supports artist and recording links.
Parameter schema (JSON)
{
  "properties": {
    "mbid": {
      "description": "MusicBrainz UUID.",
      "minLength": 1,
      "title": "Mbid",
      "type": "string"
    },
    "entity_type": {
      "description": "Phase 1 supports artist and recording links.",
      "enum": [
        "artist",
        "recording"
      ],
      "title": "Entity Type",
      "type": "string"
    }
  },
  "required": [
    "mbid",
    "entity_type"
  ],
  "title": "GetExternalLinksParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "entity_type": {
      "title": "Entity Type",
      "type": "string"
    },
    "mbid": {
      "title": "Mbid",
      "type": "string"
    },
    "links": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Links",
      "type": "array"
    }
  },
  "required": [
    "success",
    "entity_type",
    "mbid",
    "links"
  ],
  "title": "GetExternalLinksResult",
  "type": "object"
}

# get_genres_and_tags read

Get MusicBrainz tags and genre-like labels for an artist or recording.

Full description
Get tags for artists or recordings. Genres are returned as the same mirror tag set for now.
Parameter Type Required Description
mbid string Yes MusicBrainz UUID.
entity_type "artist" | "recording" Yes Phase 1 supports artist and recording tags.
limit integer No Maximum tags/genres to return. Default: 25
Parameter schema (JSON)
{
  "properties": {
    "mbid": {
      "description": "MusicBrainz UUID.",
      "minLength": 1,
      "title": "Mbid",
      "type": "string"
    },
    "entity_type": {
      "description": "Phase 1 supports artist and recording tags.",
      "enum": [
        "artist",
        "recording"
      ],
      "title": "Entity Type",
      "type": "string"
    },
    "limit": {
      "default": 25,
      "description": "Maximum tags/genres to return.",
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "mbid",
    "entity_type"
  ],
  "title": "GetGenresAndTagsParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "entity_type": {
      "title": "Entity Type",
      "type": "string"
    },
    "mbid": {
      "title": "Mbid",
      "type": "string"
    },
    "tags": {
      "items": {
        "type": "string"
      },
      "title": "Tags",
      "type": "array"
    },
    "genres": {
      "items": {
        "type": "string"
      },
      "title": "Genres",
      "type": "array"
    }
  },
  "required": [
    "success",
    "entity_type",
    "mbid",
    "tags",
    "genres"
  ],
  "title": "GetGenresAndTagsResult",
  "type": "object"
}

# get_recording_credits read

Get MusicBrainz recording credits such as producers, engineers, vocalists, and instrumentalists.

Full description
Get credits for one recording. For multiple recording MBIDs, use get_recording_credits_batch.

By default this returns relationships attached directly to the recording.
Set include_release_level=true to also inspect releases containing the
recording; those rows include source_level='release' plus release metadata.
Parameter Type Required Description
mbid string Yes MusicBrainz UUID.
credit_type string | array<string> | null No Optional single MusicBrainz recording credit type filter, such as 'producer', 'engineer', 'instrument', 'vocal', 'performer', or 'mix'.
credit_types array<string> No Optional MusicBrainz recording credit type filters, e.g. ['producer', 'mix', 'engineer'].
include_release_level boolean No Also include release-level artist relationships for releases that contain this recording. Use when recording-level credits are empty or incomplete; returned rows include source_level='release' and release provenance. Default: false
limit integer No Maximum recording credits to return. For multiple recording MBIDs, use get_recording_credits_batch. Default: 100
Parameter schema (JSON)
{
  "properties": {
    "mbid": {
      "description": "MusicBrainz UUID.",
      "minLength": 1,
      "title": "Mbid",
      "type": "string"
    },
    "credit_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional single MusicBrainz recording credit type filter, such as 'producer', 'engineer', 'instrument', 'vocal', 'performer', or 'mix'.",
      "title": "Credit Type"
    },
    "credit_types": {
      "description": "Optional MusicBrainz recording credit type filters, e.g. ['producer', 'mix', 'engineer'].",
      "items": {
        "type": "string"
      },
      "title": "Credit Types",
      "type": "array"
    },
    "include_release_level": {
      "default": false,
      "description": "Also include release-level artist relationships for releases that contain this recording. Use when recording-level credits are empty or incomplete; returned rows include source_level='release' and release provenance.",
      "title": "Include Release Level",
      "type": "boolean"
    },
    "limit": {
      "default": 100,
      "description": "Maximum recording credits to return. For multiple recording MBIDs, use get_recording_credits_batch.",
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "mbid"
  ],
  "title": "GetRecordingCreditsParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "recording_mbid": {
      "title": "Recording Mbid",
      "type": "string"
    },
    "credits": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Credits",
      "type": "array"
    }
  },
  "required": [
    "success",
    "recording_mbid",
    "credits"
  ],
  "title": "GetRecordingCreditsResult",
  "type": "object"
}

# get_recording_credits_batch read

Batch get MusicBrainz recording credits for up to 50 recording MBIDs.

Full description
Get recording credits for multiple recordings in one Brainz API call.

By default this returns relationships attached directly to each recording.
Set include_release_level=true to also inspect releases containing each
recording; release-level rows include source_level='release' plus release
metadata.
Parameter Type Required Description
mbids array<string> Yes Recording MBIDs to fetch credits for.
credit_type string | array<string> | null No Optional single MusicBrainz recording credit type filter.
credit_types array<string> No Optional MusicBrainz recording credit type filters, e.g. ['producer', 'mix', 'engineer'].
include_release_level boolean No Also include release-level artist relationships for releases that contain each recording. Returned rows include source_level='release' and release provenance. Default: false
limit_per_recording integer No Maximum credits to return per recording. Default: 100
Parameter schema (JSON)
{
  "properties": {
    "mbids": {
      "description": "Recording MBIDs to fetch credits for.",
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "minItems": 1,
      "title": "Mbids",
      "type": "array"
    },
    "credit_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional single MusicBrainz recording credit type filter.",
      "title": "Credit Type"
    },
    "credit_types": {
      "description": "Optional MusicBrainz recording credit type filters, e.g. ['producer', 'mix', 'engineer'].",
      "items": {
        "type": "string"
      },
      "title": "Credit Types",
      "type": "array"
    },
    "include_release_level": {
      "default": false,
      "description": "Also include release-level artist relationships for releases that contain each recording. Returned rows include source_level='release' and release provenance.",
      "title": "Include Release Level",
      "type": "boolean"
    },
    "limit_per_recording": {
      "default": 100,
      "description": "Maximum credits to return per recording.",
      "maximum": 200,
      "minimum": 1,
      "title": "Limit Per Recording",
      "type": "integer"
    }
  },
  "required": [
    "mbids"
  ],
  "title": "GetRecordingCreditsBatchParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "recordings": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Recordings",
      "type": "array"
    }
  },
  "required": [
    "success",
    "recordings"
  ],
  "title": "GetRecordingCreditsBatchResult",
  "type": "object"
}

# get_recordings read

Fetch MusicBrainz recording metadata for up to 50 recording MBIDs.

Full description
Fetch recording metadata, optionally enriched with release-group metadata and tags.
Parameter Type Required Description
mbids array<string> Yes Recording MBIDs to fetch.
include array<"tags" | "release_group"> No Optional enrichment fields.
Parameter schema (JSON)
{
  "properties": {
    "mbids": {
      "description": "Recording MBIDs to fetch.",
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "minItems": 1,
      "title": "Mbids",
      "type": "array"
    },
    "include": {
      "description": "Optional enrichment fields.",
      "items": {
        "enum": [
          "tags",
          "release_group"
        ],
        "type": "string"
      },
      "title": "Include",
      "type": "array"
    }
  },
  "required": [
    "mbids"
  ],
  "title": "GetRecordingsParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "recordings": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Recordings",
      "type": "array"
    },
    "missing_mbids": {
      "items": {
        "type": "string"
      },
      "title": "Missing Mbids",
      "type": "array"
    }
  },
  "required": [
    "success",
    "recordings",
    "missing_mbids"
  ],
  "title": "GetRecordingsResult",
  "type": "object"
}

# get_release_group read

Get release-group metadata by MusicBrainz release-group MBID.

Full description
Get release-group metadata only; editions and tracklists are out of scope for Phase 1.
Parameter Type Required Description
mbid string Yes MusicBrainz UUID.
Parameter schema (JSON)
{
  "properties": {
    "mbid": {
      "description": "MusicBrainz UUID.",
      "minLength": 1,
      "title": "Mbid",
      "type": "string"
    }
  },
  "required": [
    "mbid"
  ],
  "title": "MbidParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "release_group": {
      "additionalProperties": true,
      "title": "Release Group",
      "type": "object"
    }
  },
  "required": [
    "success",
    "release_group"
  ],
  "title": "GetReleaseGroupResult",
  "type": "object"
}

# resolve_to_mbid read

Resolve an artist or recording query to MusicBrainz MBID candidates.

Full description
Resolve an artist name or recording title to MBID candidates.
Parameter Type Required Description
query string Yes Artist name, recording title, or free-text track query to resolve.
entity_type "artist" | "recording" No Entity type to resolve. Default: "recording"
artist_hint string | null No Optional artist name to improve recording resolution.
isrc string | null No Optional ISRC for exact recording resolution.
mbid string | null No Optional recording MBID for exact lookup.
limit integer No Maximum candidates to return. Default: 1
Parameter schema (JSON)
{
  "properties": {
    "query": {
      "description": "Artist name, recording title, or free-text track query to resolve.",
      "minLength": 1,
      "title": "Query",
      "type": "string"
    },
    "entity_type": {
      "default": "recording",
      "description": "Entity type to resolve.",
      "enum": [
        "artist",
        "recording"
      ],
      "title": "Entity Type",
      "type": "string"
    },
    "artist_hint": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional artist name to improve recording resolution.",
      "title": "Artist Hint"
    },
    "isrc": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional ISRC for exact recording resolution.",
      "title": "Isrc"
    },
    "mbid": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional recording MBID for exact lookup.",
      "title": "Mbid"
    },
    "limit": {
      "default": 1,
      "description": "Maximum candidates to return.",
      "maximum": 50,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "ResolveToMbidParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "entity_type": {
      "title": "Entity Type",
      "type": "string"
    },
    "query": {
      "title": "Query",
      "type": "string"
    },
    "tier_used": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tier Used"
    },
    "candidates": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Candidates",
      "type": "array"
    }
  },
  "required": [
    "success",
    "entity_type",
    "query",
    "candidates"
  ],
  "title": "ResolveToMbidResult",
  "type": "object"
}

# search_artist read

Look up the best MusicBrainz artist candidate by name using exact/trigram matching.

Full description
Look up an artist name. Current backend returns one best candidate, not a full ranked list.
Parameter Type Required Description
query string Yes Artist name to look up.
limit integer No Current backend returns one best exact/trigram candidate. Default: 5
Parameter schema (JSON)
{
  "properties": {
    "query": {
      "description": "Artist name to look up.",
      "minLength": 1,
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 5,
      "description": "Current backend returns one best exact/trigram candidate.",
      "maximum": 5,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "SearchArtistParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "query": {
      "title": "Query",
      "type": "string"
    },
    "artists": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Artists",
      "type": "array"
    },
    "note": {
      "title": "Note",
      "type": "string"
    }
  },
  "required": [
    "success",
    "query",
    "artists",
    "note"
  ],
  "title": "SearchArtistResult",
  "type": "object"
}

# search_recording read

Search MusicBrainz recordings using the replicated mirror and Typesense ranking.

Full description
Search recordings. With an artist hint, use the resolver's artist+recording ranking.
Parameter Type Required Description
query string Yes Recording title or text query.
artist string | null No Optional artist hint. When present, the resolver is used for artist+recording ranking.
limit integer No Default: 5
Parameter schema (JSON)
{
  "properties": {
    "query": {
      "description": "Recording title or text query.",
      "minLength": 2,
      "title": "Query",
      "type": "string"
    },
    "artist": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional artist hint. When present, the resolver is used for artist+recording ranking.",
      "title": "Artist"
    },
    "limit": {
      "default": 5,
      "maximum": 50,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "SearchRecordingParams",
  "type": "object",
  "additionalProperties": false
}
Result schema (JSON)
{
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "query": {
      "title": "Query",
      "type": "string"
    },
    "artist": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Artist"
    },
    "recordings": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Recordings",
      "type": "array"
    },
    "source": {
      "title": "Source",
      "type": "string"
    }
  },
  "required": [
    "success",
    "query",
    "recordings",
    "source"
  ],
  "title": "SearchRecordingResult",
  "type": "object"
}