servers / mcp-magichour-ai

MagicHour MCP server

officialstreamable_httpunknownhealthy

AI video, image, and audio — hosted remote MCP

Remote MCP for AI video, image, and audio: text-to-video, image-to-video, face swap, lip sync, talking photo, TTS/voice clone, upscale, background removal, and more — via streamable HTTP at mcp.magichour.ai.


00About

MagicHour exposes a hosted streamable-HTTP MCP at mcp.magichour.ai for creating and editing images, video, and audio. Creation tools are asynchronous: start a project, then use the matching wait_for_*_project tool for downloads. Auth is required (Bearer API key or OAuth). The catalog covers text-to-video, image-to-video, face swap, lip sync, talking photo, character replace, auto subtitles, image generation/editing, clothes changer, headshot/GIF/meme tools, upscale, background removal, photo colorizer, TTS, and voice clone — with models such as Sora 2, Veo 3.1, Kling, Seedance, LTX, Flux, and more depending on plan.

Full creative toolkit

40+ tools spanning video, image, and audio — not just a single generator endpoint.

Hosted remote MCP

Connect at https://mcp.magichour.ai/ over streamable HTTP; no local stdio install required for the primary path.

Async jobs with wait helpers

Start a project, then wait_for_video_project / wait_for_image_project / wait_for_audio_project for signed downloads.

Credits + free developer tier

API key from magichour.ai/developer; free tier includes starter credits (see current pricing).

Who it’s for. Creators, marketers, and agent builders who need production AI media tools inside the MCP loop — especially video and face/voice workflows.

Example prompts

Image then video
Use ai_image_editor_create_image to make a consistent product hero, wait for it, then image_to_video_create_video with ltx defaults and wait_for_video_project.
Talking photo
Create a talking photo from this headshot and a short script, then return the download URL when wait_for_video_project completes.
Account credits
Call account_retrieve and summarize my remaining credits and subscription tier.

auth: Bearer MAGIC_HOUR_API_KEY or OAuth (magic-hour-mcp) · pricing: Credit-based; free developer key at magichour.ai/developer — see magichour.ai/pricing · reviewed by MCPExplorer


01Tools · 45

How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.

ToolRiskSide effectsApproval
account_retrieve
Get the current credit balance and subscription details of the account that owns the API key.
readfalseunknown
ai_clothes_changer_create_image
Change outfits in photos in seconds with just a photo reference. Each photo costs 25 credits. MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and r
writetrueunknown
ai_face_editor_edit_image
Edit facial features of an image using AI. Each edit costs 1 frame. The height/width of the output image depends on your subscription. Please refer to our [pricing](https://magichour.ai/pricing) page for more details MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the uplo
writetrueunknown
ai_gif_generator_create_image
Create an AI GIF. Each GIF costs 50 credits. MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata.
writetrueunknown
ai_headshot_generator_create_image
Create an AI headshot. Each headshot costs 50 credits. MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URL
writetrueunknown
ai_image_editor_create_image
Edit images with AI. MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the
writetrueunknown
ai_image_generator_create_image
Create an AI image with advanced model selection and quality controls. MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata.
writetrueunknown
ai_image_upscaler_create_image
Upscale your image using AI. Each 2x upscale costs 50 credits for balanced/creative modes, and 25 credits for preserve. 4x upscale costs 200 and 100 credits respectively. MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoint after the file bytes are uploa
writetrueunknown
ai_meme_generator_create_image
Create an AI generated meme. Each meme costs 10 credits. MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata.
writetrueunknown
ai_qr_code_generator_create_image
Create an AI QR code. Each QR code costs 0 credits. MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata.
writetrueunknown
ai_talking_photo_create_talking_photo
Create a talking photo from an image and audio or text input. MCP guidance: - This starts an async video generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_video_project` helper with the returned id, or poll the matching `GET /v1/video-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlin
writetrueunknown
ai_video_editor_create_video
**What this API does** Create the same Video Editor you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow. **Good for** - Automation and batch processing - Adding video editor into apps, pipelines, or tools **How it works (3 steps)** 1) Upload your inputs (video, image, or audio) with [Generate Upload URLs](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls) and copy the `file_path`. 2) Send a request to create a video editor job with the basic fields. 3) Check the job status until it's `complete`, then download the result from `downloads`. **Key options** - Inputs: usually a file, sometimes a YouTube link, depending on project type - Resolution: free users are limited to
writetrueunknown
ai_voice_cloner_create_audio
Clone a voice from an audio sample and generate speech. * Each character costs 0.1 credits. * The cost is rounded up to the nearest whole number MCP guidance: - This starts an async audio generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_audio_project` helper with the returned id, or poll the matching `GET /v1/audio-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media
writetrueunknown
ai_voice_generator_create_audio
Generate speech from text. Each character costs 0.1 credits. The cost is rounded up to the nearest whole number. MCP guidance: - This starts an async audio generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_audio_project` helper with the returned id, or poll the matching `GET /v1/audio-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata.
writetrueunknown
animation_create_video
Create a Animation video. The estimated frame cost is calculated based on the `fps` and `end_seconds` input. MCP guidance: - This starts an async video generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_video_project` helper with the returned id, or poll the matching `GET /v1/video-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, f
writetrueunknown
audio_projects_delete
Permanently delete the rendered audio file(s). This action is not reversible, please be sure before deleting.
destructivetruetrue
audio_projects_retrieve_details
Check the progress of a audio project. The `downloads` field is populated after a successful render. **Statuses** - `queued` — waiting to start - `rendering` — in progress - `complete` — ready; see `downloads` - `error` — a failure occurred (see `error`) - `canceled` — user canceled - `draft` — not used MCP guidance: - Use this after a create tool to poll job status. When status is `complete`, surface the `downloads` URLs to the user; if status is `error`, surface the error message. - Each `downloads[n].url` is already the full signed download URL. Use it exactly as returned. Do not shorten it, strip query parameters, or append `expires_at` onto the URL string.
readfalseunknown
audio_to_video_create_video
**What this API does** Create the same Audio To Video you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow. **Good for** - Automation and batch processing - Adding audio to video into apps, pipelines, or tools **How it works (3 steps)** 1) Upload your inputs (video, image, or audio) with [Generate Upload URLs](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls) and copy the `file_path`. 2) Send a request to create a audio to video job with the basic fields. 3) Check the job status until it's `complete`, then download the result from `downloads`. **Key options** - Inputs: usually a file, sometimes a YouTube link, depending on project type - Resolution: free users are limi
writetrueunknown
auto_subtitle_generator_create_video
Automatically generate subtitles for your video in multiple languages. MCP guidance: - This starts an async video generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_video_project` helper with the returned id, or poll the matching `GET /v1/video-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, b
writetrueunknown
body_swap_create_image
Swap a person into a scene image using Nano Banana 2 Lite (640px/1k) or Nano Banana 2 (2k/4k). Credits depend on `resolution` (from 50 credits at 640px upward). MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoint after the file bytes are uploaded. Direc
writetrueunknown
character_replace_create_video
**What this API does** Create the same Character Replace you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow. **Good for** - Automation and batch processing - Adding character replace into apps, pipelines, or tools **How it works (3 steps)** 1) Upload your inputs (video, image, or audio) with [Generate Upload URLs](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls) and copy the `file_path`. 2) Send a request to create a character replace job with the basic fields. 3) Check the job status until it's `complete`, then download the result from `downloads`. **Key options** - Inputs: usually a file, sometimes a YouTube link, depending on project type - Resolution: free users
writetrueunknown
face_detection_detect_faces
Detect faces in an image or video. Use this API to get the list of faces detected in the image or video to use in the [face swap photo](https://docs.magichour.ai/api-reference/image-projects/face-swap-photo) or [face swap video](https://docs.magichour.ai/api-reference/video-projects/face-swap-video) API calls for multi-face swaps. Note: Face detection is free to use for the near future. Pricing may change in the future. MCP guidance: - This starts an async face-detection task and returns an `id`. Use the face-detection details endpoint with that id to retrieve detected faces before doing individual face swaps. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoint after the file bytes are uploaded. Direct public me
writetrueunknown
face_detection_retrieve_details
Get the details of a face detection task. Use this API to get the list of faces detected in the image or video to use in the [face swap photo](https://docs.magichour.ai/api-reference/image-projects/face-swap-photo) or [face swap video](https://docs.magichour.ai/api-reference/video-projects/face-swap-video) API calls for multi-face swaps.
readfalseunknown
face_swap_create_video
**What this API does** Create the same Face Swap you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow. **Good for** - Automation and batch processing - Adding face swap into apps, pipelines, or tools **How it works (3 steps)** 1) Upload your inputs (video, image, or audio) with [Generate Upload URLs](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls) and copy the `file_path`. 2) Send a request to create a face swap job with the basic fields. 3) Check the job status until it's `complete`, then download the result from `downloads`. **Key options** - Inputs: usually a file, sometimes a YouTube link, depending on project type - Resolution: free users are limited to 576px; h
writetrueunknown
face_swap_photo_create_image
Create a face swap photo. Each photo costs 10 credits. The height/width of the output image depends on your subscription. Please refer to our [pricing](https://magichour.ai/pricing) page for more details MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoi
writetrueunknown
fetch_audio_download
Fetch a audio `downloads[n].url` from a completed audio project and return it as inline MCP audio content for compatible clients. Pass the exact full signed URL from `downloads[n].url` without trimming query parameters; `expires_at` is separate metadata, not part of the URL.
readfalseunknown
fetch_image_download
Fetch a image `downloads[n].url` from a completed image project and return it as inline MCP image content for compatible clients. Pass the exact full signed URL from `downloads[n].url` without trimming query parameters; `expires_at` is separate metadata, not part of the URL.
readfalseunknown
fetch_video_download
Fetch a video `downloads[n].url` from a completed video project and return it as an embedded MCP binary resource for compatible clients. Pass the exact full signed URL from `downloads[n].url` without trimming query parameters; `expires_at` is separate metadata, not part of the URL.
readfalseunknown
head_swap_create_image
Swap a head onto a body image. Each image costs 10 credits. Output resolution depends on your subscription; you may set `max_resolution` lower than your plan maximum if desired. MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoint after the file bytes ar
writetrueunknown
image_background_remover_create_image
Remove background from image. Each image costs 5 credits. MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked
writetrueunknown
image_projects_delete
Permanently delete the rendered image(s). This action is not reversible, please be sure before deleting.
destructivetruetrue
image_projects_retrieve_details
Check the progress of a image project. The `downloads` field is populated after a successful render. **Statuses** - `queued` — waiting to start - `rendering` — in progress - `complete` — ready; see `downloads` - `error` — a failure occurred (see `error`) - `canceled` — user canceled - `draft` — not used MCP guidance: - Use this after a create tool to poll job status. When status is `complete`, surface the `downloads` URLs to the user; if status is `error`, surface the error message. - Each `downloads[n].url` is already the full signed download URL. Use it exactly as returned. Do not shorten it, strip query parameters, or append `expires_at` onto the URL string.
readfalseunknown
image_to_video_create_video
**What this API does** Create the same Image To Video you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow. **Good for** - Automation and batch processing - Adding image to video into apps, pipelines, or tools **How it works (3 steps)** 1) Upload your inputs (video, image, or audio) with [Generate Upload URLs](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls) and copy the `file_path`. 2) Send a request to create a image to video job with the basic fields. 3) Check the job status until it's `complete`, then download the result from `downloads`. **Key options** - Inputs: usually a file, sometimes a YouTube link, depending on project type - Resolution: free users are limi
writetrueunknown
lip_sync_create_video
**What this API does** Create the same Lip Sync you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow. **Good for** - Automation and batch processing - Adding lip sync into apps, pipelines, or tools **How it works (3 steps)** 1) Upload your inputs (video, image, or audio) with [Generate Upload URLs](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls) and copy the `file_path`. 2) Send a request to create a lip sync job with the basic fields. 3) Check the job status until it's `complete`, then download the result from `downloads`. **Key options** - Inputs: usually a file, sometimes a YouTube link, depending on project type - Resolution: free users are limited to 576px; high
writetrueunknown
photo_colorizer_create_image
Colorize image. Each image costs 10 credits. MCP guidance: - This starts an async image generation job and returns `id` plus `credits_charged` immediately. If the user wants the finished result, call the `wait_for_image_project` helper with the returned id, or poll the matching `GET /v1/image-projects/{id}` endpoint until status is `complete`, `error`, or `canceled`. Completed projects include `downloads` with direct URLs. The custom wait helper also returns `exact_download_urls` separately from expiration metadata. - For `*_file_path` values, prefer an existing Magic Hour file path or a `file_path` returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail
writetrueunknown
ping
Check that the Magic Hour MCP server is reachable.
readfalseunknown
saved_items_list
Returns active saved items owned by the authenticated account, newest first. Each item includes every saved asset with a durable file_path for reuse in compatible generation APIs and a temporary signed URL for previewing or downloading. Filter by type to find characters, references, voices, moodboards, or brand kits. To fetch the next page, pass the response's next_cursor as cursor.
readfalseunknown
text_to_video_create_video
**What this API does** Create the same Text To Video you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow. **Good for** - Automation and batch processing - Adding text to video into apps, pipelines, or tools **How it works (3 steps)** 1) Upload your inputs (video, image, or audio) with [Generate Upload URLs](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls) and copy the `file_path`. 2) Send a request to create a text to video job with the basic fields. 3) Check the job status until it's `complete`, then download the result from `downloads`. **Key options** - Inputs: usually a file, sometimes a YouTube link, depending on project type - Resolution: free users are limited
writetrueunknown
video_assets_generate_presigned_url
Generates a list of pre-signed upload URLs for the assets required. This API is only necessary if you want to upload to Magic Hour's storage. Refer to the [Input Files Guide](https://docs.magichour.ai/integration/inputs-and-outputs) for more details. The response array will match the order of items in the request body. **Valid file extensions per asset type**: - video: mp4, m4v, mov, webm - audio: mp3, wav, aac, flac, webm, weba, m4a, opus, ogg, oga, aiff, amr - image: png, jpg, jpeg, jfif, heic, heif, webp, avif, jp2, tiff, tif, bmp - gif: gif, webp, webm > Note: `gif` is only supported for face swap API `video_file_path` field. Once you receive an upload URL, send a `PUT` request to upload the file directly. Example: ``` curl -X PUT --data '@/path/to/file/video.mp4' \ https://vid
writetrueunknown
video_projects_delete
Permanently delete the rendered video. This action is not reversible, please be sure before deleting.
destructivetruetrue
video_projects_retrieve_details
Check the progress of a video project. The `downloads` field is populated after a successful render. **Statuses** - `queued` — waiting to start - `rendering` — in progress - `complete` — ready; see `downloads` - `error` — a failure occurred (see `error`) - `canceled` — user canceled - `draft` — not used MCP guidance: - Use this after a create tool to poll job status. When status is `complete`, surface the `downloads` URLs to the user; if status is `error`, surface the error message. - Each `downloads[n].url` is already the full signed download URL. Use it exactly as returned. Do not shorten it, strip query parameters, or append `expires_at` onto the URL string.
readfalseunknown
video_to_video_create_video
**What this API does** Create the same Video To Video you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow. **Good for** - Automation and batch processing - Adding video to video into apps, pipelines, or tools **How it works (3 steps)** 1) Upload your inputs (video, image, or audio) with [Generate Upload URLs](https://docs.magichour.ai/api-reference/files/generate-asset-upload-urls) and copy the `file_path`. 2) Send a request to create a video to video job with the basic fields. 3) Check the job status until it's `complete`, then download the result from `downloads`. **Key options** - Inputs: usually a file, sometimes a YouTube link, depending on project type - Resolution: free users are limi
writetrueunknown
wait_for_audio_project
Poll an audio project until it completes, errors, is canceled, or times out. Returns the final project JSON and, when complete, attempts to inline audio downloads for Inspector or compatible clients. Returns sanitized download fields. Use `exact_download_urls[n]` or `downloads[n].url` exactly as returned; do not shorten it, remove query parameters, or append expiration metadata.
readfalseunknown
wait_for_image_project
Poll an image project until it completes, errors, is canceled, or times out. Returns the final project JSON and, when complete, attempts to inline image downloads for Inspector or compatible clients. Returns sanitized download fields. Use `exact_download_urls[n]` or `downloads[n].url` exactly as returned; do not shorten it, remove query parameters, or append expiration metadata.
readfalseunknown
wait_for_video_project
Poll a video project until it completes, errors, is canceled, or times out. Returns sanitized download fields. Use `exact_download_urls[n]` or `downloads[n].url` exactly as returned; do not shorten it, remove query parameters, or append expiration metadata.
readfalseunknown

02Install & source
https://mcp.magichour.ai/
remote_url

03Access granted
api_keyoauth

The access this server can exercise, inferred from its verified tools — not a declared OAuth scope.


05Provenance & freshness
sourcesUser submissions [p7]
last_checked2026-09-22 18:26Z
next_check2026-09-24 17:41Z
cadenceevery 48h
verifiedmetadata:passed handshake:passed tools_list:passed
index_statusindex5 unique facts >= 5

06Badge

Add the “as seen on MCPExplorer” badge to your README. MagicHour MCP — as seen on mcpexplorer.com

[![MagicHour MCP — as seen on mcpexplorer.com](https://mcpexplorer.com/badge/mcp-magichour-ai.svg)](https://mcpexplorer.com/servers/mcp-magichour-ai)

Next step

This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.

Explore loadouts →