Build Mood Playlist
build_mood_playlistGenerate a mood-matched, ordered song playlist from lyric themes and valence/energy targets, optionally following a 2–5 stage emotional arc; review it before saving to Spotify.
Instructions
Pick and order songs for a mood, judging both what the lyrics are
about (mood_text) and how the music feels (valence/energy targets you
choose from the user's request). With arc, songs move gradually
through 2-5 moods (e.g. heartbroken -> hopeful). Songs come from the
seed artists and similar artists, or from the user's top and liked songs.
This only proposes a list: show it to the user, then call
create_spotify_playlist with the ids if they want it saved. The first run
for new artists can take a minute or two.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"mood_text": "<mood_text>"
},
"name": "build_mood_playlist"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| arc | No | Optional journey, e.g. sad -> hopeful: 2-5 stages in order. Songs move gradually from the first stage to the last. Overrides mood_text/valence/energy for ordering. | |
| size | No | Number of songs (5-50). | |
| energy | No | Target intensity 0-1 (calm ≈ 0.2, mid ≈ 0.5, intense ≈ 0.85). | |
| valence | No | Target musical positivity 0-1 (sad ≈ 0.15, neutral ≈ 0.5, happy ≈ 0.85). | |
| mood_text | Yes | What the lyrics should be about or feel like, e.g. 'missing someone, lonely nights'. Several lines are averaged: give the mood in each language of the music (e.g. English and Finnish), because the model favours lyrics in the query's language. | |
| seed_artists | No | Draw songs from these artists and similar ones. Empty: use the user's own top and liked songs. | |
| feature_weight | No | How much valence/energy count against lyrics (0 = lyrics only). | |
| max_per_artist | No | Variety cap per artist. |