Neutral commerce resolution for AI agents — music live, ranked by trust, never by commission.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Browse live charts, genre and mood walls, editorial playlists, artist spotlights, and chart snapshots back to 1946 — "what's trending", "number one in 1994". Charts move weekly: call rather than recall. No arguments gives the chambers and featured walls; `year` gives that year's snapshots; `wall` gives its entries, each with a `query` for resolve_music. Add `resolve: true` with `wall` to get number one's links in the same call. RootVine never fabricates. Every link existed at resolved_at. Limits: UK-focused stores, prices in GBP; music only today — games are not live yet. On partial, say which sources didn't answer; on no_results, tell the user plainly — never fall back to guessing a link.
A wall or chart-snapshot slug from an earlier answer (a BeatsVine wall address also works). Lists its entries; on a ranked chart position 1 is number one. Takes priority over `chamber` and `year`.
Chart snapshots from this year (1946 to now), for questions about the past — 'number one in 1994'. Pass a snapshot's slug back as `wall` for its entries. Takes priority over `chamber`.
Max walls, entries or snapshots to return: 10 by default, 30 at most.
Chamber to browse; omit for an overview of all chambers and featured walls. 'by-genre' = genre corridors. 'for-this-moment' = moods and activities. 'charts' = live streaming charts. 'by-era' = decades. 'spotlights' = artist features.
With `wall`: also fetch number one's stream and buy links, in the same call.
Browse live charts, genre and mood walls, editorial playlists, artist spotlights, and chart snapshots back to 1946 — "what's trending", "number one in 1994". Charts move weekly: call rather than recall. No arguments gives the chambers and featured walls; `year` gives that year's snapshots; `wall` gives its entries, each with a `query` for resolve_music. Add `resolve: true` with `wall` to get number one's links in the same call. RootVine never fabricates. Every link existed at resolved_at. Limits: UK-focused stores, prices in GBP; music only today — games are not live yet. On partial, say which sources didn't answer; on no_results, tell the user plainly — never fall back to guessing a link.
| Argument | Type | Description |
|---|---|---|
| wall | string | A wall or chart-snapshot slug from an earlier answer (a BeatsVine wall address also works). Lists its entries; on a ranked chart position 1 is number one. Takes priority over `chamber` and `year`. |
| year | integer | Chart snapshots from this year (1946 to now), for questions about the past — 'number one in 1994'. Pass a snapshot's slug back as `wall` for its entries. Takes priority over `chamber`. |
| limit | integer | Max walls, entries or snapshots to return: 10 by default, 30 at most. |
| chamber | string | Chamber to browse; omit for an overview of all chambers and featured walls. 'by-genre' = genre corridors. 'for-this-moment' = moods and activities. 'charts' = live streaming charts. 'by-era' = decades. 'spotlights' = artist features. |
| resolve | boolean | With `wall`: also fetch number one's stream and buy links, in the same call. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"wall": {
"type": "string",
"maxLength": 500,
"description": "A wall or chart-snapshot slug from an earlier answer (a BeatsVine wall address also works). Lists its entries; on a ranked chart position 1 is number one. Takes priority over `chamber` and `year`."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1946,
"description": "Chart snapshots from this year (1946 to now), for questions about the past — 'number one in 1994'. Pass a snapshot's slug back as `wall` for its entries. Takes priority over `chamber`."
},
"limit": {
"type": "integer",
"maximum": 30,
"description": "Max walls, entries or snapshots to return: 10 by default, 30 at most.",
"exclusiveMinimum": 0
},
"chamber": {
"enum": [
"by-genre",
"for-this-moment",
"charts",
"by-era",
"spotlights"
],
"type": "string",
"description": "Chamber to browse; omit for an overview of all chambers and featured walls. 'by-genre' = genre corridors. 'for-this-moment' = moods and activities. 'charts' = live streaming charts. 'by-era' = decades. 'spotlights' = artist features."
},
"resolve": {
"type": "boolean",
"description": "With `wall`: also fetch number one's stream and buy links, in the same call."
}
}
}Start here when the category is unclear. Pass the user's words as `query`; RootVine reads music or games from them (keyword-based — set `category` when you know it) and answers in that tool's shape. Music is live; games answer "coming soon" for now. RootVine never fabricates. Every link existed at resolved_at. Limits: UK-focused stores, prices in GBP; music only today — games are not live yet. On partial, say which sources didn't answer; on no_results, tell the user plainly — never fall back to guessing a link.
| Argument | Type | Description |
|---|---|---|
| query* | string | The user's words: 'where can I stream Bad Guy by Billie Eilish', 'Mario Kart on Switch'. |
| category | string | Set it when you know it; 'auto' (the default) reads it from the words. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 500,
"description": "The user's words: 'where can I stream Bad Guy by Billie Eilish', 'Mario Kart on Switch'."
},
"category": {
"enum": [
"music",
"game",
"auto"
],
"type": "string",
"description": "Set it when you know it; 'auto' (the default) reads it from the words."
}
}
}An artist's live profile and discography from BeatsVine, for "what else has X made" or "X's albums". Each release has a `query` to pass to resolve_music for its links; vinyl, CD and collector editions are album-level, so this is the route to them. Pass the artist's name as `query`. `discography_complete: false` means not yet indexed — unknown, not empty. RootVine never fabricates. Every link existed at resolved_at. Limits: UK-focused stores, prices in GBP; music only today — games are not live yet. On partial, say which sources didn't answer; on no_results, tell the user plainly — never fall back to guessing a link.
| Argument | Type | Description |
|---|---|---|
| slug | string | Deprecated alias for `query`, kept for older clients. Send exactly one of `query` or `slug`. |
| query | string | The artist's name in plain words: 'Stromae', 'Billie Eilish'. Also takes a BeatsVine artist address or an `artist/…` query from an earlier answer. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"slug": {
"type": "string",
"maxLength": 500,
"description": "Deprecated alias for `query`, kept for older clients. Send exactly one of `query` or `slug`."
},
"query": {
"type": "string",
"maxLength": 500,
"description": "The artist's name in plain words: 'Stromae', 'Billie Eilish'. Also takes a BeatsVine artist address or an `artist/…` query from an earlier answer."
}
}
}Where to buy a video game. Not live yet: every call returns an explicit "coming soon" — no links, no prices — and contacts no store. Tell the user plainly that games aren't supported yet; never guess a store link or a price. For music, use resolve_music. RootVine never fabricates. Every link existed at resolved_at. Limits: UK-focused stores, prices in GBP; music only today — games are not live yet. On partial, say which sources didn't answer; on no_results, tell the user plainly — never fall back to guessing a link.
| Argument | Type | Description |
|---|---|---|
| slug | string | Deprecated alias for `query`, kept for older clients. Send exactly one of `query` or `slug`. |
| query | string | The game's name in plain words: 'Elden Ring'. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"slug": {
"type": "string",
"maxLength": 500,
"description": "Deprecated alias for `query`, kept for older clients. Send exactly one of `query` or `slug`."
},
"query": {
"type": "string",
"maxLength": 500,
"description": "The game's name in plain words: 'Elden Ring'."
}
}
}Live stream, buy and collect links for a song or album — streaming services, digital stores, vinyl and CD — ranked by trust, price and availability, never by commission. Call it rather than recall: links and prices change; a guessed link 404s. Pass the user's words as `query` ("galway girl by ed sheeran"); never build slugs. On a miss, `did_you_mean` lists close matches, each with a `query` to pass back; when `resolved_as.corrected` is true, tell the user which recording is shown. RootVine never fabricates. Every link existed at resolved_at. Limits: UK-focused stores, prices in GBP; music only today — games are not live yet. On partial, say which sources didn't answer; on no_results, tell the user plainly — never fall back to guessing a link.
| Argument | Type | Description |
|---|---|---|
| slug | string | Deprecated alias for `query`, kept for older clients. Send exactly one of `query` or `slug`. |
| query | string | What to look up, in the user's own words: 'galway girl by ed sheeran', 'Abbey Road vinyl'. Also takes a BeatsVine page address or a `query` value from an earlier answer. Do not build slugs. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"slug": {
"type": "string",
"maxLength": 500,
"description": "Deprecated alias for `query`, kept for older clients. Send exactly one of `query` or `slug`."
},
"query": {
"type": "string",
"maxLength": 500,
"description": "What to look up, in the user's own words: 'galway girl by ed sheeran', 'Abbey Road vinyl'. Also takes a BeatsVine page address or a `query` value from an earlier answer. Do not build slugs."
}
}
}