Skip to main content
Glama

Server Details

AI video production for marketing and social media: script, scenes, voice-over, subtitles, music.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
ITtegasai/tegas-mcp
GitHub Stars
0
Server Listing
Tegas MCP Server
ChatGPT
–
Claude
–

TDQS

A4.4/5.0

Scored across 12 tools

Disambiguation5/5

Each tool maps to a distinct resource+action: write_scenario (planning), find_heroes vs draw_heroes (free brief vs paid render), upload_music vs upload_reference (distinct media), start_video vs edit_video (create vs mutate). The only mild overlap is video_status vs wait_video, but the descriptions explicitly differentiate (single poll vs poll-until-done). An agent can reliably pick the right tool.

Naming Consistency4/5

All names share a clean 'tegas_' prefix and mostly follow verb_noun (start_video, edit_video, write_scenario, upload_music). A few deviate into noun-only or noun_noun forms (tegas_account, tegas_voices, tegas_video_status), which are minor inconsistencies but still readable and predictable.

Tool Count5/5

12 tools sit comfortably in the well-scoped range, and each earns its place by covering a distinct step in the video pipeline (account, scenario, heroes, uploads, render, poll, edit). Nothing is redundant or padded.

Completeness4/5

The surface covers the full create-render-poll-edit-list lifecycle with rich edit operations (scenes, voice, subtitles, music, volumes, watermark). Minor gaps exist: no cancel-render, no delete-video, and no explicit get-single-video beyond status, but the core workflow is complete.

Publisher details

Operator
Tegas · Publisher source
Operator website
https://tegas.ai
Vendor relationship
First-party
Documentation
Unknown
Trust center
Not available
Restrictions
Paid Tegas plan required: video generation and hero sheets spend tokens from the account balance. Scenario writing, voices and account tools work without spending tokens.

Available Tools

12 tools
tegas_accountAccount and pricesA
Read-only
Inspect

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.

Inputs: no named parameters. Returns: object

tegas_draw_heroesDraw hero sheetsAInspect

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.

Inputs: items (required), scenario_id (required), confirm, idempotency_key, +1 more. Returns: object

tegas_edit_videoEdit a finished videoA
Destructive
Inspect

Paid: each re-voiced scene costs tokens like a normal generation (about 10 T per scene voice-over); scene clip, subtitle, music and volume changes alone are not charged; a failed edit is refunded. 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"|"tr"} -
  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 or edit_in_progress (the edit was NOT accepted) - wait for
status completed (tegas_wait_video) and try again, do not retry immediately in a loop.

Inputs: video_id (required), music, voice, scenes, +3 more. Returns: object

tegas_find_heroesFind recurring heroesAInspect

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.

Inputs: scenario_id (required), style. Returns: object

tegas_list_videosList recent videosA
Read-only
Inspect

Free. The user's most recent videos (newest first, limit 1..100) with status, file_url, price_tokens, quality and scenario_id.

Inputs: limit. Returns: object

tegas_start_videoStart a videoAInspect

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.

Inputs: music, voice, confirm, quality, +8 more. Returns: object

tegas_upload_musicUpload a music trackAInspect

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.

Inputs: label, file_path, audio_base64. Returns: object

tegas_upload_referenceUpload a reference imageAInspect

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.

Inputs: label, file_path, image_base64. Returns: object

tegas_video_statusCheck video statusA
Read-only
Inspect

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).

Inputs: video_id (required). Returns: object

tegas_voicesList voicesA
Read-only
Inspect

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.

Inputs: language. Returns: object

tegas_wait_videoWait for a videoA
Read-only
Inspect

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.

Inputs: video_id (required), timeout_sec. Returns: object

tegas_write_scenarioWrite a scenarioAInspect

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.

Inputs: idea (required), aspect, category, language, +2 more. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.