Flow Music MCP Server

October 16, 2026

Table of contents

  1. Endpoint and authorization
  2. Setup
  3. Tools
  4. Long-running work
  5. Example prompts
  6. Limits and notes

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, and flowmusic_get_job with wait: true picks 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_lyrics answers in about 30 seconds and flowmusic_split_stems in 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 Authorization header.
  • A client may send up to 20 JSON-RPC requests in one batch.
  • If the client sends an MCP-Protocol-Version header, it must be one of the supported versions: 2025-06-18, 2025-03-26 or 2024-11-05.
  • Every tool call shows in your usage stats (bot=flowmusic) as model mcp, with the tool name as its status, or failed.