search_catalog
Find releases and tracks by title, artist, label, ISRC or UPC, optionally by status.
Tool search_catalog · Read-only · Every account with MCP access · Role permission: releases.view
Find releases and tracks by title, artist, label, ISRC or UPC, optionally by status. Returns release ids for release_status and streams_and_revenue, and the tracks that matched. Leave query empty to list the most recently updated releases.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
query |
string | No | Title, artist, label, ISRC (e.g. USRC17607839) or UPC. Empty lists recent releases. |
status |
draft | in_review | changes_requested | approved | live | archived | taken_down | rejected |
No | Only releases in this status. in_review = submitted, waiting for review; live = approved and live in at least one store; rejected = changes_requested (old name). |
limit |
integer (1–50) | No | Results per page (max 50). Default 20. |
offset |
integer (0–5000) | No | Skip this many results (from next_offset). Default 0. |
Example call
Assistants make this call for you; this is what goes to https://app.hillsmusic.com/mcp over JSON-RPC.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_catalog",
"arguments": {
"limit": 20,
"offset": 0
}
}
}
Result
A one-line summary as text, then the same data as JSON in structuredContent, with these fields:
| Field | Type | Description |
|---|---|---|
total |
number | |
offset |
number | |
next_offset |
number or null | |
releases |
array of object |
A refusal (no permission, not found, bad input) comes back as a tool error (isError: true) whose text says why.