Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LIPDUB_API_KEYNoYour API key. Required.
LIPDUB_LOG_LEVELNodebug, info, warn, error. Logs go to stderr.warn
LIPDUB_API_KEY_FILENoPath to a file containing the key, instead of the variable.
LIPDUB_MAX_RENDERS_PER_SESSIONNoCeiling on renders started per server process.5
LIPDUB_REQUIRE_SPEND_CONFIRMATIONNoSet false only for headless pipelines with no human watching.true

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
lipdub_check_connectionA

Verify that this server can reach LipDub and report which account it is using.

Call this first if any other LipDub tool fails with an authentication error, or when a user asks whether LipDub is set up.

Does not use credits and does not start anything.

Credit balance is not available through the API — direct the user to https://app.lipdub.ai to see it.

lipdub_create_renderA

Start a LipDub 2 render: make the person in a source video appear to speak a different audio track, with matched lip movement.

USES CREDITS. Each render charges the account and cannot be undone or refunded. Cost scales with the length of the source video. Confirm with the user first, then call again with confirm_spend set to true.

Supply both sides as direct, publicly downloadable URLs:

  • video_url — a video of ONE person speaking, face clearly visible.

  • audio_url — the audio you want them to appear to say.

LipDub 2 does NOT translate, transcribe or generate speech. If the user wants another language, produce that audio first with a separate text-to-speech or voice tool, host it at a URL, and pass that URL as audio_url.

Links must return the media file itself, with two exceptions: YouTube links work (youtube.com, youtu.be or youtube-nocookie.com), because they are resolved for you. Google Drive and Dropbox share pages, and anything behind a login, will fail.

Returns immediately with a render_id — the render is NOT finished. Rendering takes several minutes for a short clip, and longer for longer videos. Next step: call lipdub_wait_for_render with that render_id.

lipdub_get_renderA

Check a LipDub render once, right now, and return its download link if it has finished. This does NOT wait — it answers immediately with whatever the current status is. To wait for a render to finish, use lipdub_wait_for_render instead.

Takes the render_id from lipdub_create_render.

Free and never rate-limited — check as often as you need.

status is one of:

  • preparing — LipDub is downloading your source files (usually under 2 minutes)

  • queued — waiting for a render slot

  • rendering — generating the video

  • succeeded — done; download_url is included

  • failed — see failure_reason

download_url is a temporary signed link that expires. Give it to the user or download it promptly; do not save it for later.

If the render is not finished yet, prefer lipdub_wait_for_render — it waits for you instead of making you check repeatedly.

lipdub_wait_for_renderA

Wait for a LipDub render to finish, then return its download link. Use this straight after lipdub_create_render instead of checking in a loop — it uses far less context.

This call blocks for up to max_wait_seconds (default 45, maximum 600) while tracking the render for you. A render takes several minutes for a short clip, and longer for longer videos, so expect to call this several times — that is normal and costs nothing.

If the render is still going when the wait is up, this returns normally with still_running set to true. That is NOT an error and NOT a failure — the render is fine and is still going. When it happens: tell the user it is still in progress, give them the render_id so they can come back to it, and call this tool again to keep waiting.

Waiting and status checks are free and never rate-limited.

lipdub_list_rendersA

List recent LipDub renders on this account, newest first.

Use this when:

  • you have lost a render_id, for example because earlier conversation was trimmed away and a render is still running or already finished

  • the user asks what they have rendered recently

Returns a short summary of each. Call lipdub_get_render with one of the returned render_ids to get its download link.

Free and never rate-limited.

Prompts

Interactive templates invoked by user choice

NameDescription
lipdub_quick_dubWalk through a LipDub 2 render: confirm the cost, start it, wait, and hand back the finished video.

Resources

Contextual data attached and managed by the client

NameDescription
quickstartWhat LipDub 2 does, the render flow, input requirements, cost and timing.
troubleshootingSymptom, cause and fix for the common LipDub 2 failures.

TDQS

A4.7/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct role: connection check, listing, creating, one-shot status check, and blocking wait. The overlap between get_render and wait_for_render is explicitly disambiguated in their descriptions.

Naming Consistency5/5

All tools follow the same lipdub_ prefix with a consistent verb_noun pattern: check_connection, list_renders, create_render, get_render, wait_for_render. There are no naming style deviations.

Tool Count5/5

Five tools is well-scoped for this server's purpose. Each tool covers a necessary part of the render workflow without redundancy or bloat.

Completeness5/5

The tool surface covers the full render lifecycle: verify setup, create a render, wait for completion, retrieve the result, and list past renders. No obvious missing operation is needed for the stated domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues