Skip to main content
Glama

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: connection check, render creation, one-time status check, waiting, and listing. No overlap or ambiguity exists between them.

    Naming Consistency5/5

    All tool names follow a consistent pattern: 'lipdub_' prefix with verb_noun snake_case (check_connection, create_render, get_render, wait_for_render, list_renders). Highly predictable.

    Tool Count5/5

    With 5 tools, the set is well-scoped for a lip dub rendering service. Each tool covers an essential part of the workflow without excess or deficiency.

    Completeness4/5

    The lifecycle of creating, checking, waiting, and listing renders is fully covered. A potential gap is the absence of a cancel or delete operation, but this may not be a core requirement for render services, so only a minor gap.

  • Average 4.7/5 across 5 of 5 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 4 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable context: it is account-scoped, returns 'a short summary of each', and is 'Free and never rate-limited'. This goes beyond the annotations by disclosing cost and rate-limit behavior, which is genuinely useful for an agent deciding whether to call it.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with a clear main statement, bullet-pointed 'when to use' triggers, and a note about returns and cost. It is slightly longer than strictly necessary, but every section serves a purpose and no sentence is wasted. The main action is front-loaded.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple listing tool with one optional parameter and no output schema, the description covers the essential information: what it returns (short summary), how to proceed to get a download link (via lipdub_get_render), and cost/free status. It does not describe the exact shape of the summary, but that is not critical for invoking the tool. Overall it is sufficient for correct usage.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The single parameter 'limit' is fully documented in the input schema (type, default, min, max, description). The tool description adds no additional semantics beyond the schema — it does not mention pagination limits or default behavior. With 100% schema coverage, the baseline of 3 is appropriate; the description does not need to repeat schema details.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states a specific verb ('List'), a resource ('LipDub renders'), and a scope ('on this account'), plus an explicit ordering ('newest first'). It clearly distinguishes from siblings like lipdub_get_render (retrieve one) or lipdub_create_render (make new), so an agent can immediately identify the tool's role.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides explicit 'Use this when' conditions: losing a render_id (e.g., after conversation trimming) or when the user asks for recent renders. It also advises the follow-up call to lipdub_get_render, giving clear decision guidance about when this tool is appropriate and what to do next.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already cover readOnlyHint and idempotentHint, and the description layers genuinely useful context on top: the immediate-non-waiting behavior, the full status enum with meanings, and the critical caveat that download_url is a temporary signed link that must be handed to the user or downloaded promptly. No contradiction with annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is front-loaded with the core single-check purpose and the critical non-waiting distinction, followed by usage, rate limits, status enum, and URL handling in logical order. It is slightly verbose — the status enum and expiry caveat could theoretically live in an output schema — but every section earns its place with no filler.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a one-parameter tool with no output schema, the description covers everything an agent needs: the status value set, what download_url contains and its expiry behavior, how render_id is obtained, and routing to the wait sibling. Nothing required for a correct call is missing.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% and the schema already documents render_id thoroughly ('The render_id from lipdub_create_render. A plain number is also accepted.'). The description just restates the source ('Takes the render_id from lipdub_create_render'), adding little beyond the schema. Baseline 3 is appropriate since the schema carries the load.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states a precise verb-resource pair — 'Check a LipDub render once, right now' — and distinguishes itself from lipdub_wait_for_render by clarifying what it does NOT do ('does NOT wait'). This makes it trivially distinguishable from its siblings without opening any schema.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicit when-to-use and when-not-to-use guidance is given in two places: 'To wait for a render to finish, use lipdub_wait_for_render instead' and the closing 'If the render is not finished yet, prefer lipdub_wait_for_render'. It also states the unthrottled nature ('Free and never rate-limited — check as often as you need'), giving the agent a clear green light for polling.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds crucial behavioral context beyond annotations: the tool blocks up to max_wait_seconds, returns normally with still_running=true rather than an error, and clarifies that waiting/status checks are free and never rate-limited. This goes well beyond the structured hints, though it does not describe the exact output fields beyond the download link and still_running flag.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise (about 150 words) and front-loaded with the core directive ('Use this straight after lipdub_create_render instead of checking in a loop'). Every sentence earns its place: the blocking behavior, the non-error condition, the user-facing handling, and the cost/rate note all contribute to correct invocation. No fluff or redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    With no output schema, the description must explain what to expect. It does: a download link when done, or still_running=true when not. It also provides the exact next step for the agent in the still_running case (inform user, give render_id, call again). The tool's scope is simple, and the description covers all decision points an agent would face. It is complete for effective use.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so both render_id and max_wait_seconds are already documented. The description adds valuable context by giving a typical render time (7–15 minutes) and reinforcing that returning early is normal (which the schema also notes but the description re-emphasizes in a natural context). It also clarifies that a single call is often insufficient, which is not in the schema. This adds meaning beyond the schema without repeating it verbatim.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states a specific action ('wait for a LipDub render to finish') and names the returned artifact ('its download link'). It also differentiates from the sibling by referencing its immediate predecessor (lipdub_create_render) and contrasts with the alternative of 'checking in a loop'. This is unambiguous and allows an agent to select it correctly without inspecting schemas.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicit guidance is given: 'Use this straight after lipdub_create_render instead of checking in a loop'. It further instructs when to call again (if still_running is true) and how to handle that case (tell the user, provide render_id, call again). This is precise, actionable, and rules out alternatives, making the usage boundaries clear.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations only declare readOnlyHint=false (consistent — this creates a render) and destructiveHint=false. The description carries the real burden and does it thoroughly: credits are charged and non-refundable, cost scales with video length, the tool returns immediately without completing, rendering takes 7–15 minutes, and confirm_spend is a deliberate safety gate. No contradiction with annotations — the title even echoes the 'uses account credits' warning.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Long, but every sentence earns its place for a paid, async, multi-constraint tool. It is well front-loaded: purpose and the critical cost warning appear first, then inputs, then anti-patterns, then the async handoff. Minor redundancy with schema text ('does not translate/generate' appears in both), but repetition is defensible for a money-spending operation.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a tool with 8 parameters, no output schema, cost implications, and async behavior, the description is remarkably complete: purpose, cost model, confirmation gate, input format requirements, failure cases (non-direct links), what the tool will not do, timeout estimate, and the exact next tool+sibling to call. The render_id return is mentioned, and since no output schema exists, the description rightly provides the essential contract.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% and some schema descriptions are already rich (confirm_spend, audio_url, video_url all carry meaning). The description adds genuine value beyond the schema: video must show ONE person with a clearly visible face, both URLs must be direct publicly downloadable files, and audio must be pre-produced and hosted at a URL. The direct-URL-only constraint in particular is not present in the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Opens with a specific verb+resource ('Start a LipDub 2 render') and a concrete description of the effect: making a person in a video appear to speak a different audio track with matched lip movement. This makes it unambiguous which sibling is the creation tool, clearly distinct from get_render, wait_for_render, list_renders, and check_connection.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicitly states the workflow: confirm with the user first, then call again with confirm_spend=true. It names the exclusion condition (LipDub 2 does NOT translate/transcribe/generate — route to a TTS tool first), specifies link constraints (Drive/Dropbox/YouTube/login pages fail), and names the exact next step (lipdub_wait_for_render with the render_id). Nothing is left to inference.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnly, idempotent, and non-destructive, but the description goes further: it states that the tool does not use credits and does not start anything, and it discloses that credit balance is not available via the API, directing users to the web app. These are behavioral details beyond what annotations capture, providing real value for an agent deciding whether to call it.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is three short paragraphs, each with a distinct purpose: purpose, when to use, and notes. Every sentence earns its place with no filler. The key purpose is front-loaded, and the caveats are placed last without bloating the text.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a zero-parameter health-check tool with no output schema, the description fully covers what an agent needs: what it does, when to use it, what it doesn't affect, and an important limitation (credit balance). The sibling tools are all about renders, so this check tool is clearly distinct. Nothing essential is missing.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, so there is nothing to describe. The schema coverage is trivially 100%. Per the baseline rule, a score of 4 is appropriate because the description adds no parameter-specific info, but none is needed. The description correctly avoids inventing unnecessary parameter explanations.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with a concrete verb+resource: 'Verify that this server can reach LipDub and report which account it is using.' This is unambiguous and clearly distinguishes it from the sibling render-management tools. Even without seeing the siblings, the tool's role is immediately understandable.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicitly states when to call it: 'Call this first if any other LipDub tool fails with an authentication error, or when a user asks whether LipDub is set up.' It also clarifies what it does NOT do (uses credits, starts anything), which prevents misuse. This is textbook usage guidance.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

lipdub-mcp MCP server

Copy to your README.md:

Score Badge

lipdub-mcp MCP server

Copy to your README.md:

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/marzvfx/lipdub-mcp'

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