streams_and_revenue
Streams and revenue (USD) from store statements, grouped by month, store, country, release, track or artist/label, over a period, optionally for one release, track…
Tool streams_and_revenue · Read-only · Every account with MCP access · Role permission: royalties.view
Streams and revenue (USD) from store statements, grouped by month, store, country, release, track or artist/label, over a period, optionally for one release, track (ISRC), store or country. Statements are monthly and arrive 1–3 months late: there are no daily or weekly numbers. Includes the totals and the change against the previous period of the same length.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
period |
this_month | last_month | this_quarter | last_quarter | last_3_months | last_6_months | last_12_months | this_year | last_year | all_time |
No | last_N_months = the N full months before this one. Ignored when from_month/to_month are given. Default “last_12_months”. |
from_month |
string | No | First month, YYYY-MM. |
to_month |
string | No | Last month, YYYY-MM (default: from_month, or this month). |
group_by |
month | store | country | release | track | member |
No | member = per artist/label (clients and staff). Default “month”. |
release_id |
integer | No | |
isrc |
string | No | |
store |
string | No | Store, e.g. spotify, apple_music, youtube, tiktok, amazon. |
country |
string | No | |
member_id |
integer | No | Clients: one of your artists/labels. Staff: any account. |
limit |
integer (1–100) | No | Default 25. |
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": "streams_and_revenue",
"arguments": {
"period": "last_12_months",
"group_by": "month",
"limit": 25
}
}
}
Result
A one-line summary as text, then the same data as JSON in structuredContent, with these fields:
| Field | Type | Description |
|---|---|---|
currency |
USD |
|
period |
object | |
group_by |
string | |
latest_month_with_data |
string or null | |
totals |
object | |
previous_period |
object or null | |
rows |
array of object | |
truncated |
boolean | |
note |
string |
A refusal (no permission, not found, bad input) comes back as a tool error (isError: true) whose text says why.