Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Magic Hour

REMOTE · MCP.MAGICHOUR.AI

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

Available components

−11 this week 80 Trust /100

Last scanned (19 hours ago)

Scores higher than 81% of remote servers

Reachable. Last reached 4 Nov 2026.

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security94
Transport & Reachability100
Schema Quality & AI Usability71
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 12683 tokens (~248/item across 51 items; 49 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management12
  • Stability check failed: schema churn in the 29 days we've observed: 37 tool removals, 0 breaking changes, 0 auth/transport breaks, 42 additions. See how to fix → Fail
Tool Coverage94
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 80% of tool parameters carry a description.Partial
  • Structured output schemas are declared (82% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 51 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Nov 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • New tool “upload_chatgpt_image” functional
  • 2 Nov 26 0
    • “create_video_from_image” reworded the description of “audio” cosmetic
    • “create_video_from_image” reworded the description of “end_seconds” cosmetic
    • “create_video_from_image” reworded the description of “resolution” cosmetic
    • “create_video_from_text” reworded the description of “aspect_ratio” cosmetic
    • “create_video_from_text” reworded the description of “audio” cosmetic
    • “create_video_from_text” reworded the description of “end_seconds” cosmetic
    • “create_video_from_text” reworded the description of “references” cosmetic
    • “create_video_from_text” reworded the description of “resolution” cosmetic
    • “edit_video” reworded the description of “end_seconds” cosmetic
    • “edit_video” reworded the description of “model” cosmetic
    • “edit_video” reworded the description of “resolution” cosmetic

    11 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 31 Oct 26 −11
    • A breaking change shipped without a version bump: still 0.1.0 ▼ security
    • Tool “face_swap_create_video” was removed ▼ security
    • Tool “account_retrieve” was removed ▼ security
    • Tool “ai_clothes_changer_create_image” was removed ▼ security
    • Tool “ai_face_editor_edit_image” was removed ▼ security
    • Tool “ai_gif_generator_create_image” was removed ▼ security
    • Tool “ai_headshot_generator_create_image” was removed ▼ security
    • Tool “ai_image_editor_create_image” was removed ▼ security
    • Tool “ai_image_generator_create_image” was removed ▼ security
    • Tool “ai_image_upscaler_create_image” was removed ▼ security
    • Tool “ai_meme_generator_create_image” was removed ▼ security
    • Tool “ai_music_generator_create_audio” was removed ▼ security
    • Tool “ai_qr_code_generator_create_image” was removed ▼ security
    • Tool “ai_talking_photo_create_talking_photo” was removed ▼ security
    • Tool “ai_ugc_ad_create_video” was removed ▼ security
    • Tool “ai_video_editor_create_video” was removed ▼ security
    • Tool “ai_video_translator_create_video” was removed ▼ security
    • Tool “ai_video_upscaler_create_video” was removed ▼ security
    • Tool “animation_create_video” was removed ▼ security
    • Tool “audio_projects_delete” was removed ▼ security
    • Tool “audio_projects_retrieve_details” was removed ▼ security
    • Tool “audio_to_video_create_video” was removed ▼ security
    • Tool “auto_subtitle_generator_create_video” was removed ▼ security
    • Tool “body_swap_create_image” was removed ▼ security
    • Tool “character_replace_create_video” was removed ▼ security
    • Tool “face_detection_detect_faces” was removed ▼ security
    • Tool “face_detection_retrieve_details” was removed ▼ security
    • Tool “face_swap_photo_create_image” was removed ▼ security
    • Tool “head_swap_create_image” was removed ▼ security
    • Tool “image_background_remover_create_image” was removed ▼ security
    • Tool “image_projects_delete” was removed ▼ security
    • Tool “image_projects_retrieve_details” was removed ▼ security
    • Tool “image_to_video_create_video” was removed ▼ security
    • Tool “lip_sync_create_video” was removed ▼ security
    • Tool “photo_colorizer_create_image” was removed ▼ security
    • Tool “saved_items_list” was removed ▼ security
    • Tool “text_to_video_create_video” was removed ▼ security
    • Tool “video_assets_generate_presigned_url” was removed ▼ security
    • Tool “video_projects_delete” was removed ▼ security
    • Tool “video_projects_retrieve_details” was removed ▼ security
    • Tool “video_to_video_create_video” was removed ▼ security
    • Tool “workflow_guide_retrieve” was removed ▼ security
    • The server rewrote its instructions, which are the text every model session reads security
    • New tool “delete_audio_project”, which the server declares destructive security
    • New tool “delete_image_project”, which the server declares destructive security
    • New tool “delete_video_project”, which the server declares destructive security
    • Tool “fetch_audio_download” rewrote its description, which is the text the model reads security
    • Tool “fetch_image_download” rewrote its description, which is the text the model reads security
    • Tool “fetch_video_download” rewrote its description, which is the text the model reads security
    • Tool “ping” rewrote its description, which is the text the model reads security
    • Tool “wait_for_audio_project” rewrote its description, which is the text the model reads security
    • Tool “wait_for_image_project” rewrote its description, which is the text the model reads security
    • Tool “wait_for_video_project” rewrote its description, which is the text the model reads security
    • Schema quality: 385 → 247 ▲ functional
    • New tool “add_subtitles_to_video” functional
    • New tool “change_clothes_in_photo” functional
    • New tool “colorize_photo” functional
    • New tool “create_animation” functional
    • New tool “create_gif_or_short_video” functional
    • New tool “create_lip_sync_video” functional
    • New tool “create_meme” functional
    • New tool “create_qr_code” functional
    • New tool “create_spoken_ad_video” functional
    • New tool “create_talking_photo” functional
    • New tool “create_video_from_audio” functional
    • New tool “create_video_from_image” functional
    • New tool “create_video_from_text” functional
    • New tool “detect_faces” functional
    • New tool “edit_face_in_photo” functional
    • New tool “edit_image” functional
    • New tool “edit_video” functional
    • New tool “generate_headshot” functional
    • New tool “generate_image” functional
    • New tool “generate_music” functional
    • New tool “get_account_info” functional
    • New tool “get_audio_project” functional
    • New tool “get_face_detection_results” functional
    • New tool “get_image_project” functional
    • New tool “get_upload_urls” functional
    • New tool “get_video_project” functional
    • New tool “get_workflow_guide” functional
    • New tool “list_saved_items” functional
    • New tool “place_person_in_scene” functional
    • New tool “remove_image_background” functional
    • New tool “replace_character_in_video” functional
    • New tool “restyle_video” functional
    • New tool “swap_face_in_photo” functional
    • New tool “swap_face_in_video” functional
    • New tool “swap_head_in_photo” functional
    • New tool “translate_video” functional
    • New tool “upscale_image” functional
    • New tool “upscale_video” functional
  • 30 Oct 26 0
    • Tool “video_assets_generate_presigned_url” rewrote its description, which is the text the model reads security
    • “ai_ugc_ad_create_video” reworded the description of “script” cosmetic
  • 26 Oct 26 0
    • “ai_talking_photo_create_talking_photo” reworded the description of “end_seconds” cosmetic
    • “ai_talking_photo_create_talking_photo” reworded the description of “start_seconds” cosmetic
    • “ai_video_editor_create_video” reworded the description of “end_seconds” cosmetic
    • “character_replace_create_video” reworded the description of “model” cosmetic

    4 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 25 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “video_to_video_create_video” rewrote its description, which is the text the model reads security
    • Tool “video_to_video_create_video” changed its title: Video-to-Video → Restyle an existing video segment cosmetic
  • 23 Oct 26 0
    • Tool “ai_video_editor_create_video” rewrote its description, which is the text the model reads security
    • Tool “ai_video_translator_create_video” rewrote its description, which is the text the model reads security
    • Tool “audio_to_video_create_video” rewrote its description, which is the text the model reads security
    • Tool “character_replace_create_video” rewrote its description, which is the text the model reads security
    • Tool “face_swap_create_video” rewrote its description, which is the text the model reads security
    • Tool “video_to_video_create_video” rewrote its description, which is the text the model reads security
    • New tool “ai_music_generator_create_audio” functional
    • New tool “ai_video_upscaler_create_video” functional
    • “ai_talking_photo_create_talking_photo” added an optional parameter “resolution” cosmetic
    • “ai_ugc_ad_create_video” reworded the description of “script” cosmetic
    • “image_to_video_create_video” reworded the description of “audio” cosmetic
    • “image_to_video_create_video” reworded the description of “end_seconds” cosmetic
    • “image_to_video_create_video” reworded the description of “model” cosmetic
    • “image_to_video_create_video” reworded the description of “resolution” cosmetic
    • “text_to_video_create_video” reworded the description of “aspect_ratio” cosmetic
    • “text_to_video_create_video” reworded the description of “audio” cosmetic
    • “text_to_video_create_video” reworded the description of “end_seconds” cosmetic
    • “text_to_video_create_video” reworded the description of “model” cosmetic
    • “text_to_video_create_video” reworded the description of “references” cosmetic
    • “text_to_video_create_video” reworded the description of “resolution” cosmetic
    • “ai_talking_photo_create_talking_photo” dropped the optional parameter “max_resolution” cosmetic
    • Tool “character_replace_create_video” changed its title: Character Replace → Replace or animate a character using video and a reference image cosmetic
    • Tool “face_swap_create_video” changed its title: Face Swap Video → Swap faces in an existing video cosmetic
  • 22 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “ai_image_editor_create_image” rewrote its description, which is the text the model reads security
    • Tool “ai_talking_photo_create_talking_photo” rewrote its description, which is the text the model reads security
    • Tool “image_to_video_create_video” rewrote its description, which is the text the model reads security
    • Tool “lip_sync_create_video” rewrote its description, which is the text the model reads security
    • Tool “text_to_video_create_video” rewrote its description, which is the text the model reads security
    • Tool “ai_image_editor_create_image” changed its title: AI Image Editor → Edit supplied images cosmetic
    • Tool “ai_talking_photo_create_talking_photo” changed its title: AI Talking Photo → Make a still portrait speak from audio cosmetic
    • Tool “image_to_video_create_video” changed its title: Image-to-Video → Animate a supplied image into video cosmetic
    • Tool “lip_sync_create_video” changed its title: Lip Sync → Lip-sync existing video to replacement audio cosmetic
    • Tool “text_to_video_create_video” changed its title: Text-to-Video → Generate video from text cosmetic
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Probed https://mcp.magichour.ai/

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.magichour.ai CN=YR2,O=Let's Encrypt,C=US 15 Sept 2026 14 Dec 2026 RSA 2048 SHA256-RSA 6aa235fe3d5f0055b5768ea1fcbdd2d8535
SANs: mcp.magichour.ai
CN=YR2,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA 4ebd24947e24d394802d84a52fd5b319
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.magichour.ai. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 1814, 3799 8, 8 Verified
magichour.ai. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://mcp.magichour.ai/.well-known/oauth-protected-resource"

Bearer resource_metadata="https://mcp.magichour.ai/.well-known/oauth-protected-resource"
Header Value
strict-transport-security max-age=63072000

Protected resource metadata

Document https://mcp.magichour.ai/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://mcp.magichour.ai
Authorisation server https://magichour.ai

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.magichour.ai/ Verified 200
http (plaintext) http://mcp.magichour.ai/ HTTPS enforced 308 https://mcp.magichour.ai/
MCP tools · 49 exposed · ~12,265 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_subtitles_to_video ~266

Adds automatically generated subtitles to a supplied video segment using a subtitle preset or custom text styling. Starts a background job that costs credits; returns a project id for wait_for_video_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for auto subtitle generator
end_secondsnumberyesEnd time of your clip (seconds). Must be greater than start_seconds.
namestring–Give your video a custom name for easy identification.
start_secondsnumberyesStart time of your clip (seconds). Must be ≥ 0.
styleobjectyesStyle of the subtitle. At least one of `.style.template` or `.style.custom_config` must be provided. * If only `.style.template` is provided, default values for the template will be used. * If both…
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

change_clothes_in_photo ~105

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. Changes clothing in a person photo using a supplied garment reference image. Costs 25 credits. Starts a background job; returns a project id for wait_for_image_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for clothes changer
namestring–Give your image a custom name for easy identification.
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

colorize_photo ~64

Colorizes a black-and-white or faded photo. Costs 10 credits; returns a project id for wait_for_image_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for photo colorization
namestring–Give your image a custom name for easy identification.
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

create_animation ~215

Creates a stylized animated video with art and camera settings, using a custom prompt or an audio-derived prompt mode. Can use an initial image and audio. Credits depend on frame rate and duration; returns a project id for wait_for_video_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for animation.
end_secondsnumberyesThis value determines the duration of the output video.
fpsnumberyesThe desire output video frame rate
heightintegeryesThe height of the final output video. The maximum height depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
namestring–Give your video a custom name for easy identification.
styleobjectyesDefines the style of the output video
widthintegeryesThe width of the final output video. The maximum width depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

create_gif_or_short_video ~90

Generates a short animation from a text prompt, with GIF, MP4 or WebM output. Costs 50 credits. Starts a background job; returns a project id for wait_for_image_project.

NameTypeReqDescription
namestring–Give your gif a custom name for easy identification.
output_formatstring–The output file format for the generated animation.
styleobjectyes–
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

create_lip_sync_video ~260

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. Adjusts an existing video's lip movements to match supplied replacement audio. For a still portrait plus audio, use create_talking_photo. Starts a background job that costs credits; returns a project id for wait_for_video_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for lip-sync. For video, The `video_source` field determines whether `video_file_path` or `youtube_url` field is used
end_secondsnumberyesEnd time of your clip (seconds). Must be greater than start_seconds.
max_fps_limitnumber–Defines the maximum FPS (frames per second) for the output video. If the input video's FPS is lower than this limit, the output video will retain the input FPS. This is useful for reducing unnecessar…
namestring–Give your video a custom name for easy identification.
start_secondsnumberyesStart time of your clip (seconds). Must be ≥ 0.
styleobject–Attributes used to dictate the style of the output
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

create_meme ~58

Creates a meme from a topic and template selection. Costs 10 credits. Starts a background job; returns a project id for wait_for_image_project.

NameTypeReqDescription
namestring–The name of the meme.
styleobjectyes–
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

create_qr_code ~85

Creates a stylized QR code from supplied text or a URL and an art-style description. Currently costs 0 credits. Starts a background job; returns a project id for wait_for_image_project.

NameTypeReqDescription
contentstringyesThe content of the QR code.
namestring–Give your image a custom name for easy identification.
styleobjectyes–
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

create_spoken_ad_video ~420

Creates a creator-style spoken ad video from a prepared image and a text script. Use when the image is ready and the dialogue should be generated from text. Starts a background job that costs credits; returns a project id for wait_for_video_project.

NameTypeReqDescription
assetsobjectyes–
end_secondsnumberyesVideo duration in seconds. Supported values by model: * kling-3.0: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 seconds. * ltx-2.5: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 6…
modelstring–Defaults to kling-3.0 on paid plans and ltx-2.5 on free plans.
resolutionstring–Defaults to 720p on paid plans and 480p on free plans. Unsupported model/resolution combinations and resolutions unavailable for your plan are rejected.
scriptstringyesThe words the actor should speak. Character limits apply after trimming: * kling-3.0: 2304 characters. * ltx-2.5: 1804 characters. * veo3.1: 2500 characters. LTX and Kling dialogue wrappers count tow…
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

create_talking_photo ~249

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. Animates a still portrait so it speaks an existing audio recording. Use with a portrait photo and an audio file; text alone is not accepted and this tool does not synthesize speech. Starts a background job that costs credits; returns a project id for wait_for_video_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for creating a talking photo
end_secondsnumberyesThe end time of the input audio in seconds. Maximum clip length depends on style.generation_mode: realistic 300s, prompted 60s.
namestring–Give your video a custom name for easy identification.
resolutionstring–Output preset. Overrides `max_resolution`. Defaults to 480p in prompted mode; realistic mode uses the mapped plan maximum.
start_secondsnumberyesThe start time of the input audio in seconds. Maximum clip length depends on style.generation_mode: realistic 300s, prompted 60s.
styleobject–Attributes used to dictate the style of the output
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

create_video_from_audio ~168

Generates an audio-guided video from a supplied audio track, with an optional starting image and visual prompt. Starts a background job that costs credits; returns a project id for wait_for_video_project.

NameTypeReqDescription
assetsobjectyesProvide the audio file and an optional reference image.
end_secondsnumberyesEnd time of your clip (seconds). Must be greater than start_seconds.
namestring–Give your video a custom name for easy identification.
resolutionstring–Output video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers.
start_secondsnumber–Start time of your clip (seconds). Must be ≥ 0.
styleobject–Attributes used to dictate the style of the output
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

create_video_from_image ~1,308

Animates a supplied image into a video using motion instructions and available model options. Starts a background job that costs credits; returns a project id for wait_for_video_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for image-to-video.
audioboolean–Whether to include audio in the video. Defaults to `false` if not specified. Audio support varies by model: * **`gemini-omni-1.1`**: Not supported * **`kling-2.6`**: Not supported * **`kling-3.0`**:…
end_secondsnumberyesThe total duration of the output video in seconds. Supported durations depend on the chosen model: * **`gemini-omni-1.1`**: any integer from 3 to 10 * **`kling-2.6`**: 5, 10 * **`kling-3.0`**: any i…
modelstring–The video generation model. With `default`, paid tiers use `kling-3.0` and Free uses `ltx-2.5`. Duration, resolution, audio and reference support depend on the selected model. Deprecated model values…
namestring–Give your video a custom name for easy identification.
resolutionstring–Controls the output video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers. * **`gemini-omni-1.1`**: Supports 360p, 720p, 1080p, 4k. * **`kling-2.6`**: Supports 720p, 1080p. * *…
styleobject–Attributed used to dictate the style of the output
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

create_video_from_text ~2,001

Generates a video from a text prompt, with optional supported reference inputs and model settings. To animate an existing starting image, use create_video_from_image. Starts a background job that costs credits; returns a project id for wait_for_video_project.

NameTypeReqDescription
aspect_ratiostring–Provide `aspect_ratio` to set the video’s aspect ratio. Determines the aspect ratio of the output video. * **`gemini-omni-1.1`**: Supports 16:9, 9:16. * **`kling-2.6`**: Supports 9:16, 16:9, 1:1. *…
audioboolean–Whether to include audio in the video. Defaults to `false` if not specified. Audio support varies by model: * **`gemini-omni-1.1`**: Not supported * **`kling-2.6`**: Not supported * **`kling-3.0`**:…
end_secondsnumberyesThe total duration of the output video in seconds. Supported durations depend on the chosen model: * **`gemini-omni-1.1`**: any integer from 3 to 10 * **`kling-2.6`**: 5, 10 * **`kling-3.0`**: any i…
modelstring–The video generation model. With `default`, paid tiers use `kling-3.0` and Free uses `ltx-2.5`. Duration, resolution, audio and reference support depend on the selected model. Deprecated model values…
namestring–Give your video a custom name for easy identification.
referencesarray–Reference media for video generation. Name references without @ and refer to them as @name in style.prompt. Maximum 10 references total. Supported models and reference media: * **`gemini-omni-1.1`**…
resolutionstring–Controls the output video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers. * **`gemini-omni-1.1`**: Supports 360p, 720p, 1080p, 4k. * **`kling-2.6`**: Supports 720p, 1080p. * *…
styleobjectyes–
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

delete_audio_project ~59

Deletes the audio project and attempts to delete its completed output. Cannot be undone; confirm with the user first.

NameTypeReqDescription
idstringyesUnique ID of the audio project. This value is returned by all of the POST APIs that create an audio.

No output schema declared.

No examples provided.

delete_image_project ~59

Deletes the image project and attempts to delete its completed output. Cannot be undone; confirm with the user first.

NameTypeReqDescription
idstringyesUnique ID of the image project. This value is returned by all of the POST APIs that create an image.

No output schema declared.

No examples provided.

delete_video_project ~59

Deletes the video project and attempts to delete its completed output. Cannot be undone; confirm with the user first.

NameTypeReqDescription
idstringyesUnique ID of the video project. This value is returned by all of the POST APIs that create a video.

No output schema declared.

No examples provided.

detect_faces ~140

Starts an asynchronous face-detection task for a supplied image or video and returns its id and charge information. Use before a selected-face swap, then retrieve its status and detected faces with get_face_detection_results. Current API documentation describes detection as free; pricing may change.

NameTypeReqDescription
assetsobjectyesProvide the assets for face detection
confidence_scorenumber–Confidence threshold for filtering detected faces. * Higher values (e.g., 0.9) include only faces detected with high certainty, reducing false positives. * Lower values (e.g., 0.3) include more fac…
NameTypeReqDescription
credits_chargedintegeryesThe credits charged for the task.
idstringyesThe id of the task. Use this value in the [get face detection details API](https://docs.magichour.ai/api-reference/files/get-face-detection-details) to get the details of the face detection task.

No examples provided.

edit_face_in_photo ~95

Adjusts facial expression, pose and gaze in a supplied photo using numeric controls. Costs 1 credit per edit; output size depends on the subscription tier. Starts a background job; returns a project id for wait_for_image_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for face editor
namestring–Give your image a custom name for easy identification.
styleobjectyesFace editing parameters
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

edit_image ~1,397

Edits one or more supplied images using a text prompt. For prompt-only creation use generate_image. Costs credits; returns a project id for wait_for_image_project. Model eligibility depends on the account plan; the default model is not available on every plan.

NameTypeReqDescription
aspect_ratiostring–The aspect ratio of the output image(s). If not specified, defaults to `auto`.
assetsobjectyesProvide the assets for image edit
image_countnumber–Number of images to generate. Maximum varies by model. Defaults to 1 if not specified.
modelstring–The AI model to use for image editing. Each model has different capabilities and costs. **Models:** - `default` - Uses the server-selected default model, which may change over time. - `flux-2-klein`…
namestring–Give your image a custom name for easy identification.
resolutionstring–Maximum resolution (longest edge) for the output image. **Options:** - `640px` — up to 640px - `1k` — up to 1024px - `2k` — up to 2048px - `4k` — up to 4096px - `auto` — **Deprecated.** Mapped serve…
styleobjectyes–
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

edit_video ~359

Edits the appearance or content of a supplied video segment using a text prompt. Use with a source video, the requested changes and the clip end time. Starts a background job that costs credits; returns a project id for wait_for_video_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for video editing.
end_secondsnumberyesEnd time of your clip in seconds. Must be greater than `start_seconds`. Allowed duration depends on model: `gemini-omni-1.1`: 3-10s, `wan-3.0`: 2-15s, `ltx-2.5`: 0.5-60s (30s at 1080p).
modelstring–Editing model. Defaults to LTX 2.5 for free tier and `gemini-omni-1.1` for paid. `wan-3.0` requires a paid tier. `gemini-omni` is deprecated; use `gemini-omni-1.1` instead.
namestring–Give your video a custom name for easy identification.
resolutionstring–Output resolution. Defaults to `480p` for free tier and `720p` for paid. Supported per model: `gemini-omni-1.1`: 720p, 1080p; `wan-3.0`: 480p, 720p, 1080p; `ltx-2.5`: 480p, 720p, 1080p.
start_secondsnumber–Start time of your clip (seconds). Must be ≥ 0.
styleobjectyes–
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

fetch_audio_download ~86

Fetch a completed project's audio as inline MCP audio content for compatible clients. Use the exact signed download URL, including query parameters. Requires HTTPS at the configured Magic Hour media host. Read-only; limited to 8 MiB, or a smaller requested max_bytes. Use the signed URL directly for larger files.

NameTypeReqDescription
download_urlstringyes–
max_bytesinteger––

No output schema declared.

No examples provided.

fetch_image_download ~86

Fetch a completed project's image as inline MCP image content for compatible clients. Use the exact signed download URL, including query parameters. Requires HTTPS at the configured Magic Hour media host. Read-only; limited to 8 MiB, or a smaller requested max_bytes. Use the signed URL directly for larger files.

NameTypeReqDescription
download_urlstringyes–
max_bytesinteger––

No output schema declared.

No examples provided.

fetch_video_download ~87

Fetch a completed project's video as an embedded MCP binary resource for compatible clients. Use the exact signed download URL, including query parameters. Requires HTTPS at the configured Magic Hour media host. Read-only; limited to 8 MiB, or a smaller requested max_bytes. Use the signed URL directly for larger files.

NameTypeReqDescription
download_urlstringyes–
max_bytesinteger––

No output schema declared.

No examples provided.

generate_headshot ~84

Creates a headshot from a supplied photo containing one detectable face, with optional appearance instructions. Costs 50 credits. Starts a background job; returns a project id for wait_for_image_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for headshot photo
namestring–Give your image a custom name for easy identification.
styleobject––
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

generate_image ~1,478

Generates one or more images from a text prompt, with model, output size and image count options. Costs credits; returns a project id for wait_for_image_project.

NameTypeReqDescription
aspect_ratiostring–The aspect ratio of the output image(s). If not specified, defaults to `1:1` (square).
image_countintegeryesNumber of images to generate. Maximum varies by model.
modelstring–The AI model to use for image generation. Each model has different capabilities and costs. **Models:** - `default` - Uses the server-selected default model, which may change over time. - `flux-2-kle…
namestring–Give your image a custom name for easy identification.
resolutionstring–Maximum resolution (longest edge) for the output image. **Options:** - `640px` — up to 640px - `1k` — up to 1024px - `2k` — up to 2048px - `4k` — up to 4096px - `auto` — **Deprecated.** Mapped serve…
styleobjectyesThe art style to use for image generation.
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

generate_music ~87

Generates music from a description, with optional custom lyrics or instrumental-only output. Costs 1 credit per requested second; returns a project id for wait_for_audio_project.

NameTypeReqDescription
durationintegeryesRequested track duration in seconds, from 15 to 300. Determines credits charged.
namestring–Give your audio a custom name for easy identification.
styleobjectyes–
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the audio. We charge credits right when the request is made. If an error occurred while generating the audio, credits will be refunded a…
idstringyesUnique ID of the audio. Use it with the [Get audio Project API](https://docs.magichour.ai/api-reference/audio-projects/get-audio-details) to fetch status and downloads.

No examples provided.

get_account_info ~46

Returns credit balance and subscription details for the connected account. Use to inspect account information before generation. Read-only; this is not a request-specific cost quote or model-eligibility check.

Input schema present but exposes no named parameters.

NameTypeReqDescription
creditsintegeryesCredits currently available to spend. Includes subscription credits and any purchased credit packs.
emailstring|nullyesEmail address of the account.
idstringyesUnique ID of the account that owns the API key.
subscriptionobject|nullyesDetails of the account's subscription plan. `null` if the account has no subscription, e.g. a free account, an account that only purchased credit packs, or an account on usage-based API pricing. Ref…
tierstringyesSubscription tier in effect for the account. `free` if there is no active subscription, including while a subscription is `past_due`.

No examples provided.

get_audio_project ~67

Returns an audio project's status and, once complete, its download URLs. Use to check progress with the id from an audio create tool. Read-only.

NameTypeReqDescription
idstringyesUnique ID of the audio project. This value is returned by all of the POST APIs that create an audio.
NameTypeReqDescription
created_atstringyes–
credits_chargedintegeryesThe amount of credits deducted from your account to generate the audio. We charge credits right when the request is made. If an error occurred while generating the audio, credits will be refunded a…
downloadsarrayyes–
enabledbooleanyesWhether this resource is active. If false, it is deleted.
errorobject|nullyesIn the case of an error, this object will contain the error encountered during video render
idstringyesUnique ID of the audio. Use it with the [Get audio Project API](https://docs.magichour.ai/api-reference/audio-projects/get-audio-details) to fetch status and downloads.
namestring|nullyesThe name of the audio.
statusstringyesThe status of the audio. - `draft` - the project was created but has not been submitted for rendering - `queued` - the job is waiting for an available server - `rendering` - the job is being process…
typestringyesThe type of the audio project. Possible values are AUDIO_TRANSLATOR, VOICE_GENERATOR, VOICE_CHANGER, VOICE_CLONER, VIDEO_TO_AUDIO, MUSIC_GENERATOR, SOUND_EFFECT_GENERATOR

No examples provided.

get_face_detection_results ~92

Returns a face-detection job's status and detected faces. Use with the id from detect_faces to inspect progress and choose face mappings before a selected-face swap. Read-only; faces may populate while processing.

NameTypeReqDescription
idstringyesThe id of the task. This value is returned by the [face detection API](https://docs.magichour.ai/api-reference/files/face-detection#response-id).
NameTypeReqDescription
credits_chargedintegeryesThe credits charged for the task.
facesarrayyesThe faces detected in the image or video. The list is populated as faces are detected.
idstringyesThe id of the task. This value is returned by the [face detection API](https://docs.magichour.ai/api-reference/files/face-detection#response-id).
statusstringyesThe status of the detection.

No examples provided.

get_image_project ~67

Returns an image project's status and, once complete, its download URLs. Use to check progress with the id from an image create tool. Read-only.

NameTypeReqDescription
idstringyesUnique ID of the image project. This value is returned by all of the POST APIs that create an image.
NameTypeReqDescription
created_atstringyes–
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
downloadsarrayyes–
enabledbooleanyesWhether this resource is active. If false, it is deleted.
errorobject|nullyesIn the case of an error, this object will contain the error encountered during video render
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
image_countintegeryesNumber of images generated
namestring|nullyesThe name of the image.
statusstringyesThe status of the image. - `draft` - the project was created but has not been submitted for rendering - `queued` - the job is waiting for an available server - `rendering` - the job is being process…
typestringyesThe type of the image project. Possible values are FACE_EDITOR, AI_IMAGE_EDITOR, GENERATIVE_FILL, AI_SELFIE, AI_HEADSHOT, AI_INFLUENCER, AI_IMAGE, AI_MEME, CLOTHES_CHANGER, BACKGROUND_REMOVER, FACE_S…

No examples provided.

get_upload_urls ~90

Creates presigned upload URL and file-path pairs for local media. Use when a generation needs a file the user has locally: upload raw bytes to the returned upload_url, then pass its file_path to the create tool. Does not upload file bytes or start a generation.

NameTypeReqDescription
itemsarrayyesThe list of assets to upload. The response array will match the order of items in the request body.
NameTypeReqDescription
itemsarrayyesThe list of upload URLs and file paths for the assets. The response array will match the order of items in the request body. Refer to the [Input Files Guide](https://docs.magichour.ai/integration/inp…

No examples provided.

get_video_project ~67

Returns a video project's status and, once complete, its download URLs. Use to check progress with the id from a video create tool. Read-only.

NameTypeReqDescription
idstringyesUnique ID of the video project. This value is returned by all of the POST APIs that create a video.
NameTypeReqDescription
created_atstringyes–
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
downloadsarrayyes–
enabledbooleanyesWhether this resource is active. If false, it is deleted.
end_secondsnumberyesEnd time of your clip (seconds). Must be greater than start_seconds.
errorobject|nullyesIn the case of an error, this object will contain the error encountered during video render
fpsnumberyesFrame rate of the video. If the status is not 'complete', the frame rate is an estimate and will be adjusted when the video completes.
heightintegeryesThe height of the final output video. A value of -1 indicates the height can be ignored.
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
namestring|nullyesThe name of the video.
start_secondsnumberyesStart time of your clip (seconds). Must be ≥ 0.
statusstringyesThe status of the video. - `draft` - the project was created but has not been submitted for rendering - `queued` - the job is waiting for an available server - `rendering` - the job is being process…
typestringyesThe type of the video project. Possible values are ANIMATION, AUTO_SUBTITLE, VIDEO_TO_VIDEO, FACE_SWAP, TEXT_TO_VIDEO, IMAGE_TO_VIDEO, LIP_SYNC, TALKING_PHOTO, AVATAR, VIDEO_UPSCALER, VIDEO_EDITOR, C…
widthintegeryesThe width of the final output video. A value of -1 indicates the width can be ignored.

No examples provided.

get_workflow_guide ~60

Returns required inputs, ordered steps, example requests and review criteria for eight supported Magic Hour workflows. Use when planning a generation, not to run one. Requires authentication but does not check account eligibility or spend credits.

NameTypeReqDescription
workflowstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

list_saved_items ~114

Lists the account's active saved characters, references, voice recordings, moodboards and brand kits, newest first. Reusable paths are in each item's assets[].file_path; temporary signed URLs support preview/download. Read-only; pass next_cursor as cursor for the next page.

NameTypeReqDescription
cursorstring–Opaque pagination cursor from the previous response's next_cursor.
limitinteger–Maximum number of saved items to return. Defaults to 20.
typestring–Only return saved items of this type.
NameTypeReqDescription
itemsarrayyes–
next_cursorstring|nullyesCursor for the next page, or null when there are no more saved items.

No examples provided.

ping ~38

Checks that the Magic Hour server is reachable. Use for connectivity troubleshooting; it does not validate API credentials or account access. Makes no media or project changes.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes–

No examples provided.

place_person_in_scene ~126

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. Places a person from one supplied photo into a supplied scene image. Cost depends on resolution (from 50 credits at 640px); returns a project id for wait_for_image_project.

NameTypeReqDescription
assetsobjectyesPerson image and scene image for body swap
namestring–Give your image a custom name for easy identification.
resolutionstringyesOutput resolution. Determines credits charged for the run.
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

remove_image_background ~72

Removes an image's background, optionally replacing it with another supplied image. Costs 5 credits. Starts a background job; returns a project id for wait_for_image_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for background removal
namestring–Give your image a custom name for easy identification.
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

replace_character_in_video ~395

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. Replaces a subject in a video with a character from a reference image, or transfers the video's motion onto that character. Starts a background job that costs credits; returns a project id for wait_for_video_project.

NameTypeReqDescription
assetsobjectyesSource video and reference character image for the job.
end_secondsnumberyesEnd time of your clip (seconds). Must be greater than start_seconds.
modelstring–Model to use. Defaults to `wan-animate`. * **`wan-animate`**: 480p, 720p. Supports `points` subject selection. * **`kling-3.0`**: 720p, 1080p. Clips of 3–10 seconds in `replace` mode or 3–30 seconds…
namestring–Give your video a custom name for easy identification.
resolutionstring–Output video resolution. Must be supported by `model`. Defaults to the lowest resolution available on your plan for that model.
start_secondsnumber–Start time of your clip (seconds). Must be ≥ 0.
styleobject–Optional style controls for replace vs animate mode and subject selection.
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

restyle_video ~223

Restyles an existing video clip with an art-style preset or a custom prompt. Supports v1/v2 presets, not v3. Starts a background job that costs credits; returns a project id for wait_for_video_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for video-to-video. For video, The `video_source` field determines whether `video_file_path` or `youtube_url` field is used
end_secondsnumberyesEnd time of your clip (seconds). Must be greater than start_seconds.
fps_resolutionstring–Determines whether the resulting video will have the same frame per second as the original video, or half. * `FULL` - the result video will have the same FPS as the input video * `HALF` - the result…
namestring–Give your video a custom name for easy identification.
start_secondsnumberyesStart time of your clip (seconds). Must be ≥ 0.
styleobjectyes–
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

swap_face_in_photo ~110

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. Swaps faces in a supplied photo using a source face image or selected face mappings. Costs 10 credits; output size depends on subscription. Returns a project id for wait_for_image_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for face swap photo
namestring–Give your image a custom name for easy identification.
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

swap_face_in_video ~193

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. Swaps faces in an existing video: all faces with a reference image, or selected faces using detect_faces results. Starts a background job that costs credits; returns a project id for wait_for_video_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for face swap. For video, The `video_source` field determines whether `video_file_path` or `youtube_url` field is used
end_secondsnumberyesEnd time of your clip (seconds). Must be greater than start_seconds.
namestring–Give your video a custom name for easy identification.
start_secondsnumberyesStart time of your clip (seconds). Must be ≥ 0.
styleobject–Style of the face swap video.
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

swap_head_in_photo ~159

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. Swaps a head from a supplied image onto a supplied body image. Costs 10 credits; returns a project id for wait_for_image_project.

NameTypeReqDescription
assetsobjectyesProvide the body and head images for head swap
max_resolutioninteger–Constrains the larger dimension (height or width) of the output. Omit to use the maximum allowed for your plan (capped at 2048px). Values above your plan maximum are clamped down to your plan's maxim…
namestring–Give your image a custom name for easy identification.
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

translate_video ~167

Translates speech in a supplied video segment into a supported target language. Starts a background job that costs credits; returns a project id for wait_for_video_project.

NameTypeReqDescription
assetsobjectyesSource video for the translation job.
end_secondsnumberyesEnd time of your clip (seconds). Must be greater than start_seconds. The clip must be 1-30 seconds long.
namestring–Give your video a custom name for easy identification.
resolutionstring–Output video resolution. Defaults to 480p. 720p and 1080p require a paid plan.
start_secondsnumber–Start time of your clip (seconds). Must be ≥ 0.
target_languagestringyesLanguage to translate the video's speech into.
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

upload_chatgpt_image ~97

Uploads a PNG, JPEG or WebP image attached in ChatGPT to the connected Magic Hour account. Use this for native ChatGPT photo attachments instead of asking the chat's file runtime to PUT bytes to get_upload_urls. Pass the returned file_path to the existing image or video generation tool. Accepts one image up to 20 MiB. Does not generate media or spend generation credits.

NameTypeReqDescription
imageobjectyes–

Structured output declared, but exposes no named fields.

No examples provided.

upscale_image ~153

Upscales a supplied image 2x or 4x. Cost depends on scale and mode (25-200 credits); returns a project id for wait_for_image_project.

NameTypeReqDescription
assetsobjectyesProvide the assets for upscaling
namestring–Give your image a custom name for easy identification.
scale_factornumberyesHow much to scale the image. Must be either 2 or 4. Note: 4x upscale is only available on Creator, Pro, or Business tier.
styleobject–Style settings for the upscale. Use `mode` (`"preserve"`, `"balanced"`, or `"creative"`). Defaults to `"balanced"`.
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunde…
idstringyesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.

No examples provided.

upscale_video ~166

Upscales a supplied video segment to a selected output resolution while preserving its aspect ratio. Starts a background job that costs credits; returns a project id for wait_for_video_project.

NameTypeReqDescription
assetsobjectyesSource video for the upscale job.
end_secondsnumberyesEnd time of your clip (seconds). Must be greater than start_seconds.
namestring–Give your video a custom name for easy identification.
resolutionstringyesOutput resolution. `720p` and `1080p` set the output's short side, `2k` and `4k` its long side; the aspect ratio is kept. Requires a paid plan.
start_secondsnumber–Start time of your clip (seconds). Must be ≥ 0.
NameTypeReqDescription
credits_chargedintegeryesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the o…
idstringyesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.

No examples provided.

wait_for_audio_project ~139

Polls an audio project until it completes, errors, is canceled or times out. Use with the id returned by an audio create tool. Read-only; returns the project and download URLs, with optional inline audio previews sharing an 8 MiB total limit. After a timeout, resume with the same id rather than creating another generation. Use signed download URLs exactly as returned.

NameTypeReqDescription
idstringyes–
include_inline_downloadsboolean––
max_bytes_per_downloadinteger––
max_inline_downloadsinteger––
poll_interval_secondsnumber––
timeout_secondsnumber––

No output schema declared.

No examples provided.

wait_for_image_project ~139

Polls an image project until it completes, errors, is canceled or times out. Use with the id returned by an image create tool. Read-only; returns the project and download URLs, with optional inline image previews sharing an 8 MiB total limit. After a timeout, resume with the same id rather than creating another generation. Use signed download URLs exactly as returned.

NameTypeReqDescription
idstringyes–
include_inline_downloadsboolean––
max_bytes_per_downloadinteger––
max_inline_downloadsinteger––
poll_interval_secondsnumber––
timeout_secondsnumber––

No output schema declared.

No examples provided.

wait_for_video_project ~120

Polls a video project until it completes, errors, is canceled or times out. Use with the id returned by a video create tool. Read-only; returns download URLs when complete. After a timeout, resume with the same id rather than creating another generation. Use signed download URLs exactly as returned. Does not inline video content.

NameTypeReqDescription
idstringyes–
include_inline_downloadsboolean––
max_inline_downloadsinteger––
poll_interval_secondsnumber––
timeout_secondsnumber––

No output schema declared.

No examples provided.

Install

How do I install the Magic Hour MCP server?

Magic Hour is a hosted endpoint at https://mcp.magichour.ai/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.magichour.ai

# add to Claude Code
claude mcp add --transport http magichourhq-magic-hour 'https://mcp.magichour.ai/'
Common questions

What is the Magic Hour MCP server?

Magic Hour is an MCP server listed in the public MCP registry as io.github.magichourhq/magic-hour. Create and edit images and video, generate music, and retrieve existing audio projects. This page covers its hosted endpoint (https://mcp.magichour.ai/).

Is the Magic Hour MCP server safe to use?

Magic Hour scores 80 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Magic Hour MCP server expose?

Magic Hour exposes 49 tools: get_workflow_guide, upload_chatgpt_image, ping, wait_for_video_project, wait_for_image_project, and 44 more. Their descriptions and schemas cost roughly 12,265 tokens of context every time the server is loaded.

Does the Magic Hour MCP server require authentication?

Yes. Magic Hour asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Magic Hour MCP server still maintained?

Magic Hour is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.