servers / tegas

Tegas MCP server

communitystreamable_httpremotewrite capablehealthy

Write, generate and edit short AI videos with voice-over, subtitles and music.


01Tools · 12

How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.

ToolRiskSide effectsApproval
tegas_account
Free. Account overview: token balance, whether a plan is active, rate limits and the current price in tokens per second of video for each quality (480p/720p/1080p). Call this first to know the balance, and before starting a video to compute price = tokens_per_second[quality] * duration_sec. If plan.active is false, POST-type tools (scenario, heroes, video) will fail with no_active_plan: tell the user to activate a plan in the Tegas cabinet. If the balance is lower than a price, the start will fail with insufficient_tokens: tell the user to top up tokens in the cabinet.
unknownunknownunknown
tegas_draw_heroes
PAID. Draw hero sheets for the brief items chosen by `index` (from tegas_find_heroes, up to 3). Cost = price_each_tokens x number of items; pass price_each_tokens from tegas_find_heroes to avoid recomputing the brief. With confirm=false (default) nothing is drawn: the tool returns needs_confirmation=true and the price - show it to the user and ask for consent. Only after an explicit "yes" call again with confirm=true. Drawn sheets are attached to the scenario and used automatically by tegas_start_video with the same scenario_id. The result carries idempotency_key: if the call times out or fails with a network error, retry with the same idempotency_key - never start twice without it. On insufficient_tokens ask the user to top up; on no_active_plan ask them to activate a plan in the cabinet.
readfalseunknown
tegas_edit_video
Free (no tokens charged). Edit a finished video in place and rebuild it: this REPLACES the whole video end to end and typically takes a few minutes, the same as the original render - it is not a quick patch. Tell the user what you are about to change before calling this, then poll with tegas_wait_video (or tegas_video_status) after the call; do not call this again for the same video until the rebuild finishes. Pass at least one of the groups below; omit a group entirely to leave it untouched: - scenes: list of {"index": int, "voiceover_text"?: str, "subtitles_text"?: str, "video_url"?: str} - one entry per scene to change, each needs at least one of the three fields. - voice: {"id"?: str, "gender"?: "female"|"male", "language"?: "ru"|"en"|"es"|"fr"|"de"} - changing any of id/gender/language RE-VOICES EVERY SCENE that has voice-over text, not just the ones listed in `scenes`. - subtitles: {"enabled"?: bool, "style"?: "tiktok"|"phrases"|"contrast", "appearance"?: {"alignment"?, "font_size"?, "font_family"?, "text_color"? (hex "#RRGGBB"), "color_saturation"?}} - you cannot disable subtitles and set their style/appearance in the same call, that fails with 422 validation_error; disable them in one call and restyle in a later one. - music: {"enabled"?: bool, "url"?: str} - url must come from tegas_upload_music (or another public https URL). - volumes: {"voice"?: int, "music"?: int, "master"?: int} - each 0..100. - watermark: bool - the Tegas watermark on the finished video. Must be the ONLY change in the call, not combined with scenes/voice/subtitles/music/volumes: the renderer rebuilds the watermark through a separate step, so mixing it with other changes fails with 422 validation_error. Change the watermark in its own call. Returns video_id, status "processing" and edits_accepted - the list of groups that were actually applied (e.g. ["voice", "subtitles"], or ["watermark"] for a watermark-only edit). If the video is still rendering or being rebuilt from a previous edit, this fails with 409 video_busy - wait for status completed (tegas_wait_video) and try again, do not retry immediately in a loop.
writetrueunknown
tegas_find_heroes
Free (requires an active plan). Brief of recurring characters and the hero product of a scenario: up to 3 items with `index`, kind (character/object), name and an image prompt, plus price_each_tokens - the price of drawing one hero sheet. Hero sheets keep a character consistent across all episodes of the video. style: photorealistic | 3d_cartoon | 2d_animation | anime (omit to follow the scenario). Drawing is a separate paid step: tegas_draw_heroes.
readfalseunknown
tegas_list_videos
Free. The user's most recent videos (newest first, limit 1..100) with status, file_url, price_tokens, quality and scenario_id.
readfalseunknown
tegas_start_video
PAID. Start rendering a video from a Tessa scenario (scenario_id) or your own scenario_text - exactly one of them. Cost = tokens_per_second[quality] x duration_sec (see tegas_account); pass duration_sec returned by tegas_write_scenario so the quote is exact. With confirm=false (default) nothing is started: the tool returns needs_confirmation=true with the price and the balance - show them to the user and ask for consent. Only after an explicit "yes" call again with confirm=true; it then starts the render and returns video_id with status queued plus the idempotency_key used. If the call times out or fails with a network error, retry with the same idempotency_key (it makes the retry free of double charge); never start twice without it. Then call tegas_wait_video. quality 480p | 720p | 1080p; voice - id from tegas_voices (omit for the default); music, subtitles (style tiktok | phrases | contrast); reference_urls - product/character images; watermark - the Tegas watermark on the finished video, omit to keep the account default. Errors: insufficient_tokens -> ask the user to top up in the cabinet; no_active_plan -> ask them to activate a plan; rate_limited with details.active -> wait for a running video to finish.
readfalseunknown
tegas_upload_music
Free (requires an active plan). Upload one music track and get a `url` to reuse in tegas_edit_video's `music.url`. Give exactly one of audio_base64 or file_path. audio_base64 - the audio bytes as base64 (a `data:audio/mpeg;base64,...` URL is also accepted); this is the way for any remote agent, because the file never has to be public. file_path - a path on the FILESYSTEM OF THE MCP SERVER, so it only works for local / self-hosted runs where the server and the agent are on the same machine, and only when the server enables it (otherwise the tool answers with code local_files_disabled - then send audio_base64 instead). Formats mp3, wav, m4a, up to 25 MB. Bad input comes back as validation_error with details.reason, before anything is uploaded: one_source_required (gave both or neither), bad_base64, empty, not_audio, too_large; a file_path that cannot be read is file_not_readable, and a server that forbids local files answers with code local_files_disabled. label - a short note (e.g. "background track"), optional, kept to the first 120 characters. Returns music_id, the stored url, the label and expires_at. Pass the returned url in `music.url` of tegas_edit_video (and set `music.enabled` to true if music was off). Errors: no_active_plan -> ask the user to activate a plan in the cabinet.
writetrueunknown
tegas_upload_reference
Free (requires an active plan). Upload one reference image and get a `reference_id` to reuse: a product photo, a character, a brand shot. Give exactly one of image_base64 or file_path. image_base64 - the image bytes as base64 (a `data:image/png;base64,...` URL is also accepted); this is the way for any remote agent, because the image never has to be public. file_path - a path on the FILESYSTEM OF THE MCP SERVER, so it only works for local / self-hosted runs where the server and the agent are on the same machine, and only when the server enables it (otherwise the tool answers with code local_files_disabled - then send image_base64 instead). Formats jpeg, png, webp, heic, up to 10 MB, shorter side at least 360 px, longer at most 4096 px. Bad input comes back as validation_error with details.reason, before anything is uploaded: one_source_required (gave both or neither), bad_base64, empty, not_image, too_small, too_large_dimensions, too_large; a file_path that cannot be read is file_not_readable, and a server that forbids local files answers with code local_files_disabled. label - a short note (e.g. "hero", "product"), optional, kept to the first 120 characters. Returns reference_id, the stored url, the label and a model-written description. The reference expires together with scenarios (the server's scenario TTL, 7 days by default), so upload it again for a later video. Pass the returned reference_id in `reference_urls` of tegas_write_scenario or tegas_start_video - no public link needed. Errors: no_active_plan -> ask the user to activate a plan in the cabinet.
writetrueunknown
tegas_video_status
Free. Status of one video: queued | processing | completed | failed, progress 0..100, file_url when completed, error when failed (tokens are refunded automatically on failure).
readfalseunknown
tegas_voices
Free. List voice-over voices for a language (ru, en, es, fr, de). Each item has an `id` that can be passed as `voice` to tegas_start_video; when `voice` is omitted the default natural voice is used, so calling this is optional.
readfalseunknown
tegas_wait_video
Free. Wait for a video: polls the status every 10 s until completed (returns file_url), failed (returns error; tokens are refunded) or timeout_sec elapses (returns the last status with timed_out=true - call again to keep waiting). A 20-30 s video usually takes a few minutes.
readfalseunknown
tegas_write_scenario
Free (requires an active plan). Tessa writes a complete video scenario from an idea in one call, without asking questions. duration_sec 5..60, aspect 9:16 | 16:9 | 1:1. reference_urls: public image URLs of a product/character (or reference_id `ref_...`), optional. Returns scenario_id (valid for a few days), the scenario text, episodes with per-episode durations, warnings and the actual duration_sec (may differ from the requested one). Typical flow: tegas_write_scenario -> (optional) tegas_find_heroes / tegas_draw_heroes -> tegas_start_video with confirm=false to get the price -> user consent -> confirm=true -> tegas_wait_video. Keep the returned duration_sec: pass it to tegas_start_video for the quote. Show the scenario text to the user; call again with a refined idea if they want changes.
writetrueunknown

02Install & source
https://api.tegas.ai/mcp
remote_url

05Provenance & freshness
sourcesOfficial MCP Registry [p1]
last_checked2026-09-20 12:20Z
next_check2026-09-20 15:20Z
cadenceevery 3h
verifiedmetadata:passed handshake:skipped metadata:passed handshake:skipped metadata:passed handshake:skipped metadata:passed handshake:skipped metadata:passed handshake:skipped
index_statusindex8 unique facts >= 5

06Badge

Add the “as seen on MCPExplorer” badge to your README. Tegas MCP — as seen on mcpexplorer.com

[![Tegas MCP — as seen on mcpexplorer.com](https://mcpexplorer.com/badge/tegas.svg)](https://mcpexplorer.com/servers/tegas)

Next step

This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.

Explore loadouts →