Menivor
Create short-form vertical reels and ads, check pricing, and get your finished MP4 from Menivor.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"menivor": {
"url": "https://menivor.com/api/mcp"
}
}
}Remote endpoints
https://menivor.com/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟡create_reel(subject, script, language, aspect, voice_name, ...)
Start rendering a vertical short-form reel. Uses one reel credit per variant, reserved at start and released if the render fails. Returns job_id; poll it with get_job.
Input Schema
{
"type": "object",
"properties": {
"subject": {
"type": "string",
"description": "What the reel is about (the topic or hook)",
"maxLength": 500
},
"script": {
"type": "string",
"description": "Optional narration script; generated from the subject when omitted",
"maxLength": 5000
},
"language": {
"type": "string",
"description": "Script language code, e.g. en or tr; defaults to auto",
"maxLength": 8
},
"aspect": {
"type": "string",
"enum": [
"9:16",
"16:9",
"1:1"
],
"description": "Output aspect ratio; defaults to 9:16"
},
"voice_name": {
"type": "string",
"description": "Voice id from GET /voices",
"maxLength": 128
},
"avatar_id": {
"type": "string",
"description": "Avatar presenter id from GET /avatars",
"maxLength": 128
},
"screen_recording_key": {
"type": "string",
"description": "Key of an uploaded screen recording you own",
"maxLength": 512
},
"caption_style": {
"type": "string",
"description": "Caption style id",
"maxLength": 64
},
"variants": {
"type": "integer",
"minimum": 1,
"maximum": 3,
"description": "Render 1 to 3 variants; each uses one credit"
}
},
"required": [
"subject"
],
"additionalProperties": false
}🟢get_job(job_id)
Read a reel job's state, progress and, once finished, its download URL.
Input Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"description": "Job id returned by create_reel"
}
},
"required": [
"job_id"
],
"additionalProperties": false
}🟢ad_from_url(url, title, language, render, formats, ...)
Extract a product from a URL and draft ad angles as an Ad Studio project. With render=true, also renders ad variants for every angle in the chosen formats and aspects.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Product or landing page URL",
"maxLength": 2048
},
"title": {
"type": "string",
"description": "Optional project title",
"maxLength": 200
},
"language": {
"type": "string",
"description": "Ad language code, e.g. en",
"maxLength": 5
},
"render": {
"type": "boolean",
"description": "Render variants right away (uses credits)"
},
"formats": {
"type": "array",
"items": {
"type": "string",
"enum": [
"showcase",
"before_after",
"ugc_avatar"
]
},
"description": "Ad formats to render"
},
"aspects": {
"type": "array",
"items": {
"type": "string",
"enum": [
"9:16",
"16:9",
"1:1"
]
},
"description": "Aspect ratios to render"
},
"avatar_id": {
"type": "string",
"description": "Avatar presenter id; required for the ugc_avatar format",
"maxLength": 64
}
},
"required": [
"url"
],
"additionalProperties": false
}🟡schedule_publish(job_id, platforms, scheduled_at, youtube_privacy_status)
Schedule a finished reel to auto-publish to connected TikTok, Instagram or YouTube Shorts accounts at a future UTC time.
Input Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"description": "A completed reel job id"
},
"platforms": {
"type": "array",
"items": {
"type": "string",
"enum": [
"tiktok",
"instagram",
"youtube_shorts"
]
},
"minItems": 1
},
"scheduled_at": {
"type": "string",
"format": "date-time",
"description": "Future ISO-8601 UTC time"
},
"youtube_privacy_status": {
"type": "string",
"enum": [
"private",
"unlisted",
"public"
]
}
},
"required": [
"job_id",
"platforms",
"scheduled_at"
],
"additionalProperties": false
}🟢list_scheduled
List your scheduled publishes and their status.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢get_performance(job_id, limit)
Read logged performance (views, likes, retention) for one reel with job_id, or your most recent logged reels without it.
Input Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"description": "Optional reel job id"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Rows when listing; default 20"
}
},
"additionalProperties": false
}🟢generation_quote(profile, stages, max_cost_usd)
Get a signed price quote before generating: name a generation profile, or map pipeline stages to catalog model ids. Optionally cap the budget.
Input Schema
{
"type": "object",
"properties": {
"profile": {
"type": "string",
"description": "Generation profile slug",
"maxLength": 128
},
"stages": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Stage to catalog model id, e.g. {\"voice\": \"elevenlabs/multilingual-v2\"}"
},
"max_cost_usd": {
"type": "string",
"description": "Budget cap as a decimal USD string, e.g. \"2.50\""
}
},
"additionalProperties": false
}🟢wallet_balance
Read your Menivor wallet: available and reserved balance in USD.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_media_models(modality)
List Menivor's image, video and audio generation models with their integer micro-USD prices (per image, per second of video, or per audio clip).
Input Schema
{
"type": "object",
"properties": {
"modality": {
"type": "string",
"enum": [
"image",
"video",
"audio"
]
}
},
"additionalProperties": false
}Community
Evidence