mcpbeat Sign in

Magic Hour MCP Server

by magichourhq Your server? Claim it
not responding

Magic Hour is listed as active in the registry but did not answer our last check. It exposes 48 tools. Last commit 9 Nov 2026.

Create and edit images and video, generate music, and retrieve existing audio projects.

Uptime history 72 days of history · worst day 0%
72 days agonow
0.0%
Uptime 24h
0 of 91 checks
48
Tools
read from the server
125 ms
Response time
average over 24h
9
Stars
last commit 9 Nov 2026

What changed 210

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 2 September 2026. No other catalogue keeps this.

25 Oct 11 tool descriptions were rewritten ai_image_editor_create_image, ai_talking_photo_create_talking_photo, ai_video_editor_create_video and 8 more
25 Oct 6 tools changed the parameters they ask for ai_image_editor_create_image, ai_image_generator_create_image, ai_talking_photo_create_talking_photo and 3 more
25 Oct 2 tools appeared ai_music_generator_create_audio, ai_video_upscaler_create_video
18 Oct 37 tool descriptions were rewritten ai_clothes_changer_create_image, ai_face_editor_edit_image, ai_gif_generator_create_image and 34 more
18 Oct 23 tools changed the parameters they ask for ai_headshot_generator_create_image, ai_image_editor_create_image, ai_image_generator_create_image and 20 more
18 Oct 2 tools appeared ai_ugc_ad_create_video, workflow_guide_retrieve
8 Oct 11 tools changed the parameters they ask for ai_image_editor_create_image, ai_image_generator_create_image, ai_meme_generator_create_image and 8 more
8 Oct 8 tool descriptions were rewritten ai_clothes_changer_create_image, ai_talking_photo_create_talking_photo, body_swap_create_image and 5 more
8 Oct 2 tools disappeared ai_voice_cloner_create_audio, ai_voice_generator_create_audio
8 Oct a tool appeared ai_video_translator_create_video
and 107 more, back to 2 September 2026

Magic Hour does not always answer

Over the last week it answered 0.0% of our checks. We check every 15 minutes, so you hear about the next outage within the hour — not from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 4 min ago.

run in your terminal
claude mcp add magic-hour --transport http https://mcp.magichour.ai/
Settings → Connectors → Add custom connector, then paste this address
https://mcp.magichour.ai/
~/.codex/config.toml
[mcp_servers.magic-hour]
url = "https://mcp.magichour.ai/"
.cursor/mcp.json
{
  "mcpServers": {
    "magic-hour": {
      "url": "https://mcp.magichour.ai/"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "magic-hour": {
      "type": "http",
      "url": "https://mcp.magichour.ai/"
    }
  }
}

Available tools 48

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

image
ai_image_editor_create_image
MCP guidance: - Requires one or more source images in `assets.image_file_paths`. For prompt-only creation, use `ai_image_generator_create_image` instead. - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Edit supplied images using `assets.image_file_paths` and `style.prompt`. For prompt-only creation use `ai_image_generator_create_image`. Editing is not a required preparation step before image-to-video when the approved source already meets the brief. Check model eligibility: the omitted/default model is not universally available on Free.
ai_image_generator_create_image
MCP guidance: - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. Create an AI image with advanced model selection and quality controls.
ai_image_upscaler_create_image
MCP guidance: - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. 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.
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. Inline media is capped at 8 MiB; use the signed URL directly for larger downloads.
image_background_remover_create_image
MCP guidance: - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Remove background from image. Each image costs 5 credits.
image_projects_delete
Permanently delete the rendered image(s). This action is not reversible, please be sure before deleting.
image_projects_retrieve_details
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. 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
image_to_video_create_video
MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Animate a supplied product photo, portrait or scene. Requires `assets.image_file_path` and `end_seconds`. Use the approved image directly; edit only for a requested visual change or a source problem that prevents the shot. Prompt for motion while preserving the supplied appearance. Model, duration, resolution and audio support vary. Generation consumes credits; the queued video charge is an estimate, with the final charge available on the completed project.
video
ai_video_editor_create_video
MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. **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: output size and plan requirements vary by workflow and model. Some workflows derive output size from the input video. - Extra fields: e.g. `face_swap_mode`, `start_seconds`/`end_seconds`, or a text prompt **Cost** Credits are charged when the job is queued (`credits_charged` in the response). Tools billed per frame charge an estimate and settle to the frames that actually render once the job finishes; tools billed per second charge the final amount upfront. Failed jobs are refunded. For detailed examples, see the [product page](https://magichour.ai/products/ai-video-editor).
ai_video_translator_create_video
MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. **What this API does** Create the same Video Translator 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 translator 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 translator 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: output size and plan requirements vary by workflow and model. Some workflows derive output size from the input video. - Extra fields: e.g. `face_swap_mode`, `start_seconds`/`end_seconds`, or a text prompt **Cost** Credits are charged when the job is queued (`credits_charged` in the response). Tools billed per frame charge an estimate and settle to the frames that actually render once the job finishes; tools billed per second charge the final amount upfront. Failed jobs are refunded. For detailed examples, see the [product page](https://magichour.ai/products/ai-video-translator).
ai_video_upscaler_create_video
MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. **What this API does** Create the same Video Upscaler 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 upscaler 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 upscaler 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: output size and plan requirements vary by workflow and model. Some workflows derive output size from the input video. - Extra fields: e.g. `face_swap_mode`, `start_seconds`/`end_seconds`, or a text prompt **Cost** Credits are charged when the job is queued (`credits_charged` in the response). Tools billed per frame charge an estimate and settle to the frames that actually render once the job finishes; tools billed per second charge the final amount upfront. Failed jobs are refunded. For detailed examples, see the [product page](https://magichour.ai/products/video-upscaler).
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. Inline media is capped at 8 MiB; use the signed URL directly for larger downloads.
video_assets_generate_presigned_url
MCP guidance: - This only creates presigned upload URLs. For local files, upload the raw bytes to each returned `upload_url` outside the generation call, then pass the matching `file_path` into the create tool. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. 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://videos.magichour.ai/api-assets/id/video.mp4?<auth params from the API response> ```
video_projects_delete
Permanently delete the rendered video. This action is not reversible, please be sure before deleting.
video_projects_retrieve_details
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. 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
video_to_video_create_video
MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Restyle an existing video segment with an art-style preset or a custom prompt. Requires `assets.video_source` with its matching `assets.video_file_path` or `assets.youtube_url`, `start_seconds`, `end_seconds` and `style.art_style`. For a custom prompt, set `style.prompt_type` to `custom` or `append_default` and provide `style.prompt`; with `default`, the supplied prompt is ignored. This API supports v1/v2 presets, not v3. Generation consumes credits; the queued video charge is an estimate, with the final charge available on the completed project.
face
ai_face_editor_edit_image
MCP guidance: - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. 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
face_detection_detect_faces
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`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. 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.
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.
face_swap_create_video
Use only with the user's own likeness or content they are authorized to use. Do not use for impersonation, deception, sexual content, or content involving minors. MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Requires `start_seconds`, `end_seconds` and `assets.video_source` with its matching `assets.video_file_path` or `assets.youtube_url`. Use `assets.image_file_path` for all-faces mode, or `assets.face_mappings` for individual-faces mode after face detection. Generation consumes credits; the queued video charge is an estimate, with the final charge available on the completed project.
face_swap_photo_create_image
Use only with the user's own likeness or content they are authorized to use. Do not use for impersonation, deception, sexual content, or content involving minors. MCP guidance: - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. 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
audio
audio_projects_delete
Permanently delete the rendered audio file(s). This action is not reversible, please be sure before deleting.
audio_projects_retrieve_details
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. 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
audio_to_video_create_video
MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. **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: output size and plan requirements vary by workflow and model. Some workflows derive output size from the input video. - Extra fields: e.g. `face_swap_mode`, `start_seconds`/`end_seconds`, or a text prompt **Cost** Credits are charged when the job is queued (`credits_charged` in the response). Tools billed per frame charge an estimate and settle to the frames that actually render once the job finishes; tools billed per second charge the final amount upfront. Failed jobs are refunded. For detailed examples, see the [product page](https://magichour.ai/products/audio-to-video).
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. Inline media is capped at 8 MiB; use the signed URL directly for larger downloads.
wait
wait_for_audio_project
Poll an audio project until it completes, errors, is canceled, or times out. After a timeout, resume with the same id; do not create another generation. 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. Inline previews share an 8 MiB limit; all download URLs remain available.
wait_for_image_project
Poll an image project until it completes, errors, is canceled, or times out. After a timeout, resume with the same id; do not create another generation. 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. Inline previews share an 8 MiB limit; all download URLs remain available.
wait_for_video_project
Poll a video project until it completes, errors, is canceled, or times out. After a timeout, resume with the same id; do not create another generation. 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. Inline previews share an 8 MiB limit; all download URLs remain available.
account
account_retrieve
Get the current credit balance and subscription details of the account that owns the API key.
animation
animation_create_video
MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Create a Animation video. The estimated frame cost is calculated based on the `fps` and `end_seconds` input.
auto
auto_subtitle_generator_create_video
MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Automatically generate subtitles for your video in multiple languages.
body
body_swap_create_image
Use only with the user's own likeness or content they are authorized to use. Do not use for impersonation, deception, sexual content, or content involving minors. MCP guidance: - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. 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).
character
character_replace_create_video
Use only with the user's own likeness or content they are authorized to use. Do not use for impersonation, deception, sexual content, or content involving minors. MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Replace a video subject or transfer video motion onto a reference character image. Requires `assets.video_file_path`, `assets.image_file_path` and `end_seconds`. Model support controls duration, resolution and subject selection; see parameter schemas. Generation consumes credits; the queued video charge is an estimate, with the final charge available on the completed project.
clothes
ai_clothes_changer_create_image
Use only with the user's own likeness or content they are authorized to use. Do not use for impersonation, deception, sexual content, or content involving minors. MCP guidance: - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Change outfits in photos in seconds with just a photo reference. Each photo costs 25 credits.
code
ai_qr_code_generator_create_image
MCP guidance: - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. Create an AI QR code. Each QR code costs 0 credits.
gif
ai_gif_generator_create_image
MCP guidance: - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. Create an AI GIF. Each GIF costs 50 credits.
head
head_swap_create_image
Use only with the user's own likeness or content they are authorized to use. Do not use for impersonation, deception, sexual content, or content involving minors. MCP guidance: - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. 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.
headshot
ai_headshot_generator_create_image
MCP guidance: - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Create an AI headshot. Each headshot costs 50 credits.
lip
lip_sync_create_video
Use only with the user's own likeness or content they are authorized to use. Do not use for impersonation, deception, sexual content, or content involving minors. MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Match existing video to replacement audio. Requires `assets.audio_file_path`, `assets.video_source` and its matching `assets.video_file_path` or `assets.youtube_url`, plus `start_seconds` and `end_seconds`. For a still portrait plus audio, use `ai_talking_photo_create_talking_photo`. Text alone is not an audio input. Generation consumes credits; the queued video charge is an estimate, with the final charge available on the completed project.
meme
ai_meme_generator_create_image
MCP guidance: - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. Create an AI generated meme. Each meme costs 10 credits.
music
ai_music_generator_create_audio
MCP guidance: - Starts an async audio job; returns `id` and `credits_charged`. For finished results, call `wait_for_audio_project` with that id or poll `GET /v1/audio-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. Generate music from a description, with optional custom lyrics or instrumental-only output. Costs 1 credits per requested second. Returns a project ID; poll GET /v1/audio-projects/{id} for status and downloads.
photo
photo_colorizer_create_image
MCP guidance: - Starts an async image job; returns `id` and `credits_charged`. For finished results, call `wait_for_image_project` with that id or poll `GET /v1/image-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Colorize image. Each image costs 10 credits.
ping
ping
Check that the Magic Hour MCP server is reachable.
saved
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.
talking
ai_talking_photo_create_talking_photo
Use only with the user's own likeness or content they are authorized to use. Do not use for impersonation, deception, sexual content, or content involving minors. MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Requires a still portrait in `assets.image_file_path` and an existing recording in `assets.audio_file_path`, plus `start_seconds` and `end_seconds`. Text alone is not accepted; this tool does not synthesize speech. For existing video plus replacement audio, use `lip_sync_create_video` instead.
text
text_to_video_create_video
MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. Generate a new scene from `style.prompt` and `end_seconds` when no supplied starting image is required. To animate an approved product photo or portrait, use `image_to_video_create_video` instead.
ugc
ai_ugc_ad_create_video
MCP guidance: - Starts an async video job; returns `id` and `credits_charged`. For finished results, call `wait_for_video_project` with that id or poll `GET /v1/video-projects/{id}` until `complete`, `error`, or `canceled`. Results include `downloads`; wait helpers add `exact_download_urls`. Preserve signed URLs and query parameters; never append expiration metadata. - For `*_file_path`, use an existing Magic Hour path or the upload-URL endpoint's `file_path` after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure. Create a spoken UGC video from a prepared image and script. Returns a project ID; poll GET /v1/video-projects/{id} for status and downloads. To compose an image, generate the image separately with the Image Editor API and supply its download URL.
workflow
workflow_guide_retrieve
Read Magic Hour workflow guidance for face swap, image editing, image-to-video, video generation, lip sync, UGC ads, talking photos or API integration. Returns product and documentation URLs, exact tool names, ordered steps, example requests, follow-up edits and review criteria; does not generate media, spend credits or check account access.

Tools removed

Tools this server used to expose. Anything built against them stopped working on the day they went.

upload_file_to_presigned_url
removed 4 Sep 2026
ai_voice_cloner_create_audio
removed 8 Oct 2026
ai_voice_generator_create_audio
removed 8 Oct 2026

Endpoints

URLTransportStateLatencyChecked
https://mcp.magichour.ai/ streamable-http answering 125 ms 4 min ago

Alternatives to Magic Hour

same job, measured the same way
Sequencer
by sequencer

Create AI images, video, and audio, quote generation costs, and edit Sequencer projects.

answering
ImgEdify: AI Image Editor, AI Image Generator, AI Video Generator, AI Video Editor & AI Video Maker
by andida

Generate and edit images, create videos, quote credit costs, and retrieve private results.

answering
Imagera
by imagera

Generate and edit images, video, voice and music, and upscale media on Imagera credits.

answering
Everygen
by bytevirts

Create images, videos, narration, music and multi-shot video projects with Everygen.

answering
FLORA
by flora

Generate and edit images, video, audio, text and 3D on FLORA's AI creative canvas.

answering
Aetherwave MCP
by aetherwave-studio

Music, image, video and audio generation across top AI providers - one key, one credit pool.

1 151 installs/wk local only
getimg.ai
by getimg

Generate and edit images, video, music, speech and sound effects with your getimg.ai account.

answering
Ava Studio
by avastudio

Research video, manage campaigns, generate media, and edit or export Ava Studio projects.

answering

Magic Hour — questions

Answers built from our own checks of this server.

What can Magic Hour do?
It exposes 48 tools, read directly from the server on our last check. Among them: account_retrieve, ai_clothes_changer_create_image, ai_face_editor_edit_image, ai_gif_generator_create_image, ai_headshot_generator_create_image, ai_image_editor_create_image and 42 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Magic Hour mostly used for?
Its tools cluster around image, video and face. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Magic Hour working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 0 of 91 checks got a reply (0.0%), average response time 125 ms. The bar chart above shows every period we have measured.
Did Magic Hour ever remove tools?
Yes. upload_file_to_presigned_url, ai_voice_cloner_create_audio, ai_voice_generator_create_audio are no longer exposed — we recorded the date each one disappeared. A tool vanishing usually means a breaking change for anything that depended on it.
The registry lists Magic Hour as active — why does it not respond?
The official MCP registry stores what the author submitted; it does not verify that the server still runs. We check the endpoint ourselves, and this one does not answer. Catalogues that copy the registry without checking will show it as working.
How do I connect Magic Hour?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Magic Hour need an API key?
No. Magic Hour completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 48 of them are readable on this page. This is what we observed, not what the docs claim.
Is Magic Hour open source?
The code is open source: it is published under the Apache-2.0 licence, written in Python, 9 stars on GitHub and 2 open issues. The licence covers the code in the repository, not the hosted service at mcp.magichour.ai, which runs on its operator's own terms.