Music generation from an AI agent, over MCP
Published October 2026
Three generation tools sit on the Doseedo MCP server, and they are different instruments for different jobs. doseedo_generate_music makes an original song or instrumental from a text prompt, with lyrics if you want them sung. doseedo_render_midi plays your exact notes on one of the modelled instruments — a violin, a tenor sax, an electric guitar, a piano — at your tempo, in your key, with several takes to choose from. doseedo_cover_song re-renders a song you upload, keeping its structure while swapping instruments, changing the genre or replacing the lyrics. An agent can chain them: analyse a reference, write a part that fits, render it, and drop the best take onto a session track.
The three tools
doseedo_generate_music—prompt("warm jazz trio, brushed drums, late-night ballad"), optionallyrics,duration_seconds,seed.bpmandtime_signatureare caption hints, not controls: the output can drift from them. A part that must sit on a session's grid is written as notes and rendered instead.doseedo_render_midi—notesin beats from bar 1 (or amidi_url, or a session track bysession_id+track_id), a requiredinstrumentid from the catalog atGET /api/instruments, a requiredbpm, up to fourtakesin one call with no extra credits, atimbre_presetor atimbre_audio_url— a short recording whose sound the render takes on — adynamicstarget, andvoice_splitfor chords (one voice per render, mapped in the result). The notes are sent as written; nothing is snapped.doseedo_cover_song— an uploaded song plus aninstrumentsswap map ({"piano":"electric_guitar","sax":"violin"}), agenre, replacementlyrics, a reference mix whose timbre to take on, adrum_splitinto isolated kit pieces, and a fidelity dial for how far to depart from the source.
All three are async jobs: one to three minutes for a render, waited on with doseedo_wait_task; the takes come back ranked best-first, as pre-signed links valid 24 hours, with the seed to re-render close to the same take. A render costs ten credits per 30-second window, and the quote tool shows its working. Real reply, captured 2026-10-15, for a 21-second upright-bass part with three takes:
{
"job": "render_midi",
"estimate": { "generation": 10 },
"basis": "10 credits per 30 s window (21 s → 1 window) → 10 credits",
"assumptions": [
"takes (3) render in one GPU batch and cost nothing extra",
"a chord part split into voices (voice_split) costs one batch per ~6 voices — pass voices to price it"
],
"affordable": true
}
The server's recipes put the rest of the family on the same scale: generate is 10 credits per 30-second window (a four-minute song is 90), a cover is 40 and takes three to eight minutes because long songs render in 30-second windows. The account's free tier covers the first renders.
The loop an agent runs
> Analyse ./ref.wav for key and tempo. Write an eight-bar
walking bass line that fits, check the harmony, render it
on upright bass — three takes — and put the best one on a
new track in my "Bridge Demo" session at bar 17.
> Generate a 60-second lo-fi hip-hop instrumental, 85 bpm
feel, and add it to the session as a reference track.
> Cover ./demo.wav as bossa nova with the piano swapped
for nylon guitar, and give me the stems.
> Render this melody as a horn section: split the chords
into voices and render each one on its own instrument.
The first prompt uses five tools in order — analyze_song, analyze_midi, render_midi, wait_task, add_audio_to_session — and it is the compose-part recipe the server itself publishes through doseedo_recipes, so the agent does not have to invent the sequence. The result lands on a session track; with Dø Desktop running on a Mac with that Logic project open, it is in the arrangement within seconds.
Prompt generation versus rendering notes
This is the distinction that saves disappointment. Prompt generation is for material: a bed, a reference, a sketch of a style, a whole song with sung lyrics. It will not hold a key or a tempo you name, because the prompt is a caption, not a score. Rendering is for parts: you (or the agent) write the notes, in the key and at the tempo the session actually has, and a modelled instrument performs them — which is why it is the tool for anything that has to sit in an arrangement. A cover is the third case: the song exists, and what changes is who is playing it. The MIDI-to-audio page is the browser version of rendering and the instrument catalog lists what can play.
Generation runs on the server, so nothing about it depends on your DAW being open — it works from a phone, a terminal, a CI job. What does need the desktop bridge is only the last step, the take appearing in an open Logic project; without it, the take is on the session and in the next download.
Render one part from your agent
Connect the server, name a key and a tempo, and ask for eight bars on an instrument. Pick a take.
The Doseedo MCP server →FAQ
Is there an MCP server for AI music generation?
Yes. The Doseedo MCP server exposes doseedo_generate_music (a song from a prompt, with optional lyrics), doseedo_render_midi (your exact notes performed by a modelled instrument, several takes) and doseedo_cover_song (a song re-rendered with instruments swapped or a genre changed). It works from Claude, ChatGPT, Cursor, Gemini CLI, Codex and any MCP client.
Can I generate music in a specific key and tempo?
Not from a prompt alone — bpm and time signature are hints the output can drift from. For a part that must fit, write the notes in that key and tempo and render them with doseedo_render_midi; the notes are played exactly as written.
Which instruments can play my notes?
The modelled instruments in the catalog at api.doseedo.com/api/instruments — strings, brass, reeds, guitars, keys and more, the same ones on the Sources page. A timbre preset or a short reference recording shapes the sound.
Can the generated audio go straight into my DAW?
Yes — doseedo_add_audio_to_session places a take or a generated song on a session, and with Dø Desktop running it appears in the open Logic project. Otherwise it is in the next download of the session.
What does a render cost?
Ten credits per 30-second window, from the same credit pool as the rest of the account; up to four takes in one call cost no extra. doseedo_quote prices a job before it is submitted, and a free tier covers the first renders.
The Doseedo MCP server · one URL, every client
- Logic Prolive edits in the open project
- Ableton Livebuild, read, convert .als
- FL Studioread, convert .flp
- Pro Toolsmove .ptx between DAWs
- REAPERread, edit, convert .rpp
- Any AI agentwhat works today
- Claude & Claude Codephone, desktop, terminal
- ChatGPTas a custom MCP server
- Cursormcp.json, one entry
- Gemini CLIgemini mcp add
- OpenAI Codexcodex mcp add
- VS Code Copilotmcp.json, type http
- All 33 toolsthe reference
- Convert projectsten DAW formats, 75 directions
- Separate stemsvocals, drums, bass, more
- Audio to MIDItranscription, chords, key
- Generate musicsongs, parts, covers
- Bounce offlinethrough real plugins
- Swap a drum packaudio stays local