Skip to main content
Glama

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation3/5

    create_video and generate_video are nearly synonymous in name and purpose—both trigger video generation, differing only in synchronous vs. asynchronous behavior. check_video and list_videos also have some overlap in tracking video status, though their intent is clearer.

    Naming Consistency5/5

    All tools follow a consistent verb_noun snake_case pattern (list_avatars, create_video, check_video). No camelCase, no mixed verb styles, and each verb clearly maps to the action performed.

    Tool Count5/5

    With 8 tools, the set is well-scoped for the HeyGen video-generation domain: two video creation paths, status checking, download, quota, and resource listing. Each tool serves a distinct need without bloat.

    Completeness5/5

    The core lifecycle is covered: list avatars/voices, create video (both sync and async), check status, download result, and list history. Quota checking prevents dead ends. No obvious missing operations for a video generation API.

  • Average 4.3/5 across 8 of 8 tools scored.

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

    • No community issues in the last 6 months
    • 2 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • 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

  • Behavior3/5

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

    With no annotations provided, the description carries the burden of behavioral disclosure. It adds useful context about the large number of avatars and the need to narrow results, but it doesn't detail return format, pagination, or sorting. This is adequate but not exceptionally rich.

    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?

    Two sentences, front-loaded with the primary action and then the key usage tip. No wasted words; every sentence contributes useful information.

    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 list tool with three well-documented params and no output schema, the description covers purpose, usage, and a critical performance characteristic. It could mention the response structure more explicitly, but it already notes 'with their avatar_id and preview video,' making it fairly complete.

    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 description coverage is 100% and every parameter (limit, search, include_talking_photos) has a clear description. The description adds minimal extra meaning beyond mentioning 'search term,' so the baseline of 3 is appropriate.

    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 clearly states the tool's function: listing avatars with their avatar_id and preview video. It uses a specific verb and resource, and naturally distinguishes itself from sibling tools like list_voices and list_videos by explicitly focusing on avatars.

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

    Usage Guidelines4/5

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

    The description provides clear usage context: 'before picking one for create_video' and strongly advises always passing a search term due to the account scale. It doesn't explicitly mention alternatives or when not to use, but the guidance is actionable and relevant.

    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?

    With no annotations provided, the description carries the full burden. It discloses possible statuses and the return fields when completed, which is meaningful. It does not cover error handling or rate limits, but for a read-only status check, it provides substantial transparency.

    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 two sentences, front-loaded with the primary action, and every clause adds value (statuses and return fields). No wasted wording.

    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?

    Given the tool's low complexity (one parameter, no output schema), the description covers the key behavioral outputs and statuses. It omits edge cases like failed status details or error responses, but these are not necessary for basic usage. Overall complete enough for common workflows.

    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 schema already fully describes video_id with 100% coverage, including its origin from create_video or generate_video. The description adds no additional parameter semantics beyond repeating 'by video_id', so baseline 3 is appropriate.

    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 clearly states the tool checks rendering status by video_id, with a specific verb and resource. It distinguishes itself from siblings like create_video, generate_video, download_video, and list_videos by focusing on status retrieval.

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

    Usage Guidelines4/5

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

    The description implies use after creating a video and before downloading by noting the video_id comes from create_video/generate_video and that completed status reveals download URLs. It does not explicitly state exclusions or alternatives, but the context is clear.

    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?

    With no annotations, the description carries the burden of behavioral disclosure. It indicates that the returned objects include compatibility flags (emotion_support, support_locale) that affect downstream create_video calls, providing useful coupling context. Although it does not mention pagination or rate limits, the list operation is clearly read-only and the main behavioral nuances are surfaced.

    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?

    Two sentences, front-loaded with purpose, then a targeted usage hint and compatibility explanation. Every sentence earns its place; no redundancies.

    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 list tool with no output schema, the description covers the main purpose, key return fields, filtering intent, and downstream compatibility. It lacks explicit pagination/limit behavior, but that is covered in the schema and the overall description is adequate for an agent to invoke it correctly.

    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% with each parameter already described. The description adds semantic guidance—'Filter by language and gender to find a voice'—but does not materially increase understanding of the parameter formats or constraints, so the baseline 3 applies.

    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 uses the specific verb 'List' with the resource 'HeyGen voices' and enumerates the returned fields (voice_id, language, gender, preview_audio URL), clearly distinguishing it from sibling tools like list_avatars. It also explicitly connects the purpose to selecting a voice for create_video, further clarifying scope.

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

    Usage Guidelines4/5

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

    The description states when to use this tool ('to find a voice for create_video') and provides the key filtering dimensions (language and gender). It gives clear context without naming alternative tools explicitly, which aligns with 'clear context, no exclusions'.

    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?

    No annotations are provided, so the description carries the full burden. It discloses the blocking behavior (waits until rendering completes), typical duration (1-3 minutes), credit consumption, and the optional local save via output_path. Missing details like URL expiry are covered in the schema, not the description, but the description gives a solid behavioral overview.

    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 yet information-dense. Each sentence serves a distinct purpose: defining the tool, stating prerequisites, explaining invocation modes, and flagging cost/timing. It's front-loaded with the core action and follow-up details.

    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 complex tool with 16 parameters, the description provides high-level flow, blocking behavior, dependencies, and a cost warning. It mentions the return of video_url but not other potential outputs; however, the schema's rich parameter descriptions and absence of an output schema make this sufficient.

    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% with detailed per-parameter descriptions, so the baseline is 3. The description adds value by explaining the relationship between flat arguments and the scenes array, and by highlighting key dependencies (avatar_id, voice_id, output_path) that are essential for correct invocation.

    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 clearly states it 'generates an avatar video with HeyGen and waits until it finishes rendering, returning the final video_url.' This is a specific verb+resource description that distinguishes it from sibling tools like generate_video by emphasizing the synchronous wait-and-return behavior.

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

    Usage Guidelines4/5

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

    It sets expectations for prerequisites (avatar_id from list_avatars, voice_id from list_voices), explains single vs multi-scene usage, and advises checking get_quota for long scripts. It doesn't explicitly contrast with the sibling generate_video tool, but does clarify the primary use case.

    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?

    The description discloses the 7-day URL expiration and the automatic URL lookup when video_id is provided. It does not mention auth or side effects, but since downloading is inherently non-destructive, the added context is valuable.

    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?

    Two sentences, front-loaded with the core purpose. Every sentence is informative, with no redundancy or filler.

    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 download tool with no output schema, the description covers purpose, input methods, and expiration. A minor gap is that it doesn't explicitly state one of video_id or video_url is required (only output_path is marked required in the schema).

    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%, so parameters are already well-documented. The description adds meaning by clarifying the relationship between video_id and video_url, indicating they serve as alternatives.

    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 clearly states the tool downloads a finished HeyGen video to a local .mp4 file, with a specific verb and resource. It distinguishes from sibling tools that create, generate, check, or list videos, and notes the two input methods.

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

    Usage Guidelines4/5

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

    It indicates the tool is for finished videos and explains how to pass video_id or video_url. However, it does not explicitly mention alternatives or when not to use this tool, though the context implies it.

    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?

    Without annotations, the description carries the burden. It discloses the asynchronous nature ('without waiting for rendering'), implies poll-based workflow ('poll yourself with check_video'), and warns of credit consumption ('Consumes account credits'). It could add more on side effects/failure modes, but the key behaviors are covered.

    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?

    Three concise sentences: the first states the action and result, the second gives usage guidance with an alternative, and the third warns of cost. Every sentence earns its place, and the most important information 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?

    Given the tool's complexity (14 params, nested objects, no annotations, no output schema), the description + schema adequately inform an agent. The description clarifies when to use it and its async behavior, and the schema covers all parameter details. It lacks detailed return formatting or error handling, but states it returns video_id, which is sufficient.

    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%, so the schema thoroughly documents all 14 parameters. The description adds no parameter-specific semantics beyond what the schema provides, which aligns with the baseline of 3 for high schema coverage.

    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 clearly states the tool submits a video to HeyGen and returns the video_id immediately without waiting for rendering, which is a specific verb+resource+behavior. It also distinguishes itself from the sibling create_video, satisfying the requirement for differentiation.

    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 recommendations are given: use this only when polling with check_video is appropriate (e.g., very long videos), and use create_video otherwise. This is a clear when-to-use/alternative guidance.

    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?

    No annotations are provided, so the description carries the full burden. It transparently discloses the return values (remaining quota in seconds and credits) and explains the billing conversion (1 credit per 60 seconds). This is useful behavioral context, though it doesn't mention authentication or rate limits.

    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 a single, front-loaded sentence that conveys the purpose, usage timing, and return format with no wasted words. Every clause earns its place.

    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?

    Given the tool's low complexity (no parameters, no output schema), the description fully covers what the agent needs: the purpose, when to call it, and what the response means. The billing explanation adds essential domain context.

    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 the input schema is trivially complete. The description adds value by explaining the output semantics (seconds and credits), which is the only meaningful parameter-related context needed.

    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 clearly identifies the tool as checking remaining HeyGen API credits, using the specific verb 'Check' and naming the resource ('remaining HeyGen API credits'). It distinguishes itself from sibling tools like create_video and list_videos by focusing on quota specifically.

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

    Usage Guidelines4/5

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

    The description explicitly says 'before generating video', providing clear guidance on when to use the tool. While it doesn't name alternatives, the context is sufficient given that no sibling tool serves a similar quota-checking purpose.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It accurately implies a read-only listing operation, specifies the output fields, and notes the 'recent' scope. It doesn't explicitly state side effects, but for a list operation, non-destructiveness is safely implied. The description adds useful context beyond the schema, such as the workflow.

    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 two sentences with no wasted words. The first sentence front-loads the purpose and output fields; the second sentence provides practical usage context and a pointer to a sibling tool. Every clause earns its place.

    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?

    This is a low-complexity tool (one parameter, no output schema). The description conveys what it returns (video_id, title, status, creation date) and why it's useful (recover ID for later use). It does not require additional explanation of pagination or return formats given the simplicity and that the schema covers the limit parameter.

    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 schema covers the single 'limit' parameter with 100% description coverage, including default, min, max, and semantics. The tool description does not add additional parameter meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

    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 clearly states the tool lists recent videos in the HeyGen account and specifies exactly which fields are returned (video_id, title, status, creation date). It distinguishes itself from siblings by providing a concrete follow-up action (pass ID to check_video), making its purpose unambiguous.

    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 explicitly frames the primary use case: recovering a video_id for a previously generated video. It also names the alternative tool (check_video) to obtain URL and duration, giving clear guidance on how to proceed after using this tool. This effectively differentiates it from siblings.

    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

heygen-mcp MCP server

Copy to your README.md:

Score Badge

heygen-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/carlosvidal/heygen-mcp'

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