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
Founder & Editor-in-Chief
- 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
Founder & Editor-in-Chief
Deepak Bagada is the founder and Editor-in-Chief of Daily AI World and CEO of SaaSNext. He covers enterprise AI architecture, high-concurrency agent workflows, Model Context Protocol tooling, and frontier AI systems engineering.
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
Stop the Burnout: Building an AI Employee Retention Monitor Guide
Build an AI Employee Retention Monitor with FastMCP in Python. Aggregate non-invasive workload telemetries, predict burnout scores, and prevent regretted turnover.
Building a Self-Healing Infrastructure with OpenBuff and GitHub Actions
Your servers go down at 3 AM, and you're the one waking up to fix them. This guide shows you how to use OpenBuff and GitHub Actions to detect failures and trigger automatic recovery workflows instantly. Stop manual resta...
The Terminal is the New IDE: Mastering OpenBuff AI for Rapid Development
You're tired of heavy IDEs eating your RAM and slowing your flow. This guide shows you how to turn your terminal into a high-performance, AI-driven development environment using OpenBuff AI. Stop context switching and st...