
Freebeat AI
from imaginepeakstudios
Allows users to generate music videos using Freebeat through MCP
MCP Documentation
Copy page
freebeat-mcp
MCP server for Freebeat creative workflows.
Use it from MCP clients such as Claude Desktop and Cursor through npx freebeat-mcp.
It currently supports audio and image upload, effect template discovery, AI effect generation, AI music video generation, Open RPC image/video generation, model discovery, and async task polling.
Features
-
Local audio upload or source URL import
-
Image upload for workflows that accept reference images
-
Supported effect template listing
-
AI effect generation
-
AI music video generation
-
Supported image and video model discovery
-
AI image generation and single-image editing
-
AI text-to-video generation
-
Generic task polling and result retrieval
Environment Variables
Variable Required Description FREEBEAT_API_KEY Yes API authentication key
This package depends on Freebeat online services. Available source platforms, effect templates, and generation capabilities may change with backend updates.
Tools
upload_audio
Upload a local audio file or import from a music platform URL.
Currently supported platforms:
-
SoundCloud
-
YouTube
-
Suno
-
Udio
-
TikTok
-
Stable Audio
-
Riffusion
Provide exactly one of file_path or url.
Returns a music_id that can be used by either generate_music_video or generate_effect.
upload_image
Upload one or two images and receive image_urls.
For MV generation, pass the returned image_urls into generate_music_video.reference_image_urls.
For effect generation, the default recommendation is still list_effects.image_url, but you can also upload one image and pass image_urls[0] into generate_effect.reference_image_urls.
list_effects
List supported effects with:
-
effect_id -
display_name -
image_url -
preview_video_url -
default_music_id -
default_music_name -
aspect_ratio
For effect generation, pass:
-
effect_idintogenerate_effect.effect_id -
default_music_idintogenerate_effect.music_id -
image_urlas the default single entry ingenerate_effect.reference_image_urls
You can use the built-in effect image directly, or replace it with a single uploaded image URL from upload_image.
generate_effect
Start an async effect generation task.
Recommended flow:
-
list_effects -
optional
upload_audioif you want to replace the effectโs default music -
optional
upload_imageif you want to replace the effectโs default image -
generate_effect -
get_task_status -
get_task_resultonly after status iscompleted
Parameters:
-
effect_idrequired -
music_idrequired, usuallydefault_music_idfromlist_effects, or amusic_idfromupload_audioif you want to replace it -
promptrequired, trimmed length must be1to2000 -
watermarkoptional, defaultfalse -
reference_image_urlsrequired and must contain exactly one image URL; recommended default islist_effects.image_url, but you can also useupload_image.image_urls[0]
Returns a task envelope with:
-
task_id -
task_typecurrentlyeffect_generation -
status
generate_music_video
Start an async MV generation task from a music_id returned by upload_audio.
-
upload_audio -
optional
upload_image -
generate_music_video -
get_task_status -
get_task_resultonly after status iscompleted
Parameters:
music_id required, from upload_audio
prompt required, trimmed length must be 1 to 2000
mv_type optional, default abstract
style optional
aspect_ratio optional, default 16:9
resolution optional, default 720
watermark optional, default false
start_ms optional
end_ms optional
reference_image_urls optional
task_id
task_type currently music_video_generation
status
list_models
List supported Open RPC models for either image or video.
-
list_modelswithtype: "image"beforegenerate_imageoredit_image -
list_modelswithtype: "video"beforegenerate_video -
optional
get_model_helpfor model-specific examples and constraints
Each model entry includes:
-
model_id -
model, the API model key when one is available -
display_name -
commands -
constraints
get_model_help
Show detailed usage guidance for one Open RPC model.
Parameters:
modelrequired, using either a numericmodel_idor API model key fromlist_models
Use this before video generation to confirm required duration, resolution, supported aspect_ratio, and whether generate_audio is supported.
generate_image
Create an async Open RPC image generation batch.
-
list_modelswithtype: "image" -
optional
get_model_help -
generate_image -
get_task_statuswith the returnedbatch_id
Parameters:
-
modelrequired, fromlist_models -
promptrequired, trimmed length must be1to2000 -
sizeoptional -
resolutionoptional -
qualityoptional -
countoptional, default1
For GPT-Image 2 (model_id 108), the MCP server sends quality: "medium" and resolution: "1024x1024" by default when omitted. If resolution is omitted but size is provided, that size is also sent as resolution for compatibility.
edit_image
Create an async Open RPC single-image edit batch.
-
upload_imageor provide an existing image URL -
list_modelswithtype: "image" -
optional
get_model_help -
edit_image -
get_task_statuswith the returnedbatch_id
Parameters:
-
modelrequired, fromlist_models -
imagerequired, a single image URL -
promptrequired, trimmed length must be1to2000 -
resolutionoptional -
qualityoptional -
countoptional, default1
generate_video
Create an async Open RPC text-to-video batch.
-
list_modelswithtype: "video" -
get_model_help -
generate_video -
get_task_statuswith the returnedbatch_id
Parameters:
-
modelrequired, fromlist_models -
promptrequired, trimmed length must be1to2000 -
durationrequired when the selected model declares supported durations -
resolutionrequired when the selected model declares supported resolutions -
aspect_ratiooptional, validated when the selected model declares supported ratios -
generate_audiooptional, only accepted for models that support generated audio
Video model constraints are validated locally before a request is sent.
get_task_status
Poll a Freebeat async task or Open RPC batch until it reaches a terminal status. Current MCP endpoints return lowercase status values such as pending, completed, and failed; older backends may still return uppercase variants.
For legacy MV/effect tasks, continue polling while the status is still in progress. Only call get_task_result after the status is completed.
For Open RPC image/video batches, pass the returned batch_id as task_id. You can also pass serial_no to query a single batch item. Completed batch items include result URLs directly in get_task_status, so get_task_result is not used for Open RPC batches.
Returns a stable task envelope including:
-
task_id -
task_type -
status -
error_messageoptional, present when backend reports a failed task -
error_codeoptional, present when backend reports a failed task -
messageoptional, present when status iscompletedorfailed -
itemsoptional, present for Open RPC batches and containingimage_url,video_url, oredit_imageswhen available
get_task_result
Retrieve the output for a completed task. Only call this after get_task_status returns completed. The response uses a stable envelope with task_id, task_type, status, and result.
If the task is not completed yet, this tool returns error code TASK_NOT_COMPLETED.
If the task has failed, this tool surfaces the backend failure as an error.
For current supported completed MV tasks, result is an object containing:
-
video_url -
cover_url
Completed effect generation results use the same result object fields:
Last updated on July 2, 2026
Installation
Run the server through npm without a separate install step:
npx -y freebeat-mcp
Prerequisites
-
Get your API key from freebeat.ai .
-
Use an MCP client such as Claude Desktop or Cursor.
Configuration
Claude Desktop
{ "mcpServers": { "freebeat": { "command": "npx", "args": ["-y", "freebeat-mcp"], "env": { "FREEBEAT_API_KEY": "your-api-key-here" } } } }
Cursor
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
Licensed under Apache-2.0โ you can use, modify, and redistribute it under that license's terms.
View the full license file on GitHub โ