Skip to main content
Glama

HeyGen MCP Server

VS Code Marketplace Installs PyPI Downloads GitHub Downloads

CI Release PyPI Version

License: MIT Python Built with Copilot

HeyGen Logo

⚠️ Disclaimer: This is a community fork of the original HeyGen MCP server, which appears to be abandoned. This is not an official HeyGen repository. Use at your own discretion.

Generate AI Videos with Natural Language - A Model Context Protocol (MCP) server for HeyGen API integration with AI assistants.

The HeyGen MCP server enables AI assistants (GitHub Copilot, Claude, ChatGPT) to generate AI avatar videos, manage templates, and work with assets through natural language commands.

🚀 Quick Start (1 Minute)

Requirements: Python 3.10+ | HeyGen API Key (get one here - 10 free credits/month)

Fastest way to get started - everything configured automatically:

Install from VS Code Marketplace →

The extension handles server registration and API key configuration automatically!


Related MCP server: Tavus MCP Server

Installation

Prerequisites

  • Python 3.10 or higher

  • A Heygen API key (get one from Heygen). Includes 10 Free Credits per Month

Install from PyPI

Install the package directly using pip or uv:

# Using pip
pip install heygen-mcp-sbroenne

# Using uv (recommended)
uv pip install heygen-mcp-sbroenne

# Or run directly without installing (uvx)
uvx heygen-mcp-sbroenne

Install from GitHub Releases

Download pre-built packages from GitHub Releases:

  1. Download the .whl or .tar.gz file from the latest release

  2. Install with pip:

    pip install heygen_mcp_sbroenne-*.whl

For the VS Code extension, download the .vsix file and install via:

  • VS Code → Extensions → ... menu → "Install from VSIX..."

Usage

The easiest way to use HeyGen MCP with VS Code is through the community VS Code extension:

  1. Install the extension:

  2. Configure your API key:

    • Use Command Palette (Ctrl+Shift+P)

    • Search for "HeyGen: Configure API Key"

    • Enter your API key

  3. Start using it:

    • The HeyGen MCP server will automatically be available to your AI assistant

    • Ask your AI assistant to generate videos, manage templates, etc.

See vscode-extension/README.md for more details.

Quickstart with Claude Desktop

  1. Get your API key from HeyGen.

  2. Install uv package manager (see Installing uv section above).

  3. Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following:

{
  "inputs": [
    {
      "id": "heygen-api-key",
      "type": "promptString",
      "description": "HeyGen API Key",
      "password": true
    }
  ],
  "mcpServers": {
    "HeyGen": {
      "command": "uvx",
      "args": ["heygen-mcp-sbroenne"],
      "env": {
        "HEYGEN_API_KEY": "${input:heygen-api-key}"
      }
    }
  }
}

If you're using Windows, you'll need to enable "Developer Mode" in Claude Desktop to use the MCP server. Click "Help" in the hamburger menu at the top left and select "Enable Developer Mode".

Using with VS Code (Manual Configuration)

Add the following to your VS Code settings (.vscode/mcp.json):

{
  "inputs": [
    {
      "id": "heygen-api-key",
      "type": "promptString",
      "description": "HeyGen API Key",
      "password": true
    }
  ],
  "servers": {
    "HeyGen": {
      "type": "stdio",
      "command": "uvx",
      "args": ["heygen-mcp-sbroenne"],
      "env": {
        "HEYGEN_API_KEY": "${input:heygen-api-key}"
      }
    }
  }
}

Using a Local Development Version

If you want to run from a local clone (for development or testing), use uv run instead of uvx:

{
  "inputs": [
    {
      "id": "heygen-api-key",
      "type": "promptString",
      "description": "HeyGen API Key",
      "password": true
    },
    {
      "id": "heygen-mcp-path",
      "type": "promptString",
      "description": "Path to local heygen-mcp repository"
    }
  ],
  "mcpServers": {
    "HeyGen": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "${input:heygen-mcp-path}",
        "python",
        "-m",
        "heygen_mcp.server"
      ],
      "env": {
        "HEYGEN_API_KEY": "${input:heygen-api-key}"
      }
    }
  }
}

For VS Code, use servers instead of mcpServers.

Available MCP Tools

The server provides 7 resource-based tools, each with multiple actions:

user - User Account Management

Action

Description

info

Get user profile information

credits

Get remaining credits/quota

voices - Voice Management

Action

Description

list

Get available voices (max 100, private voices first)

avatars - Avatar Management

Action

Parameters

Description

list

-

Get all avatars and talking photos

get

avatar_id

Get details for a specific avatar

list_groups

include_public (optional)

Get avatar groups

list_in_group

group_id

Get avatars in a specific group

videos - Video Generation

Action

Parameters

Description

list

token (optional)

List all videos with pagination

generate

video_inputs_json (JSON array of scenes), title (optional)

Create a new avatar video

generate_iv

image_key, script, voice_id, video_title, motion options

Create Avatar IV video from photo

status

video_id

Check video processing status

✨ Video Background Support - Generate videos with color, image, or video backgrounds. See Video Backgrounds Guide for details.

templates - Template Management

Action

Parameters

Description

list

-

Get all templates in your account

get

template_id

Get template details including variables

generate

template_id, variables (optional), title, test, caption

Create video from template

assets - Asset Management

Action

Parameters

Description

list

-

Get all assets (images, videos, audios)

upload

file_path

Upload a media file, returns asset_id

delete

asset_id

Remove an asset

folders - Folder Management

Action

Parameters

Description

list

-

Get all folders

create

name

Create a new folder

delete

folder_id

Delete a folder

Example Usage:

# Get remaining credits
user(action="credits")

# List all avatars
avatars(action="list")

# Get specific avatar details
avatars(action="get", avatar_id="avatar_123")

# Generate a video (single scene)
videos(action="generate", video_inputs_json='[{"character": {"avatar_id": "..."}, "voice": {"voice_id": "...", "input_text": "Hello!"}}]')

Development

Setup

# Clone the repository
git clone https://github.com/sbroenne/heygen-mcp.git
cd heygen-mcp

# Install dependencies
uv sync --dev

# Install pre-commit hooks
uv run pre-commit install

Pre-commit Hooks

This project uses pre-commit to run checks before each commit:

  • ruff - Linting and auto-fixing

  • ruff-format - Code formatting

  • pyright - Type checking

  • trailing-whitespace - Remove trailing whitespace

  • end-of-file-fixer - Ensure files end with newline

  • check-yaml - Validate YAML files

Run hooks manually on all files:

uv run pre-commit run --all-files

Running with MCP Inspector

To run the server locally with the MCP Inspector for testing and debugging:

uv run mcp dev heygen_mcp/server.py

This will start the server in development mode and allow you to use the MCP Inspector to test the available tools and functionality.

Running Tests

# Run all tests (requires HEYGEN_API_KEY in .env)
uv run pytest tests/ -v

# Skip video generation tests (uses credits)
uv run pytest tests/ -v -k "not video_generation"

LLM Integration Tests

This project includes LLM-based tests using agent-benchmark to validate that AI assistants can correctly understand and use the MCP tools.

cd tests/heygen_mcp_llm_tests

# List available test scenarios
python run_llm_tests.py --list

# Run safe tests (read-only, no credits consumed)
python run_llm_tests.py

# Run a specific scenario
python run_llm_tests.py -s user-credits-test

Requirements: Azure OpenAI endpoint (AZURE_OPENAI_ENDPOINT) and HeyGen API key (HEYGEN_API_KEY).

See tests/heygen_mcp_llm_tests/README.md for full documentation.

Roadmap

  • Tests (integration tests + MCP server smoke tests)

  • Template API Support

  • CI/CD (GitHub Actions + PyPI release)

  • Photo Avatar APIs Support

  • SSE And Remote MCP Server with OAuth Flow

  • Translation API Support

  • Interactive Avatar API Support

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

For maintainers: see the Publishing Guide for release instructions.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

7 tools
assetsA

Upload and manage media files (images, videos, audio). USE CASES: backgrounds, Avatar IV photos, custom audio. Actions: 'list' - get all assets with id, name, type, and url; 'upload' - upload file (REQUIRED: file_path; returns asset_id); 'delete' - remove asset (REQUIRED: asset_id). NOTE: For Avatar IV, upload photo first - asset_id is the image_key.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
file_pathNo
asset_idNo

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must alone disclose behavioral traits. It explains that upload requires file_path and returns asset_id, delete requires asset_id, and list returns id, name, type, url. However, it omits details such as file size limits, supported formats, authorization requirements, or error behaviors. This leaves gaps for an AI agent.

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 a single paragraph but well-structured: purpose, use cases, action details, and a note. It is relatively concise and front-loads key information. However, it could be slightly more compact by separating actions into a list for readability.

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

Completeness3/5

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

Given the tool has three actions, no output schema, and no annotations, the description covers basic inputs and outputs for each action. However, it lacks details on error handling, authorization boundaries, or file size/type constraints. An AI agent might need additional context for robust usage, but the description is sufficient for straightforward calls.

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 input schema has 0% description coverage, so the description compensates by explaining each parameter: action is an enum with three values, file_path is required for upload, asset_id is required for delete. It also clarifies the return of upload (asset_id) and list output fields. This adds significant meaning beyond the schema's bare types and titles, though it could detail file_path format or constraints.

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 purpose: 'Upload and manage media files'. It lists specific use cases (backgrounds, Avatar IV photos, custom audio) and distinguishes from sibling tools like 'avatars' and 'videos' by focusing on generic media file management. The actions (list, upload, delete) are explicitly described with their functions.

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 explicit guidance on when to use each action: list to retrieve assets, upload with required file_path, delete with required asset_id. It also includes a contextual note for Avatar IV usage. However, it does not explicitly exclude alternative tools or scenarios where this tool should not be used.

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

avatarsA

Get available avatars (AI personas) for video generation. REQUIRED: You need an avatar_id to generate videos. Actions: 'list' - get all avatars with id, name, gender (START HERE); 'get' - get details for a specific avatar (requires avatar_id); 'list_groups' - get avatar groups (include_public=true for public); 'list_in_group' - get avatars in a group (requires group_id). TIP: Use 'list' first, then 'get' for details on a chosen avatar.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
avatar_idNo
group_idNo
include_publicNo

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description bears full burden. It discloses that 'list' returns all avatars with id, name, gender and that 'get' requires avatar_id. However, it lacks details on return format, error handling, auth requirements, or side effects. The description is helpful but not comprehensive.

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 relatively concise, fitting key information in a few sentences. It front-loads the purpose and required note, then lists actions. However, the structure could be improved with bullet points for clarity, and some redundancy exists (e.g., repeating REQUIRED).

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

Completeness3/5

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

The description explains actions and parameter requirements but does not cover return values for all actions (e.g., 'get' says 'get details' but not what details). No output schema exists, so this gap is notable. Error handling and edge cases are also unaddressed, leaving the tool somewhat incomplete for complex use.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must add meaning. It effectively explains how each action uses parameters (e.g., 'list' uses no extra params, 'get' uses avatar_id, 'list_groups' uses include_public, 'list_in_group' requires group_id). This significantly augments 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?

The description clearly states the tool is for getting avatars (AI personas) for video generation. It distinguishes from sibling tools (assets, folders, etc.) by focusing on avatars. The actions are enumerated with specific purposes, providing a clear verb+resource description.

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 explicit guidance on workflow: start with 'list', then use 'get' for details. It notes required parameters for each action and includes tips like 'include_public=true for public'. However, it does not explicitly state when not to use this tool or compare with alternatives among siblings.

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

foldersA

Organize videos and assets into folders. OPTIONAL: Use folders to keep your HeyGen workspace organized. Actions: 'list' - get all folders with id and name; 'create' - create a new folder (REQUIRED: name); 'rename' - rename a folder (REQUIRED: folder_id, name); 'trash' - move folder to trash (REQUIRED: folder_id); 'restore' - recover folder from trash (REQUIRED: folder_id).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
folder_idNo
nameNo

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses actions and their required parameters (e.g., trash requires folder_id, restore recovers from trash). However, it does not mention side effects, permanence of trash, permissions needed, or rate limits, leaving behavioral gaps.

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: one sentence for purpose, one optional note, and a bulleted-like list of actions with required fields. No redundancy, every sentence adds value.

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 no output schema and no annotations, the description covers actions and parameter requirements well. However, it omits return values (e.g., what 'list' returns, whether create returns the new folder). This lack slightly reduces completeness for an agent expecting to use the output.

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

Parameters5/5

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

The input schema marks folder_id and name as optional, but the description clarifies conditional requirements: 'create' requires name, 'rename' requires both folder_id and name, etc. This adds critical meaning beyond schema, which has 0% coverage. Without this, agents would not know which parameters are required per action.

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 purpose: 'Organize videos and assets into folders.' It then enumerates five specific actions (list, create, rename, trash, restore) with their requirements, making the resource and verbs explicit. This differentiates it from sibling tools by focusing on folder management.

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

Usage Guidelines3/5

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

The description includes an 'OPTIONAL' note about using folders for organization, implying when to use the tool, but it does not explicitly state when not to use it or compare it with alternatives among sibling tools (e.g., assets, videos). Usage guidance is present but lacks exclusion criteria.

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

templatesA

Use pre-made video templates for easier video creation. EASIER THAN 'videos': Templates have pre-configured layouts. WORKFLOW: 1) 'list' templates, 2) 'get' to see variables, 3) 'generate' with variables, 4) Check status. Actions: 'list' - get all templates with id and name; 'get' - get template variables (REQUIRED: template_id); 'generate' - create video (REQUIRED: template_id; OPTIONAL: variables dict, title, test=True, caption=True). TIP: Use test=True to preview without using credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
template_idNo
variablesNo
titleNo
testNo
captionNo

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description outlines actions and parameters, including the tip about test=True saving credits. However, it doesn't discuss side effects, idempotency, or error handling. Behavioral transparency is adequate but could be improved.

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

Conciseness3/5

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

Description is fairly concise but uses ALL CAPS for emphasis, reducing readability. It front-loads purpose and workflow, but the mixed formatting detracts from structure. Could be cleaner with proper formatting.

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?

Covers the workflow, actions, and parameter usage adequately for a 6-parameter tool without output schema. Missing error handling and edge cases, but sufficient for basic usage. Given no output schema, the description does a good job overall.

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 0%, so description compensates by explaining parameters: action as required, template_id context, variables as optional dict, title, test, caption booleans. Adds meaning beyond schema by specifying when template_id is required and test=True purpose.

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 purpose: using pre-made video templates. It distinguishes from sibling tool 'videos' by noting it's easier with pre-configured layouts. The three actions (list, get, generate) are explicitly listed, making the 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 Guidelines4/5

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

Provides a clear workflow: list templates, get variables, generate video, check status. Includes tip to use test=True for preview. Though it doesn't explicitly state when not to use, the contrast with 'videos' tool provides some alternative context.

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

userA

Manage HeyGen user account. RECOMMENDED: Call 'credits' before generating videos to check quota. Actions: 'info' - get user profile (username, email, plan); 'credits' - get remaining credits (IMPORTANT: check before video generation).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes

TDQS

A4/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits beyond listing actions. It does not state that actions are read-only, describe authentication needs, or mention any side effects.

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 short sentences: first states purpose, second provides a recommendation and lists actions. No wasted words, 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?

For a simple tool with one parameter and no output schema, the description sufficiently covers the purpose and outputs of each action. Could optionally mention the format of credits return value.

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 input schema has one enum parameter with 0% coverage in description, but the description adds meaning by explaining what each action retrieves (user profile fields, remaining credits), compensating for the lack of schema documentation.

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?

Description clearly states 'Manage HeyGen user account' and lists two specific actions ('info' and 'credits') with their outputs, making the tool's purpose distinct from siblings like 'assets' or 'videos'.

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?

Provides explicit recommendation to call 'credits' before generating videos, giving context for using the credits action. However, it does not specify when not to use the tool or alternative tools.

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

videosA

Generate AI avatar videos and check their status. WORKFLOW: 1) Get avatar_id, 2) Get voice_id, 3) Call 'generate', 4) Poll 'status' until complete. Actions: 'list' - get all videos (with status and video_url if complete); 'generate' - create video (REQUIRED: video_inputs_json - JSON array of scenes, even for single-scene videos. Each scene needs: character.avatar_id, voice.input_text, voice.voice_id. Optional: background with type/value/asset_id); 'generate_iv' - create video from photo with AI motion (REQUIRED: image_key, script, voice_id, video_title); 'status' - check if ready (REQUIRED: video_id). NOTE: Videos take 1-10+ min. Poll status until completed.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
video_idNo
titleNo
tokenNo
video_inputs_jsonNo
image_keyNo
scriptNo
video_titleNo
voice_idNo
audio_urlNo
audio_asset_idNo
custom_motion_promptNo
enhance_custom_motion_promptNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description discloses important behavioral traits: videos take 1-10+ minutes, polling is required, and for 'generate', video_inputs_json must be a JSON array even for single scenes. This gives agents a clear expectation of the tool's behavior.

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 structured with a summary, workflow, and action details. It is front-loaded with the main purpose. While slightly lengthy, every part adds value, and the formatting (capitalised actions, bullet-like details) aids readability.

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

Completeness3/5

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

The description covers the core actions and workflow well but leaves several parameters unexplained (e.g., token, audio_url, custom_motion_prompt). Given 13 parameters and no output schema, more detail on optional parameters and return values would improve completeness.

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

Parameters5/5

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

The description adds extensive meaning beyond the input schema, which has 0% description coverage. It explains each action's required parameters, the structure of video_inputs_json, and the purpose of fields like image_key, script, and voice_id. This is critical 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 the tool's purpose: 'Generate AI avatar videos and check their status.' It lists specific actions (list, generate, generate_iv, status) and provides a workflow, making its function distinct from sibling tools like avatars or voices.

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 a clear workflow (get avatar_id, get voice_id, call generate, poll status) and specifies required parameters for each action. However, it does not explicitly state when not to use the tool or mention alternatives to the actions.

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

voicesA

Get available voices for video generation. REQUIRED: You need a voice_id to generate any video. Actions: 'list' - returns voices with id, name, language, gender. TIP: Match voice language to your script language.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so the description bears the burden. It transparently states the action is 'list' and the returned fields (id, name, language, gender). It also advises on language matching, adding behavioral insight beyond the schema.

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 extremely concise: two sentences and a tip, all front-loaded with essential information. Every sentence adds value without redundancy.

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 without an output schema, the description sufficiently covers what the tool does and what it returns. It mentions the broader context of needing a voice_id for video generation, though it omits potential edge cases or error conditions.

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

Parameters5/5

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

Schema coverage is 0% (no parameter descriptions in schema), but the description fully explains the 'action' parameter's purpose and the sole allowed value 'list', adding meaning that the schema lacks.

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 'Get available voices for video generation' with a specific verb and resource. It explains the action parameter and what is returned, distinguishing it from sibling tools like assets or avatars.

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

Usage Guidelines3/5

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

The description implies when to use the tool (to obtain a voice_id for video generation) and provides a tip on matching voice language to script language, but lacks explicit guidance on when not to use it or how it compares to other tools.

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

Tool Schema Changelog

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

  1. 7 tool updatesv0.3.0
    • First observedassets
    • First observedavatars
    • First observedfolders
    • First observedtemplates
    • First observeduser
    • First observedvideos
    • First observedvoices

TDQS

A4.3/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: assets for media files, avatars for AI personas, folders for organization, templates for pre-made layouts, user for account info, videos for generation and status, voices for voice selection. No overlap in functionality.

Naming Consistency5/5

All tool names are simple plural nouns (assets, avatars, folders, templates, videos, voices) with 'user' being the only singular, which is common and does not break consistency.

Tool Count5/5

7 tools cover the essential aspects of a video generation platform: asset management, avatar/voice selection, template usage, video generation, folder organization, and user account. The count is well-scoped and not excessive.

Completeness4/5

The tool set covers the main workflow from asset upload to video generation and status checking. Minor gaps like lack of video deletion or account updates exist, but core functionality is complete.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers