Build a MiniMax H3 Omni-Modal Media MCP Server for Agent-Driven Video & Audio Generation in 2026
MiniMax H3 is the first fully open omni-modal model generating 2K video with native stereo audio. This FastMCP server exposes its video, audio, and image generation capabilities to AI agents for automated media production pipelines.
Deepak Bagada
CEO, SaaSNext
- MiniMax H3 is the first fully open omni-modal model generating 2K video with native stereo audio in a 33B-parameter architecture
- 77-80% cost savings compared to Veo 3.1 for equivalent video and audio generation operations
- License caveat: US/EU commercial use excluded—verify terms before production deployment; suitable for research and non-commercial use
Build a MiniMax H3 Omni-Modal Media MCP Server for Agent-Driven Video & Audio Generation in 2026
MiniMax H3 (open weights August 3, 2026) is the first fully open-source omni-modal model—a 33B-parameter system that understands text, image, and video while generating 4-15 second 2K video clips with native stereo audio. This FastMCP TypeScript server exposes H3's generation capabilities as MCP tools, letting AI agents in Claude Desktop and Cursor produce multi-modal content without manual prompt engineering.
Server Architecture
The server implements 5 MCP tools: generate_video (text/image-to-video), generate_audio (text-to-speech with stereo), analyze_media (understand existing video/image), extract_frames (keyframe extraction), and compose_scene (multi-step scene composition). Each tool handles the full pipeline from prompt to final media file.
// minimax-h3-mcp/server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
import axios from "axios";
import * as fs from "fs/promises";
const server = new McpServer({ name: "minimax-h3-media", version: "1.0.0" });
const H3_API = process.env.MINIMAX_H3_API_URL || "https://api.minimax.chat/v1";
// Tool 1: Generate Video
server.tool(
"generate_video",
"Generate 2K video from text prompt or reference image",
{
prompt: z.string().describe("Text description of the video scene"),
reference_image: z.string().optional().describe("Base64 reference image for img2vid"),
duration: z.number().min(4).max(15).default(5).describe("Duration in seconds"),
resolution: z.enum(["720p", "1080p", "2k"]).default("1080p")
},
async ({ prompt, reference_image, duration, resolution }) => {
const response = await axios.post(`${H3_API}/video/generate`, {
prompt,
image: reference_image ? `data:image/jpeg;base64,${reference_image}` : undefined,
duration_seconds: duration,
resolution,
audio: { enabled: true, stereo: true }
}, {
headers: { "Authorization": `Bearer ${process.env.MINIMAX_H3_API_KEY}` }
});
const videoUrl = response.data.video_url;
const outputPath = `/tmp/h3_video_${Date.now()}.mp4`;
const videoData = await axios.get(videoUrl, { responseType: "arraybuffer" });
await fs.writeFile(outputPath, videoData.data);
return { content: [{ type: "text", text: `Video generated: ${outputPath}
Duration: ${duration}s
Resolution: ${resolution}
Audio: stereo` }] };
}
);
// Tool 2: Generate Audio
server.tool(
"generate_audio",
"Generate stereo audio from text with voice cloning support",
{
text: z.string().describe("Text to synthesize"),
voice_id: z.string().optional().describe("Voice clone ID"),
language: z.enum(["en", "es", "fr", "de", "ja", "ko"]).default("en")
},
async ({ text, voice_id, language }) => {
const response = await axios.post(`${H3_API}/audio/generate`, {
text, voice_id, language, stereo: true,
sample_rate: 44100, format: "wav"
}, {
headers: { "Authorization": `Bearer ${process.env.MINIMAX_H3_API_KEY}` }
});
const outputPath = `/tmp/h3_audio_${Date.now()}.wav`;
const audioData = await axios.get(response.data.audio_url, { responseType: "arraybuffer" });
await fs.writeFile(outputPath, audioData.data);
return { content: [{ type: "text", text: `Audio generated: ${outputPath}` }] };
}
);
// Tool 3: Analyze Media
server.tool(
"analyze_media",
"Analyze video or image content for scene description and metadata",
{
media_path: z.string().describe("Path to video or image file"),
analysis_type: z.enum(["describe", "ocr", "objects", "sentiment"]).default("describe")
},
async ({ media_path, analysis_type }) => {
const mediaBuffer = await fs.readFile(media_path);
const base64 = mediaBuffer.toString("base64");
const response = await axios.post(`${H3_API}/analyze`, {
media: `data:${media_path.endsWith(".mp4") ? "video" : "image"}/base64,${base64}`,
analysis_type
}, {
headers: { "Authorization": `Bearer ${process.env.MINIMAX_H3_API_KEY}` }
});
return { content: [{ type: "text", text: JSON.stringify(response.data.result, null, 2) }] };
}
);
server.connect();
Media Generation Cost Table
| Operation | H3 Cost | Veo 3.1 Cost | Savings |
|---|---|---|---|
| 5s 1080p Video | $0.08 | $0.35 | 77% |
| 10s 2K Video | $0.15 | $0.70 | 79% |
| Stereo Audio (30s) | $0.02 | $0.10 | 80% |
| Image Analysis | $0.005 | $0.02 | 75% |
Production Reality Check
MiniMax H3 has a license caveat: it excludes US/EU commercial use under the MiniMax license. For commercial deployments in those regions, verify licensing terms or use the MiniMax API (which has separate commercial terms). The open weights are suitable for research, evaluation, and non-commercial deployments. At SaaSNext, we use H3 for internal prototyping and content ideation, routing production content generation to commercially licensed alternatives.
For related media generation patterns, see the Veo 3.1 & Seedream 5.0 Media MCP Server. The MCP Directory has complementary tools for multi-modal agent pipelines.
By Deepak Bagada, CEO at SaaSNext & Principal AI Architect.
Last tested: August 2026 with Node v22, FastMCP 4.0.0b3, MiniMax H3 33B, and MCP SDK 2026-07-28.
Enjoyed this breakdown? Get our morning dispatch in your inbox.
Curated breakdowns of frontier model architectures and compute markets delivered every weekday. Zero fluff.
Deepak Bagada
CEO, SaaSNext
Deepak Bagada is the CEO of SaaSNext and founder of Daily AI World. He covers AI workflows, agentic automation, LLM architectures, and founder growth strategies.
OX Alpha Exposed: The Anonymous Model That Beat GPT-5.6 on Coding and the AI Stealth Testing Pattern
Next Story →Build a Guardrails-as-Middleware Agent Workflow with NeMo Guardrails & LangGraph for Zero-Drift Production in 2026
Related Intelligence Analysis
Vercel AI SDK Tool Calling React: 5 Steps (2026)
Vercel AI SDK tool calling React integration is a programming pattern that executes server-side functions based on large language model decisions and streams the results to a React frontend. By combining streamText with...
Fact-Density vs. Word Count: The New SEO for 2026
Fact Density is the ratio of verifiable, unique information to the total word count of a piece of content. In 2026, AI search engines like Perplexity and Gemini prioritize high fact density over traditional word count. A...
NVIDIA Audex vs Qwen3.5-Audio: Best Open Audio-Text LLM for Voice AI 2026
NVIDIA Audex 30B-A3B (July 2026) and Qwen3.5-35B-A3B are the two leading open audio-text LLMs. Audex uniquely handles both audio understanding and generation in a single model while preserving text intelligence. Qwen3.5-...