Best moments + video-gen prompts per scene, beats, tempo, key. Spotify Audio Features alternative.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional Songbrain API key (sb_live_...) to analyse your own songs. Without it, the example tools work. Get one at https://app.songbrain.ai/developers
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.
For a finished song analysed with mode 'dna': builds its story and beat-synced shot plan (scenes with seconds and image/video prompts) from the existing analysis. 15 credits, refunded if it fails. Then poll get_song (about 30 seconds).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
For a finished song analysed with mode 'dna': builds its story and beat-synced shot plan (scenes with seconds and image/video prompts) from the existing analysis. 15 credits, refunded if it fails. Then poll get_song (about 30 seconds).
| Argument | Type | Description |
|---|---|---|
| song_id* | string |
{
"type": "object",
"required": [
"song_id"
],
"properties": {
"song_id": {
"type": "string"
}
},
"additionalProperties": false
}Start the analysis of a song at a public audio URL (MP3, WAV, FLAC, M4A, AAC, OGG or AIFF; 30 s to 10 min). Needs an API key on the MCP connection. Returns a song_id; poll get_song until status is 'done' (typically 60–90 seconds, up to ~2 minutes when busy). Uses one free song, or 25 credits (mode 'full') / 10 credits (mode 'dna').
| Argument | Type | Description |
|---|---|---|
| mode | string | full = Song DNA + video direction (story, shot plan with prompts), 25 credits. dna = Song DNA only (no story, no shot plan), 10 credits. A free song covers either. |
| title | string | |
| artist | string | |
| lyrics | string | Optional: the song's lyrics as plain text. Used for the exact words (timings still come from the audio). |
| audio_url* | string | Public http(s) URL of the audio file |
{
"type": "object",
"required": [
"audio_url"
],
"properties": {
"mode": {
"enum": [
"full",
"dna"
],
"type": "string",
"default": "full",
"description": "full = Song DNA + video direction (story, shot plan with prompts), 25 credits. dna = Song DNA only (no story, no shot plan), 10 credits. A free song covers either."
},
"title": {
"type": "string"
},
"artist": {
"type": "string"
},
"lyrics": {
"type": "string",
"description": "Optional: the song's lyrics as plain text. Used for the exact words (timings still come from the audio)."
},
"audio_url": {
"type": "string",
"description": "Public http(s) URL of the audio file"
}
},
"additionalProperties": false
}Free songs left this month, credit balance and price per song for the connected key.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Full analysis of an example song: Song DNA, beat grid and sections, best moments, lyrics, scores, story and shot plan. No API key needed. Summary view by default (no per-word timings or beat arrays); set view='full' for everything.
| Argument | Type | Description |
|---|---|---|
| view | string | |
| sections | array | Only these sections (default: all) |
| example_id* | string | id from list_example_songs |
{
"type": "object",
"required": [
"example_id"
],
"properties": {
"view": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary"
},
"sections": {
"type": "array",
"items": {
"enum": [
"song_dna",
"timeline",
"best_moments",
"lyrics",
"scores",
"story",
"shot_plan"
],
"type": "string"
},
"description": "Only these sections (default: all)"
},
"example_id": {
"type": "string",
"description": "id from list_example_songs"
}
},
"additionalProperties": false
}The beat-synced shot plan of an example song: every scene with start and end seconds, its act (setup, turn or payoff), the image/video prompt, framing, motion and the lyric sung under it, plus the story, world and palette. No key needed.
| Argument | Type | Description |
|---|---|---|
| example_id* | string |
{
"type": "object",
"required": [
"example_id"
],
"properties": {
"example_id": {
"type": "string"
}
},
"additionalProperties": false
}Songbrain API prices (free songs per month, price per song) and limits.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Status of a song started with analyze_song, then its full analysis once done. Summary view by default; view='full' adds word timings and beat arrays.
| Argument | Type | Description |
|---|---|---|
| view | string | |
| song_id* | string | |
| sections | array |
{
"type": "object",
"required": [
"song_id"
],
"properties": {
"view": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "summary"
},
"song_id": {
"type": "string"
},
"sections": {
"type": "array",
"items": {
"enum": [
"song_dna",
"timeline",
"best_moments",
"lyrics",
"scores",
"story",
"shot_plan"
],
"type": "string"
}
}
},
"additionalProperties": false
}List real Songbrain analyses of Songbrain's own songs (no API key needed). Use one to show what the API returns before analysing a user's song.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}