Flow Music MCP Server
October 16, 2026
Table of contents
The useapi.net Flow Music MCP server lets an AI assistant such as Claude Code, Cursor or VS Code Copilot make music with Google Flow Music on your own Flow Music accounts. It is a hosted Model Context Protocol server with 18 tools: generate songs with Google’s Lyria models from a description, your own lyrics or lyrics the model writes, then extend them, regenerate a section, restyle them, re-sing them with new lyrics, apply audio effects or split them into stems. Each tool calls the FlowMusic API, so the same rules and limits apply. Nothing needs to be installed or hosted.
Endpoint and authorization
https://api.useapi.net/v1/flowmusic/mcp
- Transport: Streamable HTTP.
- Listed in the official MCP Registry as
net.useapi/flowmusic, so MCP clients and directories that read the registry can find it by that name. - Authorization: your useapi.net API token in the
Authorization: Bearer …header, see Setup useapi.net. - You need at least one Flow Music account added with Setup Flow Music. Adding and removing accounts is not available over MCP: use POST /accounts or the setup page.
Setup
Replace YOUR_API_TOKEN with your useapi.net API token.
Claude Code
claude mcp add --transport http useapi-flowmusic https://api.useapi.net/v1/flowmusic/mcp --header "Authorization: Bearer YOUR_API_TOKEN"
Cursor
In ~/.cursor/mcp.json:
{
"mcpServers": {
"useapi-flowmusic": {
"url": "https://api.useapi.net/v1/flowmusic/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
VS Code
In .vscode/mcp.json:
{
"servers": {
"useapi-flowmusic": {
"type": "http",
"url": "https://api.useapi.net/v1/flowmusic/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Windsurf and other clients
Any client that supports remote MCP servers over HTTP with custom headers works. The usual JSON shape:
{
"mcpServers": {
"useapi-flowmusic": {
"serverUrl": "https://api.useapi.net/v1/flowmusic/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Some clients name the address field url instead of serverUrl.
Test it with curl
curl -s https://api.useapi.net/v1/flowmusic/mcp \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'
curl -s https://api.useapi.net/v1/flowmusic/mcp \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
The first call answers with the server’s name useapi-flowmusic and its instructions for the assistant, the second with the 18 tools.
Tools
Songs, clips and uploaded files are named by the ids the tools return, and each id carries its account, so an edit runs on the account that holds the clip. Tools that start a song take an optional email to pick the account.
Accounts
| Tool | What it does | Main parameters |
|---|---|---|
flowmusic_list_accounts | Lists your accounts with their plan, maxJobs and health. | Â |
flowmusic_get_account | Reads one account live: plan, credits and tokens left. | email |
flowmusic_update_account | Sets maxJobs, the songs and edits an account runs at once. | email, maxJobs |
flowmusic_get_usage | Returns an account’s credit usage: daily billing events and the cost of each song. | email |
Songs and lyrics
| Tool | What it does | Main parameters |
|---|---|---|
flowmusic_create_song | Generates a song from a description of the style, mood, instruments and vocals, with your own lyrics, lyrics the model writes, or instrumental. | prompt, lyrics, instrumental, ghostwriter, model, refImage1..10, refAudio1..10, email |
flowmusic_write_lyrics | Writes [Verse] / [Chorus] lyrics, a title and a sound prompt for a song concept, without making a song. | prompt, structure, email |
flowmusic_list_songs | Lists the clips on an account, most recent first. | email, limit, offset |
flowmusic_get_job | Reads a song or edit job, and with wait: true waits for it to finish. | jobid, wait |
flowmusic_list_jobs | Lists the jobs running now on each account. | Â |
flowmusic_cancel_job | Stops tracking a job and frees its slot. Flow Music may still finish the song, and its credits are spent either way. | jobid |
The parameters match POST /music and POST /music/lyrics.
Edits
Each edit of POST /music/edit is its own tool. Every one takes the clip to edit and an optional title and seed.
| Tool | What it does | Main parameters |
|---|---|---|
flowmusic_extend_song | Adds music to a clip, 1 to 300 seconds (150 by default). | instruction, extend_s, extend_from_s, model |
flowmusic_replace_section | Regenerates one section of a clip. | instruction, mask_start_s, mask_end_s, model |
flowmusic_cover_song | Restyles a whole clip. | instruction, strength, model |
flowmusic_remix_lyrics | Re-sings a clip with edited lyrics, keeping its sound. | lyrics, prompt, model |
flowmusic_apply_effect | Applies one effect: Trim, Fade, Gain, Reverb, Pan or Equalizer. | effect and that effect’s parameters |
flowmusic_split_stems | Splits a clip into four stem clips: drums, bass, vocals and other. | clip |
Reference files
| Tool | What it does | Main parameters |
|---|---|---|
flowmusic_upload_file | Uploads a JPEG, PNG or WebP image (up to 20 MB) or an MP3, WAV or M4A song (up to 40 MB) from a public https URL, or sent as contentBase64, as a reference for flowmusic_create_song. | url or contentBase64, mimeType, email, stripMetadata |
flowmusic_generate_image | Generates an image to use as a reference, returned as an image the assistant can see. | prompt, email |
References are loose hints: neither Lyria model copies an uploaded song or picture. The full input schema of every tool comes from tools/list.
Long-running work
MCP clients usually give up on a tool call after about a minute, so a tool waits up to about 50 seconds:
- A song usually takes 30 seconds to a minute, sometimes up to two and a half. If it isn’t done in time, the tool returns the
jobid, andflowmusic_get_jobwithwait: truepicks it up. Ask the assistant to keep checking until it is done. - A remix takes about 20 to 30 seconds and an effect under half a minute. Extend, replace and cover take about as long as a song.
flowmusic_write_lyricsanswers in about 30 seconds andflowmusic_split_stemsin 15 to 60 seconds. If a stem split takes longer, call it again a minute later: a clip that is already split returns its stems at once.
Clients that ask for progress notifications get one about every 10 seconds while a tool waits.
Each clip comes back with its id and public m4a and wav links. The mp3 comes through GET /music/download with the same Authorization header.
Example prompts
- “Write lyrics for an upbeat song about a dog named Biscuit who loves the beach, then make it as indie pop with a warm female vocal.”
- “Make a 2-minute lo-fi hip hop instrumental for studying, using Lyria 3.5.”
- “Extend my last song by 30 seconds with an outro that fades out.”
- “Make a slow bossa nova cover of that song.”
- “Re-sing the second verse with these new lyrics: …”
- “Split the song into stems and give me the vocals track.”
- “How many Flow Music credits are left on my accounts?”
Limits and notes
- The tools use your Flow Music accounts and the same rules as the REST API, such as
maxJobs. Songs and edits use the account’s Flow Music credits, see the cost calculator on the FlowMusic API page. - Custom connectors on claude.ai need OAuth sign-in, which this server does not support yet. Use Claude Code or another client that can send an
Authorizationheader. - A client may send up to 20 JSON-RPC requests in one batch.
- If the client sends an
MCP-Protocol-Versionheader, it must be one of the supported versions:2025-06-18,2025-03-26or2024-11-05. - Every tool call shows in your usage stats (
bot=flowmusic) as modelmcp, with the tool name as its status, orfailed.