MnogoReels
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Turn long videos into captioned vertical shorts, transcripts and articles with MnogoReels.
| Author | ru.mnogo-reels |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 666 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"MnogoReels": {
"url": "https://mcp.mnogo-reels.ru/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (19)
get_accountread-onlyChecks whether the configured MnogoReels API key works and shows this server's settings. Read-only and free; works without a key. Use it first when other tools fail with an authentication error, or when the user asks which account or mode is active. It does not change anything. Returns authenticated (true or false), a masked key hint (last 4 characters only), the API URL, the server version and transport, the active profile, enabled toolsets, whether read-only mode is on, the per-call credit cap if one is set, and links for managing keys and credits. The credit balance itself is not available through the API; the user can see it on mnogo-reels.ru.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_options_guideread-onlyExplains the option values accepted by create_clip_job and recut_clip_job: video modes, clip lengths, caption styles, hook styles, story arc styles, outros, framing and languages, plus the pricing rules and the 30-minute limit per job. Read-only and free; works without an API key and makes no network calls. Use it when the user asks what a style looks like, which mode fits their video, or how much processing costs. topic selects one section; all returns everything.
Parameters:
topic— string — Which section to return.
Hints: read-only yes · destructive no · idempotent yes · open-world no
check_video_sourceread-onlyChecks whether MnogoReels can download a video link and returns its title, length and platform. Free: spends no credits and creates no job. Use it to answer "is this link usable?" or "how long is this video?" without pricing anything (private, removed, region-locked, audio-only or very large sources fail). To price a job call quote_clip_job directly: it runs the same check. Do not use it for existing jobs; use get_clip_job instead. Supports YouTube, VK Video, RuTube, Dzen, Twitch, Yandex Disk and Google Drive file links, and direct links to .mp4, .mov, .mkv or .webm files. Local files are not supported: the user must upload the file somewhere public first. Returns downloadable (true or false), reason when not downloadable (audio_only, too_large, unavailable), duration_sec (null when the platform does not report it, which is typical for direct file links), title, thumbnail_url and platform. Usually takes 2 to 15 seconds, occasionally up to 45.
Parameters:
source_url(required) — string — Public link to the video: YouTube, VK Video, RuTube, Dzen, Twitch, Yandex Disk file, Google Drive file, or a direct .mp4/.mov/.mkv/.webm link. Local files are not supported.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
quote_clip_jobread-onlyCalculates the credit cost of create_clip_job or recut_clip_job without spending anything, and checks that MnogoReels can download the video. Free and read-only. Price: 1 credit per started minute of the processed range (end_sec minus start_sec), minimum 1. Options such as caption style, hooks, B-roll or music do not change the price. One job processes at most 30 minutes; for longer videos quote several ranges with start_sec and end_sec. Without start_sec and end_sec the whole video is priced, so its length must be known; this tool looks it up. Pass source_url to price a new video, or job_id to price a recut of an existing clip job. A recut without start_sec and end_sec reuses the original job's range, which the API does not reveal; the quote is then an upper bound (the whole source video) and credits_exact is false. Show the credits to the user and get their agreement before calling create_clip_job or recut_clip_job with max_credits of at least this amount. Returns credits, credits_exact, billed_seconds, the resolved start_sec and end_sec, the platform, whether the video can be downloaded, the source title and length, and a note about failed jobs. If the length cannot be determined (typical for direct file links), the error explains how to pass end_sec yourself.
Parameters:
job_id— string — Existing clip job to price a recut for. Give either source_url or job_id.end_sec— number — End of the part to process, in seconds. Default: the end of the video (its length is looked up automatically when the platform reports it). At most 30 minutes after start_sec.start_sec— number — Start of the part to process, in seconds from the beginning. Default 0.source_url— string — Public link to the video: YouTube, VK Video, RuTube, Dzen, Twitch, Yandex Disk file, Google Drive file, or a direct .mp4/.mov/.mkv/.webm link. Local files are not supported.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
create_clip_jobdestructiveStarts AI clipping of a long video into vertical 9:16 short clips with burned-in captions and a hook title, plus optional cold-open hooks, music and B-roll. Spends credits: 1 per started minute of the processed range (minimum 1), charged when the job is created. One job processes at most 30 minutes of video; split longer videos with start_sec and end_sec. Jobs cannot be cancelled. Before calling, run quote_clip_job, show the price to the user and get explicit agreement. max_credits is required; the call is refused without charging if the price is higher. Some clients also ask the user to confirm. If the same request was already submitted with this API key in the last 10 minutes, that job is returned instead of charging again. Use for turning a podcast, stream, interview, lecture or vlog into Shorts, Reels or TikTok clips. Not for: transcripts only (create_transcription), changing the look of an existing job (recut_clip_job), or re-running a failed job for free (retry_clip_job). Key parameters: source_url (public link; local files are not supported), start_sec and end_sec to process only part of the video, video_mode (podcast for talking heads), clip_length, caption_style, language (omit to auto-detect) and prompt to steer which moments are picked. Call get_options_guide to explain option values. Returns job_id right away with status queued and the credits charged. Processing takes a few minutes for short videos and up to tens of minutes for a full 30-minute range; clips appear one by one. Next, call get_clip_job with wait_sec=50 until the status is completed or failed. If processing fails, credits are not returned automatically: retry_clip_job re-runs the job for free, or the user can contact [email protected] with the job_id. On the free plan clip files are kept for 30 days.
Parameters:
source_url(required) — string — Public link to the video: YouTube, VK Video, RuTube, Dzen, Twitch, Yandex Disk file, Google Drive file, or a direct .mp4/.mov/.mkv/.webm link. Local files are not supported.max_credits(required) — integer — Spending limit for this call in credits. Required. Use the credits value from quote_clip_job after the user agreed; the call is refused without charging if the price (or its upper bound) is higher.outro— string — Ending added to every clip: default branded outro, soon/like short Russian text cards, custom = your saved outro image.emojis— boolean — Add emojis to captions where they fit.prompt— string — What kind of moments to pick, in plain words, e.g. 'funny moments about money'.end_sec— number — End of the part to process, in seconds. Default: the end of the video (its length is looked up automatically when the platform reports it). At most 30 minutes after start_sec.framing— string — auto = smart crop; full_frame = keep the whole wide frame on a blurred background; portrait_only = always crop to the subject.language— string — Two-letter language code of the speech, e.g. en or ru. Omit to auto-detect. Never pass 'auto'.add_music— boolean — Add quiet background music from the MnogoReels library.cold_open— boolean — Start each clip with its strongest moment as a teaser, and also produce standalone hook clips and a looped teaser.smart_cut— boolean — Remove pauses and filler words inside clips. Works only with video_mode podcast (general-beta always does it); ignored for other modes.start_sec— number — Start of the part to process, in seconds from the beginning. Default 0.hook_style— string — Style of the hook title shown at the start of each clip; none hides it.video_mode— string — How the video was filmed: general, podcast (talking heads), general-beta (SmartCut: removes pauses and filler words), stream (screen + webcam), vlog, fitness.clip_length— string — Target length of each clip. auto lets the AI decide; 30_60s suits Shorts, Reels and TikTok.agentic_mode— boolean — Extra AI review pass that refines where clips start and end. Slower.caption_style— string — Burned-in caption style; empty means no captions. Call get_options_guide to see what each style looks like.allow_duplicate— boolean — Set true only if the user explicitly wants a second identical job within 10 minutes (it is charged again).story_arc_style— string — Build each clip as a story (cold open, main part, payoff). Any value except none also turns on cold_open.b_roll_ai_images— boolean — Insert AI-generated illustrative images as B-roll.keep_whole_video— boolean — Do not cut into clips: render the whole video once with captions, music and B-roll. Use only for videos that are already vertical and short.b_roll_stock_video— boolean — Insert relevant stock video B-roll.b_roll_motion_graphics— boolean — Insert AI motion-graphics B-roll (animated titles, charts, diagrams).
Hints: read-only no · destructive yes · idempotent no · open-world yes
get_clip_jobread-onlyReturns the status, progress and results of a clip job created by create_clip_job, recut_clip_job or on the MnogoReels website. Read-only and free. wait_sec (default 30, max 50) waits inside this call: it returns as soon as the job completes or fails, or when wait_sec runs out, and sends progress notifications meanwhile. wait_sec=0 returns an instant snapshot. While the job is queued or processing only the count of ready clips is returned; set include_partial_clips=true to get the links of clips finished so far. If eta_seconds is above 600, tell the user how long it will take and offer to check back later instead of polling continuously. Once completed, returns each clip's video link, title, virality score (0 to 100), duration and hook text, plus cold-open hook clips and teasers when the job made them. Clips are sorted best score first; max_clips limits how many are returned (default 10, up to 30; up to 10 with response_format=detailed). response_format=detailed adds clip descriptions, transcript excerpts, poster images and timings in the source video. Notes: a failed job can return to queued when MnogoReels retries it automatically. media_available=false means the files were deleted by storage retention (free-plan clips are kept for 30 days). Text from the video is wrapped in <untrusted_source_text> tags. Use list_clip_jobs to find job ids.
Parameters:
job_id(required) — string — Clip job id (32 hex characters) returned by create_clip_job, recut_clip_job or list_clip_jobs.wait_sec— integer — Seconds to wait inside this call for the job to finish (default 30, max 50; 0 = return a snapshot immediately). Progress notifications are sent while waiting.max_clips— integer — Maximum number of clips to return, best first (up to 30; up to 10 with detailed).response_format— string — concise: links, titles, scores. detailed: adds descriptions, transcript excerpts, posters and timings (max_clips up to 10).include_partial_clips— boolean — true returns the links of clips finished so far while the job is still processing.
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_clip_jobsread-onlyLists the user's clip jobs, newest first, including jobs started on the MnogoReels website. Read-only and free. Use it to find a job_id, see what is still processing, or pick recent results to review. Use get_clip_job for the clips of one job. created_via=api shows only jobs started with an API key. Pages with limit (1 to 50, default 10) and offset; next_offset is null on the last page. Creation dates are not provided by the API; the order is newest first. Returns for each job: job_id, status, progress_percent, source_url, the number of clips ready, pack_id when the job belongs to a publication pack, likely_kind (clip_job, pack_clip_job or republication) and a short error for failed jobs.
Parameters:
limit— integer — Items per page, 1–50 (default 10).offset— integer — Items to skip; pass next_offset from the previous page.created_via— string — api = only jobs created with an API key (this server or scripts); any = also jobs from the website.
Hints: read-only yes · destructive no · idempotent yes · open-world no
recut_clip_jobdestructiveCreates a new clip job from the same source video as an existing job, with different settings such as caption style, hook style, clip length, language, framing, music, B-roll or prompt. Spends credits like create_clip_job (1 per started minute of the billed range, minimum 1, at most 30 minutes per job) and returns a new job_id; the original job and its clips stay unchanged. Before calling, run quote_clip_job with job_id, show the price, get the user's agreement and pass max_credits. Identical requests within 10 minutes return the existing recut instead of charging again. Without start_sec and end_sec the recut reuses the original job's range and is billed for it; the API does not reveal that range, so the quote is an upper bound (the whole source video, which must then be at most 30 minutes long). By default the same moments are re-rendered with the new look, which is faster because the source is cached; this works only when the range equals the original job's range. Set new_moments=true to let the AI pick different moments. Only the settings you pass change; everything else (including the original outro and whole-video mode) is inherited from the original job. Works for completed and failed clip jobs, not for jobs that are still running. To re-run a failed job with the same settings for free, use retry_clip_job. Next, call get_clip_job with the new job_id and wait_sec=50.
Parameters:
job_id(required) — string — Clip job to recut.max_credits(required) — integer — Spending limit for this call in credits. Required. Use the credits value from quote_clip_job after the user agreed; the call is refused without charging if the price (or its upper bound) is higher.outro— string — Ending added to every clip: default branded outro, soon/like short Russian text cards. Omit to keep the original job's outro (including a custom one).emojis— boolean — Add emojis to captions where they fit.prompt— string — What kind of moments to pick, in plain words, e.g. 'funny moments about money'.end_sec— number — End of the part to process, in seconds. Default: the end of the video (its length is looked up automatically when the platform reports it). At most 30 minutes after start_sec.framing— string — auto = smart crop; full_frame = keep the whole wide frame on a blurred background; portrait_only = always crop to the subject.language— string — Two-letter language code of the speech, e.g. en or ru. Omit to auto-detect. Never pass 'auto'.add_music— boolean — Add quiet background music from the MnogoReels library.cold_open— boolean — Start each clip with its strongest moment as a teaser, and also produce standalone hook clips and a looped teaser.smart_cut— boolean — Remove pauses and filler words inside clips. Works only with video_mode podcast (general-beta always does it); ignored for other modes.start_sec— number — Start of the part to process, in seconds from the beginning. Default 0.hook_style— string — Style of the hook title shown at the start of each clip; none hides it.video_mode— string — How the video was filmed: general, podcast (talking heads), general-beta (SmartCut: removes pauses and filler words), stream (screen + webcam), vlog, fitness.clip_length— string — Target length of each clip. auto lets the AI decide; 30_60s suits Shorts, Reels and TikTok.new_moments— boolean — true = the AI picks different moments; false = same moments with the new look.agentic_mode— boolean — Extra AI review pass that refines where clips start and end. Slower.caption_style— string — Burned-in caption style; empty means no captions. Call get_options_guide to see what each style looks like.allow_duplicate— boolean — Set true only if the user explicitly wants a second identical job within 10 minutes (it is charged again).story_arc_style— string — Build each clip as a story (cold open, main part, payoff). Any value except none also turns on cold_open.b_roll_ai_images— boolean — Insert AI-generated illustrative images as B-roll.b_roll_stock_video— boolean — Insert relevant stock video B-roll.b_roll_motion_graphics— boolean — Insert AI motion-graphics B-roll (animated titles, charts, diagrams).
Hints: read-only no · destructive yes · idempotent no · open-world no
retry_clip_jobRe-runs a failed clip job with the same settings, free of charge, keeping the same job_id. Use it when get_clip_job shows status failed, for example after a temporary download or rendering error. It refuses jobs that are queued or processing (wait for them) and completed jobs (re-running would replace their clips; use recut_clip_job for a new variant instead). If the same source keeps failing, it probably cannot be processed: check it with check_video_source or try another link. Returns the job with status queued. Next, call get_clip_job with wait_sec=50.
Parameters:
job_id(required) — string — Clip job id (32 hex characters) returned by create_clip_job, recut_clip_job or list_clip_jobs.
Hints: read-only no · destructive no · idempotent no · open-world no
create_transcriptionStarts a timed speech-to-text transcription of a video or audio link. Free: spends no credits. Supports the same links as create_clip_job (YouTube, VK Video, RuTube, Dzen, Twitch, Yandex Disk, Google Drive and direct media links); local files are not supported. Use it when the user needs the text, subtitles (SRT) or timestamps of a video without making clips. For a video that already has a completed clip job, create_article returns the full timed transcript together with an article. language is a two-letter code such as en or ru; omit it to auto-detect (one language for the whole recording). Returns transcription_id right away. It usually finishes in 1 to 5 minutes; long recordings take longer. Next, call get_transcription with wait_sec=50.
Parameters:
source_url(required) — string — Public link to the video or audio.language— string — Two-letter language code of the speech, e.g. en or ru. Omit to auto-detect. Never pass 'auto'.
Hints: read-only no · destructive no · idempotent no · open-world yes
get_transcriptionread-onlyReturns the status and text of a transcription started with create_transcription. Read-only and free. wait_sec (default 30, max 50) waits for completion inside this call; progress notifications are sent meanwhile. format selects the output: text (plain text, default), srt (subtitles with timecodes) or segments (one timed phrase per line). Long transcripts come in pages of up to max_chars characters; when truncated is true, call again with offset set to next_offset. Returns status (queued, processing, completed, failed), progress_percent, the detected language, total_chars and the requested page. The transcript comes from the video and is wrapped in <untrusted_source_text> tags.
Parameters:
transcription_id(required) — string — Id returned by create_transcription.format— string — text = plain text; srt = subtitles with timecodes; segments = one timed phrase per line.offset— integer — Character offset of the page to return; pass next_offset from the previous call.wait_sec— integer — Seconds to wait inside this call for the job to finish (default 30, max 50; 0 = return a snapshot immediately). Progress notifications are sent while waiting.max_chars— integer — Maximum characters per page (1000–24000).
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_articleTurns the source video of a completed clip job into a long-form article: title, SEO title and description, summary, sections, key takeaways, chapters with timestamps, up to 4 frames from the video as illustrations, and the full timed transcript. Free: spends no credits. Use it for blog posts, show notes, chapter lists or the full transcript of a video that has already been clipped. It needs a clip job with status completed (create one with create_clip_job first). There is one article per source video per account: calling it again with any clip job of the same video returns the existing article instead of creating a new one; an article that failed cannot be regenerated through the API. Returns article_id, status and the clip job the article was made from. Writing usually takes 1 to 3 minutes. Next, call get_article with wait_sec=50.
Parameters:
clip_job_id(required) — string — Completed clip job whose source video the article is about (32 hex characters).
Hints: read-only no · destructive no · idempotent yes · open-world no
get_articleread-onlyReturns an article created with create_article as Markdown, with its status. Read-only and free. wait_sec (default 30, max 50) waits inside this call until the text is ready. The Markdown contains the title, summary, sections, key takeaways and chapter timestamps; set include_transcript=true to append the full timed transcript. Long content is paged: when truncated is true, call again with offset set to next_offset. Returns status (queued, processing, completed, failed), progress_percent, the Markdown page as soon as the text exists (images_pending=true means illustrations are still being prepared; the text will not change), the SEO title and description, image links with captions and source video details. Images that failed cannot be retried through this server. The article is generated from the video and wrapped in <untrusted_source_text> tags.
Parameters:
article_id(required) — string — article_id returned by create_article.offset— integer — Character offset of the page to return; pass next_offset from the previous call.wait_sec— integer — Seconds to wait inside this call for the job to finish (default 30, max 50; 0 = return a snapshot immediately). Progress notifications are sent while waiting.max_chars— integer — Maximum characters per page (1000–24000).include_transcript— boolean — true appends the full timed transcript (paged).
Hints: read-only yes · destructive no · idempotent yes · open-world no
search_brollread-onlySearches B-roll videos and images. catalog=mine searches the user's own library (stock clips, AI images and motion graphics created for their past clip jobs) and returns temporary download links. catalog=shared searches the public MnogoReels stock catalog of about 5,000 reviewed items and returns titles, tags, previews and a website link; shared items are downloaded on the website. Read-only and free. query matches whole words in titles, descriptions and tags (no stemming); omit it to list the newest items. kind filters image, video or motion. Pages with limit (1 to 50, default 10) and cursor from next_cursor. Media links expire after 15 minutes; call get_broll_asset for fresh ones. Titles, descriptions, tags and attribution come from videos and stock providers and are wrapped in <untrusted_source_text> tags.
Parameters:
catalog(required) — string — mine = your own B-roll; shared = public stock catalog.kind— string — image, video or motion (motion graphics); omit for all.limit— integer — Items per page, 1–50 (default 10).query— string — Whole words matched in titles, descriptions and tags (no stemming); omit to list the newest items.cursor— string — next_cursor from the previous page.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_broll_assetread-onlyReturns one B-roll item by asset_id with fresh links. Read-only and free; needs an API key. Use it right before downloading an item found with search_broll, because catalog=mine download links expire after 15 minutes; to find items use search_broll instead. catalog must be the catalog the asset_id came from. For catalog=mine it returns media_url and poster_url, valid for links_expire_in_sec seconds. For catalog=shared it returns title, tags, a preview poster (videos only), attribution and web_url, because shared items are downloaded on the MnogoReels website. Text from videos and stock providers is wrapped in <untrusted_source_text> tags.
Parameters:
catalog(required) — string — The catalog the asset_id came from in search_broll: mine or shared.asset_id(required) — string — asset_id from search_broll (64 hex characters).
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_packsread-onlyLists the user's publication packs, newest first. A pack is made on the MnogoReels website from one video link and bundles clips, a transcript, suggested titles, descriptions and hashtags, YouTube thumbnails, an article and teasers. Read-only and free; packs cannot be created through the API. Pages with limit (1 to 50, default 10) and offset. Returns pack_id, status, progress, source_url, created_at, the status of each part and clip_job_id (use it with get_clip_job). Next, call get_pack for titles, hashtags, thumbnails and teasers.
Parameters:
limit— integer — Items per page, 1–50 (default 10).offset— integer — Items to skip; pass next_offset from the previous page.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_packread-onlyReturns one publication pack: suggested titles, descriptions, cover texts and hashtags, thumbnail images, teaser videos, the article id and the clip job id. Read-only and free. Set include_transcript=true to add the transcript, paged with offset and next_offset. Use get_clip_job with clip_job_id for the clips and get_article with article_id for the article. Text generated from the video is wrapped in <untrusted_source_text> tags.
Parameters:
pack_id(required) — string — pack_id from list_packs (32 hex characters).offset— integer — Character offset of the page to return; pass next_offset from the previous call.max_chars— integer — Maximum characters per page (1000–20000).include_transcript— boolean — true adds the transcript (paged with offset and max_chars).
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_youtube_thumbnailsGenerates 1 to 4 AI YouTube thumbnail images (1280×720 JPEG) for a video, using frames from the video plus an optional title and art direction. Free: spends no credits, but every variant is a separate AI image generation, so ask for more than one only when the user wants options. Parameters: source_url (link to the video), language of the text on the thumbnail (required; match the title or the video), title (text to place on the thumbnail, up to 120 characters), prompt (art direction, up to 1000 characters), style (auto, bold, cinematic, minimal, news, gaming) and variants (1 to 4, default 1). Returns thumbnail_job_id right away. It usually finishes in 1 to 2 minutes. Next, call get_youtube_thumbnails with wait_sec=50.
Parameters:
source_url(required) — string — Public link to the video: YouTube, VK Video, RuTube, Dzen, Twitch, Yandex Disk file, Google Drive file, or a direct .mp4/.mov/.mkv/.webm link. Local files are not supported.language(required) — string — Two-letter language of the text on the thumbnail, e.g. en; match the title or the video.style— string — auto, bold, cinematic, minimal, news or gaming.title— string — Text printed on the thumbnail, ≤120 characters; omit to let the AI write it.prompt— string — Art direction, e.g. "surprised face, red arrow, dark background".variants— integer — Number of images, 1–4 (each is a separate AI generation).
Hints: read-only no · destructive no · idempotent no · open-world yes
get_youtube_thumbnailsread-onlyReturns the status and images of a thumbnail job started with create_youtube_thumbnails. Read-only and free; needs an API key. Jobs cannot be listed, so keep the thumbnail_job_id from create_youtube_thumbnails. wait_sec (default 30, max 50) waits inside this call until the job completes or fails, with progress notifications; wait_sec=0 returns a snapshot. Returns status (queued, processing, completed, failed), stage, progress_percent and the finished variants (1280×720 JPEG image link, width, height). If some variants failed, the rest are still returned.
Parameters:
thumbnail_job_id(required) — string — thumbnail_job_id returned by create_youtube_thumbnails.wait_sec— integer — Seconds to wait inside this call for the job to finish (default 30, max 50; 0 = return a snapshot immediately). Progress notifications are sent while waiting.
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.