Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
check_balanceA

Get the current avots.ai token balance AND the FULL pricing catalog (welcome pack if eligible + all 5 monthly subscriptions: Starter €4.90 / Beginner €14.90 / Fullhouse €34.90 / Complete €69.90 / VIP €149.90). Free (no tokens consumed). Each plan row carries token amount + price + an auto-login checkout URL. When the user asks "сколько у меня?", "какие есть тарифы?", "what plans do you have?", or runs out of balance — return the FULL list verbatim from this tool. Do NOT search the web for our pricing — there is no public pricing page; this tool is the single source of truth. Quote every plan and its checkout URL so the user can compare and click any of them to subscribe in one tap.

list_modelsA

List all generation models currently available on avots.ai with their per-call cost in tokens. Free. Filter by category (chat|image|video|audio|search). Use this when the user asks "what models can you use" or before generate_image / generate_video to pick the right one.

list_avatarsA

List the user's SAVED avatars — reusable face identities, the visual equivalent of cloned voices. Free, no tokens. Returns [{id, name, image, voice}] where voice is the avatar's default cloned-voice name (may be empty). A saved avatar is a stored front-facing head-and-shoulders portrait that recurs IDENTICALLY across videos. Use it instead of describing a face in words: pass the avatar's NAME as avatar to generate_talking_avatar (reuses the exact same face every time, no per-call drift), or pass avatar:<id> as face_swap_video.face_image_url. Saved avatars are created in the avots app / Telegram (a generated talking-avatar can be saved) or via create_avatar.

create_avatarA

Save a reusable AVATAR (a face identity) so it can be reused by name across talking-avatar and face-swap videos (then it shows in list_avatars). Provide a name plus EITHER image_url (a ready front-facing head-and-shoulders portrait — FREE: stored + face-checked) OR portrait_prompt (the server GENERATES a portrait, ~200-500 tokens — two-step: call WITHOUT confirmed for a cost preview, then again with confirmed=true). Optional voice sets the avatar's default cloned voice (used automatically later). The image must show ONE person facing the camera; a full-body photo drags clothing into face-swaps. Returns {id, name, voice}. Same avatar store as the avots app / Telegram; limit 20 per account.

generate_imageA

Generate one or more images from a text prompt. Blocks 5-60 seconds (OR sync ~5-30s, Fal queue ~10-60s) and returns the image both as a native MCP image content block (base64) AND as a hosted URL. Cost ~200-500 tokens per image. Use for pictures, photos, illustrations, logos, posters, banners, art, avatars, etc. The image is ALREADY shown to the user by the MCP client — do NOT re-embed it as markdown ![](url) in your reply. On Claude.ai web specifically, a markdown image URL is rendered as a "Show Image" button (not an inline preview), so re-embedding actively makes the UX worse. Just describe / discuss the result in plain text; the user already sees the picture. If they ask for the link to download, quote the hosted URL as plain text (not as markdown image). User aliases to resolve when they say a model name: "nano banana"/"нано банана" → google/gemini-2.5-flash-image, "nano banana pro" → google/gemini-3-pro-image-preview, "nano banana 2" → google/gemini-3.1-flash-image-preview, "gpt-5 image"/"gpt image" → openai/gpt-5-image-mini, "flux"/"flux pro"/"флюкс" → fal:fal-ai/flux-pro/v1.1, "flux dev" → fal:fal-ai/flux/dev, "ideogram"/"идеограм" → fal:fal-ai/ideogram/v3, "recraft"/"рекрафт" → fal:fal-ai/recraft-v3. Models grouped by provider — pick by need: TEXT-IN-IMAGE → fal:fal-ai/ideogram/v3 (best typography), VECTOR / LOGO / POSTER → fal:fal-ai/recraft-v3, PHOTOREAL / MAX QUALITY → fal:fal-ai/flux-pro/v1.1 or google/gemini-3-pro-image-preview, FAST / CHEAP → google/gemini-2.5-flash-image (Nano Banana) or fal:fal-ai/flux/dev, SQUARE ONLY → openai/gpt-5-image-mini (server auto-swaps to Nano Banana on non-1:1 requests). Fal models (fal:* prefix) run through async queue but the tool blocks until the result is ready — caller does NOT need to poll check_job for images.

chatA

Send a prompt to ANY chat model on avots.ai (Claude, GPT, Gemini, DeepSeek, Sonar, etc.) and get the response. Useful when you (Claude in the MCP client) want to delegate a sub-task to a different model — e.g. "have GPT-5.5 Pro double-check this reasoning" or "ask DeepSeek R1 for a contrarian view". Cost ~10-1000 tokens depending on model + prompt size.

generate_videoA

Submit a video generation job. ASYNC — returns a job_id; the caller MUST poll check_job until status="completed". Cost is duration-based, roughly 200-5000 tokens depending on model+resolution. Supports image-to-video when image_url is provided (if no aspect_ratio is set and image_url points at an avots-hosted file, the server infers aspect from the source image dimensions). TWO-STEP FLOW (mirrors the Telegram bot UX — confirmation is REQUIRED before a video job is submitted, because video is the most expensive tool and the user must explicitly approve the spend): STEP 1 (preview) — call generate_video WITHOUT confirmed (or with confirmed=false). The tool does NOT submit anything, does NOT reserve any tokens. It returns the estimated cost for the selected model plus a sorted list of alternative video models with their prices for the same params. Show this list to the user, ask which model they want. STEP 2 (submit) — call generate_video again with the user-chosen model AND confirmed=true. Only then is the job submitted and tokens reserved. ON SUBMIT ERROR — the tool does NOT auto-switch to another model. It returns the error description plus the same alternatives-with-prices list so the user can pick a different one. Do NOT silently retry with a different model — always show the user the error + alternatives and let them choose. Typical wall-clock duration 1-8 minutes (provider queues vary — Seedance can sit queued 5+ min during peak). DO NOT give up before 10 minutes; do NOT tell the user the job failed unless check_job explicitly returns status="failed". User aliases: "seedance"/"сидэнс" → orv:bytedance/seedance-2.0, "seedance 1.5"/"seedance pro" → orv:bytedance/seedance-1-5-pro, "veo"/"veo 3.1"/"вео" → orv:google/veo-3.1, "veo fast" → orv:google/veo-3.1-fast, "kling"/"клинг" → orv:kwaivgi/kling-v3.0-pro, "sora"/"сора" → orv:openai/sora-2-pro, "grok imagine"/"грок" → orv:x-ai/grok-imagine-video. Two model families: • Fal.ai endpoints (prefix fal:) — Veo 3.1 (fal:fal-ai/veo3 / fal:fal-ai/veo3/fast), Kling 2.1 (fal:fal-ai/kling-video/v2.1/{standard|pro}), Sora. • OpenRouter Video endpoints (prefix orv:) — Seedance 2.0 (orv:bytedance/seedance-2.0, recommended for i2v character consistency), Seedance 1.5 Pro (cheapest with audio), Grok Imagine. Use for any user request involving video, animations, motion, clips, montages, ad creatives, social-media reels, or "make X come to life".

face_swap_videoA

Swap a face in a target VIDEO with a source face from a photo, keeping the original motion + scene (powered by fal-ai/pixverse). ASYNC — returns a job_id; the caller MUST poll check_job until status="completed". Cost is duration-based (per second of the target clip), roughly 500-2000 tokens. TWO-STEP FLOW (confirmation REQUIRED, like generate_video — this is an expensive job): STEP 1 (preview) call WITHOUT confirmed → returns the estimated cost, submits nothing, reserves nothing. STEP 2 (submit) call again with confirmed=true → submits the job and reserves tokens. IMPORTANT: the model has NO face-only mode and takes no text prompt — it transfers the whole person from the source photo, so for a clean result the FACE PHOTO must be a head-and-shoulders portrait. A full-body source photo will drag the clothing into the result. Tell the user this if their source looks full-body. Use for "put my face in this video", "face-swap this clip", "replace the actor's face", reaction/meme videos, etc.

generate_audioA

Generate music OR spoken voice / narration (fal:* models only). ASYNC — returns a job_id; the caller MUST poll check_job until status="completed" (usually 10-120s). Returns hosted MP3/WAV URLs on completion. Cost typically 50-800 tokens depending on model+duration. MUSIC models: fal:fal-ai/elevenlabs/music (default, vocal+instrumental), fal:fal-ai/musicgen, fal:fal-ai/stable-audio-25/text-to-audio, fal:fal-ai/ace-step. SPOKEN VOICE / TTS / narration: use model "fal:fal-ai/elevenlabs/tts/turbo-v2.5" and put the EXACT words to speak in prompt (read verbatim — do NOT add stage directions like "read warmly", just the text); pass voice to pick a preset (Aria, Sarah, Charlotte, Matilda, Roger, George, Charlie, Brian) or the user's OWN cloned voice by name — default Aria; auto-detects language (incl. Russian). NOTE: OpenAI/Google audio models (openai/gpt-audio*, google/lyria*) are NOT usable here — fal:* only. Avoid brand/copyright terms (e.g. "Pixar", "Disney") in music prompts — ElevenLabs Music rejects them with 422.

generate_talking_avatarA

Make a short video of a PORTRAIT speaking the user's text (a "talking avatar"). The server generates a front-facing portrait from your description, turns the text into speech (ElevenLabs TTS, auto-detects language incl. Russian), and lip-syncs the face to it. ASYNC — returns a job_id; the caller MUST poll check_job until status="completed" (lip-sync is SLOW — HD/OmniHuman can take several minutes; the fast tier ~1-2 min). Returns a hosted MP4 URL on completion. TWO-STEP FLOW (confirmation REQUIRED — this reserves tokens): STEP 1 (preview) call WITHOUT confirmed → returns the estimated cost (portrait + voice + lip-sync), submits nothing, reserves nothing. Show the cost, ask the user. STEP 2 (submit) call again with confirmed=true → generates the portrait, reserves tokens, and starts the render; returns the job_id. Cost typically 600-2500 tokens depending on tier + text length.

lipsync_videoA

Re-sync the lips in an existing talking VIDEO to NEW speech — video dubbing / re-voicing (powered by fal-ai/sync-lipsync). ASYNC — returns a job_id; the caller MUST poll check_job until status="completed" (usually 1-3 min). Returns a hosted MP4 URL on completion. TWO INPUT MODES: (A) provide text = the NEW words to say, and the server voices them with ElevenLabs TTS (auto-detects language incl. Russian; pick a voice preset) then lip-syncs; OR (B) provide audio_url = a ready voice/audio track to sync to (then text/voice are ignored). Exactly one of text or audio_url is required, plus video_url. The source clip must be a short talking-head video (front-facing face, max 20 seconds — longer clips are rejected; trim first). Use for "make this video say X", "dub this clip", "re-voice this video", "change what the person says". This is DIFFERENT from generate_talking_avatar (which makes a NEW talking face from a still portrait); lipsync_video edits an EXISTING video. TWO-STEP FLOW (confirmation REQUIRED — this reserves tokens): STEP 1 (preview) call WITHOUT confirmed → returns the estimated cost (TTS + lip-sync), submits nothing, reserves nothing. STEP 2 (submit) call again with confirmed=true → submits the job and reserves tokens. Cost typically 300-600 tokens.

generate_vlogA

Create a short VERTICAL talking-head vlog clip for Shorts / TikTok / Reels (an AI-influencer "viral vlog") — a character speaks a punchy line about a topic, with NATIVE synced audio + lip-sync (powered by HappyHorse 1.0). ASYNC — returns a job_id; poll check_job until status="completed" (usually 1-3 min). Returns a hosted MP4 URL. Provide a topic (what the vlog is about — the server WRITES a short punchy spoken line from it) plus a character: either character = a text description (server generates a matching portrait) OR character_url = a photo URL to animate. duration 3-15s, resolution 720p|1080p, aspect 9:16 (default, vertical) | 1:1 | 16:9 (aspect applies to a GENERATED character; an uploaded photo keeps its own aspect). This is DIFFERENT from generate_talking_avatar (a portrait that reads YOUR exact text): generate_vlog writes the script from a topic and is tuned for short vertical social clips. TWO-STEP FLOW (confirmation REQUIRED — reserves tokens): STEP 1 (preview) call WITHOUT confirmed → returns the estimated cost, submits nothing. STEP 2 (submit) call again with confirmed=true.

create_calendar_eventA

Schedule a calendar event from a natural-language description ("meeting tomorrow at 12 with Igor at the office", "remind me friday 9am dentist"). Cost ~5⚡ for the LLM extraction. The event is published to the user's linked backend: if they have linked Apple Calendar in /settings/calendar, the event lands directly in iCloud; if they linked Google Calendar, it lands there; otherwise the response carries an .ics file the client should offer as a download. ALWAYS pass timezone=IANA when you know it (e.g. user mentioned a city or you have their location); otherwise the user's saved tz from /settings is used, falling back to Europe/London. Returns: {ok, backend: "icloud"|"google"|"none", event: {title, start_iso, end_iso, location}, event_url? (when backend!=none), ics_b64? (when backend=none).

create_montageA

Assemble a slideshow VIDEO reel from 4-25 photos — Ken Burns zoom/pan on each photo + smooth crossfade transitions + an optional music track. Local render (no AI model), flat ~200⚡. ASYNC — returns a job_id; poll check_job until status="completed" (usually under a minute). Returns a hosted MP4 URL. Use when the user wants a photo montage / slideshow / "turn these pictures into a video / reel". Photos appear in the order given.

create_travel_posterA

Turn a face photo into a vintage TRAVEL POSTER: the person sits on a giant 3D map of a chosen country surrounded by its landmarks, a passport, postage stamps, a brass compass and the country name in big serif caps (the viral "Morocco / Japan" travel-poster look). A face-only photo gets a full body drawn in. SYNCHRONOUS — returns a hosted image URL directly (NO check_job needed). Cost ~200-500 tokens. The 24 curated countries render best (Morocco, Japan, Italy, France, Spain, Greece, Turkey, Egypt, India, Thailand, UAE, USA, Mexico, Brazil, Iceland, Switzerland, UK, Portugal, Bali, China, Peru, Australia, Georgia, Maldives) but ANY country name works. To then animate it into a Stories clip, pass the returned URL to generate_video (image-to-video).

check_jobA

Poll an async generation job (created by generate_video, or by avots web/Telegram). Free (no tokens). Returns status: queued|running|completed|failed. On completed: result URLs + final tokens_charged. On failed: error_message. Polling cadence: every 30 seconds for the first 3 minutes, then every 60 seconds. Keep polling for up to 10 minutes before assuming the job is stuck — provider queues can legitimately hold a video request 5+ minutes during peak hours. NEVER report failure to the user based on a slow status="queued"; only on explicit status="failed". The response does NOT include audio-track metadata — different models produce sound under different conditions and we do not probe the resulting media. Do not claim "no sound" or "has sound" in your reply; let the user play the file to find out.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/avotsai/avots-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server