
AI mixing and mastering in the chat: check a song, mix your stems, change the mix in plain words.
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.
Changes a song mixed from stems the way the person asks after listening: a stem louder or quieter, muted or back in, more or less reverb, or placed left, center or right. One call takes all the changes for a song. Bandmixr then makes the mix and the master again with the changes (about as long as the first mix); the studio shows the progress and plays the new version, which replaces the earlier version made in the chat (downloaded versions and mixes made on the website stay). Stem ids, file names and the current settings come from get_song_status.
The song id from list_songs or create_song.
Mastering style for the new master; the current one if not given.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Changes a song mixed from stems the way the person asks after listening: a stem louder or quieter, muted or back in, more or less reverb, or placed left, center or right. One call takes all the changes for a song. Bandmixr then makes the mix and the master again with the changes (about as long as the first mix); the studio shows the progress and plays the new version, which replaces the earlier version made in the chat (downloaded versions and mixes made on the website stay). Stem ids, file names and the current settings come from get_song_status.
| Argument | Type | Description |
|---|---|---|
| preset | string | Mastering style for the new master; the current one if not given. |
| songId* | string | The song id from list_songs or create_song. |
| changes* | array |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"songId",
"changes"
],
"properties": {
"preset": {
"enum": [
"streaming",
"optimal",
"loud"
],
"type": "string",
"description": "Mastering style for the new master; the current one if not given."
},
"songId": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "The song id from list_songs or create_song."
},
"changes": {
"type": "array",
"items": {
"type": "object",
"required": [
"stemId"
],
"properties": {
"pan": {
"enum": [
"auto",
"left",
"center",
"right"
],
"type": "string",
"description": "Where the stem sits from left to right. auto = Bandmixr places it; left = to the left; center = in the center; right = to the right."
},
"muted": {
"type": "boolean",
"description": "true = leave the stem out of the mix; false = bring it back."
},
"reverb": {
"enum": [
"default",
"none",
"low",
"medium",
"high"
],
"type": "string",
"description": "How much reverb the stem gets. default = Bandmixr's own amount; none = no reverb (dry); low = less reverb than Bandmixr's amount; medium = more reverb than Bandmixr's amount; high = a lot of reverb."
},
"stemId": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "The stem id from get_song_status."
},
"volumeDb": {
"type": "number",
"maximum": 12,
"minimum": -24,
"description": "The stem's new level against Bandmixr's own balance in dB: 0 = Bandmixr's balance, +3 = 3 dB louder, -6 = 6 dB quieter. It replaces the current value (get_song_status shows it), so \"a bit louder\" from +2 is +4. About 1 to 2 dB is \"a bit\", 3 to 4 dB \"clearly\", 6 dB \"a lot\"."
}
}
},
"maxItems": 64,
"minItems": 1
}
}
}Opens the Bandmixr Mix Analyzer in the chat. It checks a mix or master in the browser (the file is not uploaded): loudness (LUFS), true peak, clipping, stereo image and tonal balance, with a verdict for each and a 30-second mastered preview.
| Argument | Type | Description |
|---|---|---|
| genre | string | Genre of the song. rock_indie = rock / indie; pop = pop; acoustic = acoustic, singer-songwriter; hip_hop_grime = hip hop, rap, trap, grime; electronic = electronic, EDM, house, techno; reggae_dub = reggae / dub; orchestral = orchestral, film score; metal = metal; jazz = jazz; blues = blues; funk_soul = funk / soul / R&B; punk = punk; other = anything else or not sure (balanced, genre-neutral). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"genre": {
"enum": [
"rock_indie",
"pop",
"acoustic",
"hip_hop_grime",
"electronic",
"reggae_dub",
"orchestral",
"metal",
"jazz",
"blues",
"funk_soul",
"punk",
"other"
],
"type": "string",
"description": "Genre of the song. rock_indie = rock / indie; pop = pop; acoustic = acoustic, singer-songwriter; hip_hop_grime = hip hop, rap, trap, grime; electronic = electronic, EDM, house, techno; reggae_dub = reggae / dub; orchestral = orchestral, film score; metal = metal; jazz = jazz; blues = blues; funk_soul = funk / soul / R&B; punk = punk; other = anything else or not sure (balanced, genre-neutral)."
}
}
}Creates a new song in Bandmixr for mixing stems and opens the studio with its upload box. The genre and the mastering style are the ones the person names (other and streaming when they name none). Mixing and mastering are part of it: they start by themselves once the stems are uploaded and the person has confirmed the labels in the studio.
| Argument | Type | Description |
|---|---|---|
| mix | boolean | false = upload now, mix later (default true: mix once the labels are confirmed). |
| genre | string | Genre of the song. rock_indie = rock / indie; pop = pop; acoustic = acoustic, singer-songwriter; hip_hop_grime = hip hop, rap, trap, grime; electronic = electronic, EDM, house, techno; reggae_dub = reggae / dub; orchestral = orchestral, film score; metal = metal; jazz = jazz; blues = blues; funk_soul = funk / soul / R&B; punk = punk; other = anything else or not sure (balanced, genre-neutral). |
| title | string | The song's name, as the person calls it. |
| preset | string | Mastering style. streaming = optimized for Spotify and Apple Music; optimal = balanced ("Standard"); loud = maximum punch and loudness. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"mix": {
"type": "boolean",
"description": "false = upload now, mix later (default true: mix once the labels are confirmed)."
},
"genre": {
"enum": [
"rock_indie",
"pop",
"acoustic",
"hip_hop_grime",
"electronic",
"reggae_dub",
"orchestral",
"metal",
"jazz",
"blues",
"funk_soul",
"punk",
"other"
],
"type": "string",
"description": "Genre of the song. rock_indie = rock / indie; pop = pop; acoustic = acoustic, singer-songwriter; hip_hop_grime = hip hop, rap, trap, grime; electronic = electronic, EDM, house, techno; reggae_dub = reggae / dub; orchestral = orchestral, film score; metal = metal; jazz = jazz; blues = blues; funk_soul = funk / soul / R&B; punk = punk; other = anything else or not sure (balanced, genre-neutral)."
},
"title": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The song's name, as the person calls it."
},
"preset": {
"enum": [
"streaming",
"optimal",
"loud"
],
"type": "string",
"description": "Mastering style. streaming = optimized for Spotify and Apple Music; optimal = balanced (\"Standard\"); loud = maximum punch and loudness."
}
}
}Shows the connected Bandmixr account's plan and its limits (stems per song, song length, storage). Needs the person to connect their Bandmixr account.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Returns a 30-minute ticket and the address of the Bandmixr preview service, which the studio in the chat uses for the 30-second mastered preview. The studio calls this tool on its own; the assistant does not need to call it directly.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Returns a 15-minute ticket for one of the person's songs, which the studio in the chat uses to upload stems, show the label check and the progress, and play the original, the mix and the master. The studio calls this tool on its own; the assistant does not need to call it directly.
| Argument | Type | Description |
|---|---|---|
| songId* | string | The song id from list_songs or create_song. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"songId"
],
"properties": {
"songId": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "The song id from list_songs or create_song."
}
}
}One song's stems with their labels, uploads and analysis still running, whether the person has confirmed the labels, and where the mix and master stand.
| Argument | Type | Description |
|---|---|---|
| songId* | string | The song id from list_songs or create_song. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"songId"
],
"properties": {
"songId": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "The song id from list_songs or create_song."
}
}
}Lists the person's Bandmixr songs, most recently changed first.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Opens the Bandmixr studio in the chat to master or enhance a finished song (a stereo mix). The song is checked in the browser for loudness, peaks, stereo image and tonal balance, and a 30-second mastered preview plays next to the original. Mastering the full song needs a Bandmixr account.
| Argument | Type | Description |
|---|---|---|
| genre | string | Genre of the song. rock_indie = rock / indie; pop = pop; acoustic = acoustic, singer-songwriter; hip_hop_grime = hip hop, rap, trap, grime; electronic = electronic, EDM, house, techno; reggae_dub = reggae / dub; orchestral = orchestral, film score; metal = metal; jazz = jazz; blues = blues; funk_soul = funk / soul / R&B; punk = punk; other = anything else or not sure (balanced, genre-neutral). |
| preset | string | Mastering style. streaming = optimized for Spotify and Apple Music; optimal = balanced ("Standard"); loud = maximum punch and loudness. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"genre": {
"enum": [
"rock_indie",
"pop",
"acoustic",
"hip_hop_grime",
"electronic",
"reggae_dub",
"orchestral",
"metal",
"jazz",
"blues",
"funk_soul",
"punk",
"other"
],
"type": "string",
"description": "Genre of the song. rock_indie = rock / indie; pop = pop; acoustic = acoustic, singer-songwriter; hip_hop_grime = hip hop, rap, trap, grime; electronic = electronic, EDM, house, techno; reggae_dub = reggae / dub; orchestral = orchestral, film score; metal = metal; jazz = jazz; blues = blues; funk_soul = funk / soul / R&B; punk = punk; other = anything else or not sure (balanced, genre-neutral)."
},
"preset": {
"enum": [
"streaming",
"optimal",
"loud"
],
"type": "string",
"description": "Mastering style. streaming = optimized for Spotify and Apple Music; optimal = balanced (\"Standard\"); loud = maximum punch and loudness."
}
}
}Mixes an existing song's stems and masters the mix in one go (draft, final mix, master), for example to mix it again with another genre or mastering style; a song made with create_song is already set up for this. It waits for the uploads, the analysis and the person's "Labels are correct" in the studio, then starts by itself. The mastering style is the one the person names (streaming when they name none). The studio shows the progress and plays the result; a new mix replaces the earlier version made in the chat (downloaded versions and mixes made on the website stay).
| Argument | Type | Description |
|---|---|---|
| master | boolean | false = mix only, without a master (default true). |
| preset | string | Mastering style. streaming = optimized for Spotify and Apple Music; optimal = balanced ("Standard"); loud = maximum punch and loudness. |
| songId* | string | The song id from list_songs or create_song. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"songId"
],
"properties": {
"master": {
"type": "boolean",
"description": "false = mix only, without a master (default true)."
},
"preset": {
"enum": [
"streaming",
"optimal",
"loud"
],
"type": "string",
"description": "Mastering style. streaming = optimized for Spotify and Apple Music; optimal = balanced (\"Standard\"); loud = maximum punch and loudness."
},
"songId": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "The song id from list_songs or create_song."
}
}
}Opens the Bandmixr studio for a song in the chat. It shows what the song needs next: the upload box for stems, the label check (only the person can confirm labels there), the mix progress, or the player with the original, the mix and the master.
| Argument | Type | Description |
|---|---|---|
| songId* | string | The song id from list_songs or create_song. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"songId"
],
"properties": {
"songId": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "The song id from list_songs or create_song."
}
}
}Creates a new song named after the file the person checked in the studio and returns a short-lived ticket for uploading it, so the studio can upload and master the full song. The studio calls this tool when the person chooses to master the full song; the assistant does not need to call it directly.
| Argument | Type | Description |
|---|---|---|
| genre | string | Genre of the song. rock_indie = rock / indie; pop = pop; acoustic = acoustic, singer-songwriter; hip_hop_grime = hip hop, rap, trap, grime; electronic = electronic, EDM, house, techno; reggae_dub = reggae / dub; orchestral = orchestral, film score; metal = metal; jazz = jazz; blues = blues; funk_soul = funk / soul / R&B; punk = punk; other = anything else or not sure (balanced, genre-neutral). |
| title* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"title"
],
"properties": {
"genre": {
"enum": [
"rock_indie",
"pop",
"acoustic",
"hip_hop_grime",
"electronic",
"reggae_dub",
"orchestral",
"metal",
"jazz",
"blues",
"funk_soul",
"punk",
"other"
],
"type": "string",
"description": "Genre of the song. rock_indie = rock / indie; pop = pop; acoustic = acoustic, singer-songwriter; hip_hop_grime = hip hop, rap, trap, grime; electronic = electronic, EDM, house, techno; reggae_dub = reggae / dub; orchestral = orchestral, film score; metal = metal; jazz = jazz; blues = blues; funk_soul = funk / soul / R&B; punk = punk; other = anything else or not sure (balanced, genre-neutral)."
},
"title": {
"type": "string",
"maxLength": 100,
"minLength": 1
}
}
}Sets what is on each stem from what the person says about their files (stem ids and file names come from get_song_status). It does not confirm the labels: the person still confirms them with "Labels are correct" in the studio before anything is mixed.
| Argument | Type | Description |
|---|---|---|
| labels* | array | |
| songId* | string | The song id from list_songs or create_song. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"songId",
"labels"
],
"properties": {
"labels": {
"type": "array",
"items": {
"type": "object",
"required": [
"stemId",
"label"
],
"properties": {
"label": {
"enum": [
"kick",
"snare",
"hihat",
"toms",
"overheads",
"room_mics",
"drum_bus",
"percussion",
"bass_electric",
"bass_acoustic",
"bass_synth",
"guitar_electric_clean",
"guitar_electric_distorted",
"guitar_acoustic",
"guitar_nylon",
"piano",
"organ",
"synth_pad",
"synth_lead",
"keys_other",
"vocal_lead",
"vocal_backing",
"vocal_rap",
"strings",
"brass",
"woodwinds",
"instrumental",
"ambient",
"other"
],
"type": "string",
"description": "What is on the stem. kick = kick drum; snare = snare drum; hihat = hi-hat; toms = toms; overheads = drum overheads (cymbals and the whole kit from above); room_mics = drum room mics; drum_bus = all drums on one track (drum mix or drum loop); percussion = percussion (shaker, congas, claps, tambourine); bass_electric = electric bass guitar; bass_acoustic = upright or acoustic bass; bass_synth = synth bass or 808; guitar_electric_clean = clean electric guitar; guitar_electric_distorted = distorted or overdriven electric guitar; guitar_acoustic = acoustic guitar (steel strings); guitar_nylon = nylon-string or classical guitar; piano = piano; organ = organ; synth_pad = synth pad; synth_lead = synth lead; keys_other = other keys (Rhodes, e-piano, keyboard); vocal_lead = lead vocal (the main sung vocal); vocal_backing = backing vocals, harmonies or ad-libs; vocal_rap = rap vocal; strings = strings (violin, cello, string section); brass = brass (trumpet, trombone, horns); woodwinds = woodwinds (flute, sax, clarinet); instrumental = full instrumental or beat (everything but the vocals on one stereo track); ambient = ambience, effects, textures or noise; other = something else, or not sure."
},
"stemId": {
"type": "string",
"maxLength": 64,
"minLength": 1
}
}
},
"maxItems": 64,
"minItems": 1
},
"songId": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "The song id from list_songs or create_song."
}
}
}Masters the song's finished mix, or masters it again in another style (for example "louder": loud). The song needs a finished mix, from mix_and_master or an uploaded mix. The studio shows the progress and plays the new master, which replaces an earlier master made in the chat (downloaded ones stay).
| Argument | Type | Description |
|---|---|---|
| preset* | string | Mastering style. streaming = optimized for Spotify and Apple Music; optimal = balanced ("Standard"); loud = maximum punch and loudness. |
| songId* | string | The song id from list_songs or create_song. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"songId",
"preset"
],
"properties": {
"preset": {
"enum": [
"streaming",
"optimal",
"loud"
],
"type": "string",
"description": "Mastering style. streaming = optimized for Spotify and Apple Music; optimal = balanced (\"Standard\"); loud = maximum punch and loudness."
},
"songId": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "The song id from list_songs or create_song."
}
}
}Changes the title or the genre of a song (not while it is being mixed).
| Argument | Type | Description |
|---|---|---|
| genre | string | Genre of the song. rock_indie = rock / indie; pop = pop; acoustic = acoustic, singer-songwriter; hip_hop_grime = hip hop, rap, trap, grime; electronic = electronic, EDM, house, techno; reggae_dub = reggae / dub; orchestral = orchestral, film score; metal = metal; jazz = jazz; blues = blues; funk_soul = funk / soul / R&B; punk = punk; other = anything else or not sure (balanced, genre-neutral). |
| title | string | The song's name, as the person calls it. |
| songId* | string | The song id from list_songs or create_song. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"songId"
],
"properties": {
"genre": {
"enum": [
"rock_indie",
"pop",
"acoustic",
"hip_hop_grime",
"electronic",
"reggae_dub",
"orchestral",
"metal",
"jazz",
"blues",
"funk_soul",
"punk",
"other"
],
"type": "string",
"description": "Genre of the song. rock_indie = rock / indie; pop = pop; acoustic = acoustic, singer-songwriter; hip_hop_grime = hip hop, rap, trap, grime; electronic = electronic, EDM, house, techno; reggae_dub = reggae / dub; orchestral = orchestral, film score; metal = metal; jazz = jazz; blues = blues; funk_soul = funk / soul / R&B; punk = punk; other = anything else or not sure (balanced, genre-neutral)."
},
"title": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The song's name, as the person calls it."
},
"songId": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "The song id from list_songs or create_song."
}
}
}