heygen-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HEYGEN_API_KEY | Yes | Your HeyGen API key. Set via environment variable or in the MCP server configuration env field. |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_videoA | Primary tool — generates an avatar video with HeyGen and waits until it finishes rendering, returning the final video_url. Needs an avatar_id (list_avatars) and a voice_id (list_voices). Pass scenes for a multi-scene video, or avatar_id/text/voice_id for a single scene. Optionally saves the mp4 locally via output_path. Rendering typically takes 1-3 minutes and consumes account credits — check get_quota first for long scripts. |
| generate_videoA | Submit a video to HeyGen and return the video_id immediately without waiting for rendering. Use this only when you want to poll yourself with check_video (e.g. very long videos); for most cases use create_video instead. Consumes account credits. |
| check_videoA | Check the rendering status of a HeyGen video by video_id. Status is one of pending, waiting, processing, completed or failed. When completed it returns video_url, thumbnail_url, gif_url, caption_url and duration. |
| download_videoA | Download a finished HeyGen video to a local .mp4 file. Pass video_id (the URL is looked up automatically) or a direct video_url. HeyGen video URLs expire 7 days after generation. |
| list_avatarsA | List avatars available in your HeyGen account, with their avatar_id and preview video. Accounts hold well over a thousand avatars, so always pass a search term to narrow the results before picking one for create_video. |
| list_voicesA | List HeyGen voices with their voice_id, language, gender and preview_audio URL. Filter by language and gender to find a voice for create_video — emotion_support and support_locale tell you whether the emotion and locale parameters will work with that voice. |
| list_videosA | List recent videos in your HeyGen account with their video_id, title, status and creation date. Useful to recover the video_id of something generated earlier — pass that ID to check_video to get its URL and duration. |
| get_quotaA | Check remaining HeyGen API credits before generating video. Returns remaining quota in seconds and in credits (HeyGen bills 1 credit per 60 seconds of rendered video). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
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.
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.
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.
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.