comfy-h3-mcp
This server drives MiniMax-H3 video and audio generation on a local ComfyUI instance. You can:
Generate videos using
h3_image_to_video(text-to-video or keyframe-guided with first/last frame) andh3_reference_to_video(prompt plus reference images, videos, or audio for consistency).Manage jobs with
job_status(poll progress and get output URLs), andjob_cancel(cancel pending or running jobs).Preview results via
job_preview(contact sheet of frames and soundtrack).List assets with
list_assets(available models, input files, and system settings like sage attention).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@comfy-h3-mcpGenerate a video from the prompt: a dragon soaring over a castle"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
comfy-h3-mcp
A small MCP server for driving MiniMax-H3 video+audio generation on a local ComfyUI. Seven tools, not a general ComfyUI control plane — the point is to keep the agent's context cost near zero for the one thing this rig actually does.
Tools
Tool | What it does |
| Text-to-video, or keyframe-guided via |
| Prompt + reference images / videos / audio (ref2va model) |
| Poll a |
| Drop from queue if pending, interrupt if running |
| Save a frame of a finished clip as a reusable reference still |
| H3 models present, and input files usable by name |
Generation takes minutes, so the two generate tools submit and return a
prompt_id immediately. There is no session state — the prompt_id is the
only handle, and ComfyUI already owns it.
Related MCP server: MiniMax MCP
Setup
uv venv && uv pip install -e .
claude mcp add comfy-h3 -s user \
-e COMFYUI_URL=http://127.0.0.1:8188 \
-- /path/to/comfy-h3-mcp/.venv/bin/comfy-h3-mcpCOMFYUI_URL defaults to http://127.0.0.1:8188.
Timing
Generation takes minutes. Every submit returns estimated_seconds plus a
suggested poll interval, so a client knows the difference between "slow" and
"stuck". Measured on an RTX 4090 at 124 frames:
Config | Time |
864×480, 20 steps, sage | 3m 43s |
864×480, 24 steps, sage | 4m 11s |
1344×768, 30 steps, sage | 13m 13s |
1344×768, 30 steps, no sage | 18m 02s |
The estimator scales with pixels × steps × length and predicts all four within
5.2%. Roughly 30 s of that is cold model load, which no setting reduces — the
nvfp4 text-encoder path is emulated on this hardware.
Draft small, finish large. 864×480 is the template's draft setting; the model's documented full-quality 16:9 target is ~1.0 MP (1344×768). Iterate prompts at the default, then re-run keepers at 1344×768 with the same seed — noting that a seed does not guarantee an identical image across a resolution change, only a related composition.
Sage attention
list_assets reports sage_attention.global, detected by inspecting the ComfyUI
process for --use-sage-attention (local servers only; None when it can't be
determined). When sage is global, the per-call sage_attention parameter is
redundant — the tool descriptions tell clients not to set it and not to
recommend enabling sage, which otherwise happens: an agent that can't see the
launch flag will report a normal run as "grinding" and advise a no-op fix.
Sage gives roughly 1.36× here. It is a lossy approximation: same seed produces a different sample, not the same one faster (SSIM 0.78 on luma, audio differs too). Keep it in a fixed state once you lock a seed.
Required models
Loaded by name, so they must be present:
models/diffusion_models/minimax_h3_fl2va_pruned_int8_convrot.safetensorsmodels/diffusion_models/minimax_h3_ref2va_pruned_int8_convrot.safetensorsmodels/vae/minimax_h3_video_vae_fp16.safetensorsmodels/vae/minimax_h3_audio_vae_fp32.safetensorsmodels/text_encoders/qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors
list_assets reports anything missing.
Notes on the model's constraints
These are enforced in graphs.py, mirroring comfy_extras/nodes_minimax_h3.py,
so callers see the real numbers up front rather than discovering that ComfyUI
snapped them:
Length is a frame count at 24 fps, snapped up to the
17k+5grid. 124 ≈ 5.2 s. Trained range is roughly 124–362; longer is untested.Canvas is capped at 768×1344 pixels of area with each axis rounded to 32. Oversized requests are re-fitted via the model's own
adapt_canvasrule, so 1920×1080 becomes 1344×768.References are addressed positionally in the prompt as
<Picture i>,<Video k>,<Audio j>— all 1-based per type. Max 9 images, 3 videos, 3 audio. A reference video's soundtrack is wired through automatically.Prefer stills to reference videos.
ref_videoscarry identity poorly and drag their own soundtrack into the output, fighting the audio the prompt asked for. Usegrab_referenceto lift a frame from an earlier clip instead: runjob_preview, pick a tile off the contact sheet, andgrab_reference( prompt_id, tile=N)saves that exact source frame at full resolution into ComfyUI's input folder, ready to pass asref_images.ref_image_size="max"uses a 2048 px short edge for better identity fidelity but is several times slower, because reference tokens ride through every sampling step.
Defaults
These mirror the official video_minimax_h3_t2v.json template, verified
node-for-node:
Value | |
Resolution | 864×480 — 16:9 at 0.4 MP, rounded to 32 |
Steps | 20 |
Sampler |
|
Scheduler |
|
Guidance |
|
Sigma shift | none — |
Pass width/height explicitly to override the megapixel calculation, or
raise megapixels. Note the cost: 1344×768 is 2.5× the pixels of the default,
and res_multistep is a higher-order sampler, so 20 steps here is not a
downgrade from 30 steps of euler — it is faster and comparable in quality.
shift_video/shift_audio default to None, which omits MiniMaxH3SigmaShift
entirely. Set either one to insert the node and override the model default.
Graph shape
UNETLoader ──────────────────────┐
CLIPLoader(minimax) ─┐ ├─► BasicGuider ─┐
VAELoader(video) ────┼─► MiniMaxH3{ImageToVideo, │
VAELoader(audio) ────┘ ReferenceToVideo} │
│ positive ───────────────┘
└─ latent ────────────────┐
│
RandomNoise ─┐ │
KSamplerSelect(res_multistep) ─┼─► SamplerCustomAdvanced ◄┘
BasicScheduler(simple, 20) ────┘ │
├─► VAEDecode(video vae) ─────┐
└─► VAEDecodeAudio(audio vae) ┤
▼
CreateVideo(24fps) ─► SaveVideoBoth VAEs read the joint AV latent directly — the nested video/audio pair
needs no explicit split node. (LTXVSeparateAVLatent does work here despite the
name, but the template doesn't use it and neither do we.)
Autogrow reference inputs serialize as dotted API keys
(ref_images.ref_image_0, ref_video_audios.ref_video_audio_0), per
finalize_prefix() in comfy_api/latest/_io.py.
Requires
MCP SDK 2.0+ (MCPServer; FastMCP was removed).
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceProvides tools to interact with RunwayML and Luma AI APIs for video and image generation, including text-to-video, image-to-video, prompt enhancement, and management of generations.Last updated17
- AlicenseAquality-maintenanceEnables interaction with MiniMax AI APIs for text-to-speech, voice cloning, video generation, image generation, and music creation through MCP clients like Claude Desktop and Cursor.Last updated9
- Alicense-qualityDmaintenanceDynamically loads ComfyUI workflows as MCP tools, enabling AI assistants to generate images, videos, and audio by executing workflows across categories like text-to-image, image-to-video, and text-to-audio with automatic parameter mapping and progress monitoring.Last updated58,3973MIT
- Alicense-quality-maintenanceEnables AI agents to generate and iteratively refine images, audio, and video by interacting with a local ComfyUI instance through natural conversation. It provides comprehensive tools for workflow management, node introspection, and publishing generated assets.Last updated
Related MCP Connectors
MCP server for Hailuo (MiniMax) AI video generation
Create and manage cinematic AI video renders through the Future Video Studio Agent API.
Build and run visual creative-production workflows from your AI agent.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jonpojonpo/comfy-h3-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server