mcpField
F
Flow Music (fmusic)

Flow Music (fmusic)

ローカル
github.com/JvanLeeuwen4メディア・デザイン13 日前に更新

Flow Music (fmusic) について

Flow Music (fmusic)は、Google Flow Music (Lyria)で楽曲を生成・編集するコマンドラインクライアント兼MCPサーバーです。ターミナル利用者やAIエージェント向けに、楽曲生成のほか、ステム分割、ダウンロード、ループ作成も提供します。

主な機能

  1. 01説明文や歌詞から楽曲を生成
  2. 02チャットで楽曲を続編・リミックス
  3. 03ボーカルと楽器のステム分割
  4. 04生成したクリップのダウンロードと管理
  5. 05シームレスなインストループの作成

活用シーン

  1. 01テキストプロンプトから楽曲を生成
  2. 02ゲーム用のループ音楽を用意
  3. 03保存済みクリップの確認やダウンロード

MCP 対応

MCPサーバーは、楽曲生成やクリップ操作などのFlow Music機能をMCPクライアントに公開します。`fmusic mcp run` で起動できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"jvanleeuwen4-flowmusic-cli": {
"command": "uvx",
"args": [
"flowmusic-cli"
]
}
}
}
起動コマンドuvx flowmusic-cli

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiflowmusic-cli0.2.0

ツール

9

掲載時のツール一覧 · 3 日前に更新

パラメーター型必須説明
loopbooleanいいえ
modelstringいいえ
formatstringいいえ
lyricsanyいいえ
promptstringはい
out_diranyいいえ
downloadbooleanいいえ
loop_formatstringいいえ
instrumentalbooleanいいえ

詳細

flowmusic-cli

ターミナル、スクリプト、AI エージェントから Google Flow Music(Lyria)で音楽を作成できます。

fmusic は、flowmusic.app 用のコマンドラインクライアントおよび MCP サーバーです。ご自身の Google アカウントで一度サインインすれば、その後はブラウザーなしで利用できます。曲の説明を入力すると、数分後には WAV ファイルと、曲の詳細を記載した JSON ファイルが手に入ります。

mcp-name: io.github.JvanLeeuwen4/flowmusic-cli

重要

非公式プロジェクトです。 Google との提携、Google による承認、またはサポートはありません。flowmusic.app のウェブサイトと同じエンドポイントを使用するため、サイトの変更によって動作しなくなる可能性があります。ご自身のアカウントとクレジットを使用します。Flow Music の利用規約と生成 AI 利用ポリシーを遵守し、スパムや大量生成には使用しないでください。


クイックスタート

uv tool install flowmusic-cli        # 1. install (or: pipx install flowmusic-cli)
fmusic auth login                    # 2. a browser opens once: sign in with Google
fmusic generate "dreamy synthwave, airy female vocals, 100 bpm"   # 3. make a song

出力例:

♪ take 1 (audio__create_song) Dreamy synthwave, airy female vocals, lush pads, 100 bpm
  queued "Neon Drift" 3e2b2139-… (~35s)
  ✓ rendered "Neon Drift"
⬇ ~/Music/flowmusic-cli/2026-11-04/neon-drift_3e2b2139.wav
Neon Drift  1:44  3e2b2139-2783-4171-a2b4-a51d03bc4504
continue with: fmusic chat 13001945-… "…"

必要なもの:

  • Python 3.10 以降。uv または pipx 経由で使用します。
  • 初回サインイン用の Google Chrome または Edge。
  • Flow Music を利用できる Google アカウント。Google AI のサブスクリプションに加入すると、最も多くのクレジットを利用できます。

できること

やりたいこと…コマンド
説明から曲を作るfmusic generate "folk ballad about the sea, male vocals"
自分の歌詞を使うfmusic generate "upbeat k-pop" --lyrics lyrics.txt
インストゥルメンタルを作るfmusic generate "lofi beat, 80 bpm" --instrumental
作ったばかりの曲を変更するfmusic chat <conversation_id> "make it faster, add a bridge"
自分の音源を別のスタイルにするfmusic generate "turn this into a jazz trio" --audio demo.mp3
曲をステムに分割するfmusic stems <clip_id>(ボーカル、ドラム、ベース、その他)
自分の曲を確認するfmusic clips list
曲をダウンロード、名前変更、削除するfmusic clips download/rename/delete <clip_id>
ゲーム用のループ音楽を作るfmusic generate "cozy village theme" --instrumental --loop (詳細)
手持ちの曲をループさせるfmusic loop <clip_id or file>(クレジット不要)
クレジットを確認するfmusic credits

すべてのコマンドとフラグの詳細は、docs/commands.md をご覧ください。

生成の仕組み

Flow Music には AI の共同プロデューサーがいます。入力したプロンプトはこの共同プロデューサーに渡され、何を作るかが決まります。多くの場合、1 つか 2 つのテイクが作成されます。プロンプトは詳細な「サウンドプロンプト」に書き換えられ、次のステップが提案されることもあります。生成ごとに会話が作成され、たとえばテイクの調整、延長、リミックスを行う場合は、fmusic chat <conversation_id> "…" でその会話を続けます。

共同プロデューサーを介さずに厳密に制御したい場合は、実験的な --direct モードを使用してください。プロンプトはそのまま曲のモデルに渡され、-n でテイク数を指定します。

fmusic generate "minimal techno, 126 bpm, hypnotic" --direct -n 2 --title "Night Drive"

ゲーム音楽:シームレスなループ

Lyria の楽曲にはイントロと明確な終わりがあるため、ファイルをそのままループ再生すると、最後のコードから冒頭へ突然戻ります。--loop を使えば解決できます。

ループのつなぎ目付近の波形:元のファイルはフェードアウトして静かなイントロから再開しますが、fmusic のループは再生を続けます

1 分間の Lyria ジングルのつなぎ目前後 16 秒をお聴きください:🔊 元のファイルをループ再生 · 🔊 fmusic loop。つなぎ目は 0:08 です。

uv tool install --force "flowmusic-cli[game]"     # once: adds numpy + soundfile (no ffmpeg needed)
fmusic generate "cozy pixel-art village theme, acoustic guitar, 90 bpm" --instrumental --loop
⬇ ~/Music/flowmusic-cli/2026-11-05/peaceful-village_467c790b.wav
  ⟳ loop 0:24 → 1:44 (length 80.0s, similarity 0.96 good)
⬇ ~/Music/flowmusic-cli/2026-11-05/peaceful-village_467c790b_loop.ogg
  • プロンプトには、「ループ可能:安定したグルーヴ、イントロなし、エンディングなし」という短い指示が追加されます。
  • <name>_loop.ogg は、どのエンジン(Godot、Unity、ウェブオーディオ)でもループ再生を有効にすると滑らかにつながるよう、カットしてクロスフェードされます。WAV の場合は --loop-format wav|both を使ってください。
  • フル WAV にはイントロがそのまま残り、ループポイントが smpl チャンクとして追加されます。Godot では Loop Mode: Detect From WAV を指定してインポートすると、イントロを 1 回再生した後にループします。
  • JSON には loop: {start_s, end_s, length_s, start_sample, end_sample, similarity, quality} が追加されます。quality が poor の場合、つなぎ目が聞こえることがあります。別のテイクを試してください。
  • すでにある楽曲にはクレジットがかかりません:fmusic loop <clip_id> または fmusic loop theme.wav を実行してください。

ループの検出方法については、docs/how-it-works.md をご覧ください。


インストール

方法コマンド
uv(推奨)uv tool install flowmusic-cli
pipxpipx install flowmusic-cli
ゲーム用ループ機能付き(--loop)uv tool install "flowmusic-cli[game]"
GitHub から最新版をインストールuv tool install git+https://github.com/JvanLeeuwen4/flowmusic-cli
更新uv tool upgrade flowmusic-cli

このパッケージをインストールすると、同等のコマンド fmusic と flowmusic の 2 つが利用できます。

サインイン

fmusic auth login      # opens Chrome/Edge: sign in with Google; the window closes by itself
fmusic auth status     # shows email, subscription tier, credits (exit code 0 = OK)
fmusic auth logout
  • サインインは 1 回だけで済みます。トークンは自動的に更新されるため、ログアウトするかセッションが取り消されない限り、再度サインインする必要はありません。
  • 複数のアカウントを使うには、任意のコマンドに --profile work を追加するか、FMUSIC_PROFILE=work を設定してください。
  • ブラウザーを開けない場合(サーバー上など)は、別のマシンで flowmusic.app にサインインします。ブラウザーの開発者ツールで「ネットワーク」タブを開き、任意の __api リクエストの Cookie ヘッダーをコピーします。その後、次を実行してください。
    fmusic auth import "sb-sb-auth-token.0=base64-…; sb-sb-auth-token.1=…"
    

AI エージェントから使う

fmusic はエージェントから操作できるように設計されています。方法は 3 つあります。

1. Claude Code プラグイン(スキル + MCP サーバー)
/plugin marketplace add JvanLeeuwen4/flowmusic-cli
/plugin install fmusic@flowmusic-cli

その後、ターミナルで fmusic auth login を 1 回実行してください。プラグインは uvx を通じて MCP サーバーを起動するため、ほかに何もインストールする必要はありません。

2. 任意の MCP クライアント(Claude Desktop、Cursor、VS Code、Codex、…)

クライアントの MCP 設定に次を追加してください。uv だけが必要です。

{
  "mcpServers": {
    "fmusic": { "command": "uvx", "args": ["--from", "flowmusic-cli[game]", "fmusic", "mcp", "run"] }
  }
}

fmusic がすでにインストールされている場合は、次のコマンドで設定を書き込めます。

fmusic mcp setup --target claude-code      # or: claude-desktop, print

ツールとパラメーターの一覧は docs/mcp.md をご覧ください。

3. --json を使った CLI

すべてのコマンドで --json を指定できます。

  • 結果は 1 つの JSON オブジェクトとして標準出力に出力されます:{"status":"ok","data":…} または {"status":"fail","error":{…}}。
  • 進行状況メッセージは標準エラー出力に出力されます。
  • 終了コードは安定しています。docs/troubleshooting.md をご覧ください。
fmusic --json generate "calm piano, 70 bpm" --instrumental | jq '.data.clips[].files'

このリポジトリの開発に携わるエージェントは、AGENTS.md をご覧ください。


ファイルの保存先

デフォルトでは、楽曲は ~/Music/flowmusic-cli/<date>/ に保存されます。-o DIR を使うと保存先フォルダーを指定でき、ファイルはそのフォルダーに直接保存されます。各クリップから次のファイルが生成されます。

neon-drift_3e2b2139.wav     # audio (or .m4a with --format m4a; both with --format both)
neon-drift_3e2b2139.json    # title, duration, sound prompt, lyrics, ids, URLs
neon-drift_3e2b2139.jpg     # cover art (only with --cover)

設定

すべての設定は任意の環境変数です。

変数デフォルト用途
FMUSIC_PROFILEdefault使用する保存済みアカウント
FMUSIC_OUTPUT_DIR~/Music/flowmusic-cliダウンロード先
FMUSIC_HOMEOS user-data dirセッションの保存先
FMUSIC_TIMEOUT60HTTP タイムアウト(秒)

トラブルシューティング

よくある問題は次のとおりです。

  • ボーカル入りのトラックをアップロードすると、「not available in your region」と表示されて失敗します。 EU を含む一部の地域では、Flow Music でボーカル入りのトラックをアップロードしたり、トラックからボーカルを削除したりできません。代わりにインストゥルメンタルをアップロードしてください。
  • Session expired(終了コード 3)。 fmusic auth login をもう一度実行してください。
  • Google にサインインできません。 Chrome または Edge がインストールされていることを確認してください。代わりに fmusic auth import を使用することもできます。

その他の情報はすべて docs/troubleshooting.md にあります。


ドキュメント

ドキュメント対象
docs/commands.mdすべてのコマンド、フラグ、JSON 形式
docs/mcp.mdMCP ツールとクライアントのセットアップ
docs/troubleshooting.mdエラー、終了コード、解決方法
docs/how-it-works.mdアーキテクチャと flowmusic.app API
AGENTS.mdコントリビューターとコーディングエージェント
llms.txtLLM 向けの簡潔な概要

コントリビューション

Issue やプルリクエストを歓迎します。ディレクトリ構成とテストコマンドについては、AGENTS.md をご覧ください。

uv run --extra dev pytest

サインイン方式は gflow-cli を参考にしています。MIT ライセンスです。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。