# HeyGen — MCP server on mcp.ai > Connect your HeyGen account and use 71 tools for artificial intelligence straight from your AI agent. Connect with your own API key. HeyGen is an innovative video platform that harnesses the power of generative AI to streamline your video creation process. By: mcp.ai · official Page: https://mcp.ai/heygen ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_heygen?ms=1787293560000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/heygen/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/heygen/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/heygen/skill.md Postman collection (v2.1): https://mcp.ai/heygen/postman.json ## Tools - heygen_add_looks_to_photo_avatar_group(name: string, group_id: string, image_keys: string[], generation_id?: string, image_keys_normalized?: boolean) — Tool to add additional looks (images) to an existing photo avatar group. Use when you need to expand an avatar group with new image variations. Maximum 4 image keys can be added per request. - heygen_add_motion(id: string) — Tool to add natural motion or animation to an existing photo avatar, turning a still image into a moving, lifelike one. Use when you need to animate an avatar or add motion effects to a static photo a - heygen_check_photo_look_generation_status(generation_id: string) — Tool to retrieve the current status and details of a photo avatar or look generation by its ID. Use when you need to check if a photo avatar generation is complete or monitor generation progress. - heygen_create_folder(name: string, parent_folder_id?: string) — Tool to create a new folder under your HeyGen account. Use when you need to organize content by creating a new folder. Once created, you can place videos in the folder by providing the folder_id param - heygen_create_knowledge_base(name: string, prompt: string, opening: string) — Tool to create a new knowledge base with a specified name, opening line, and custom prompt for Interactive Avatar streaming sessions. Use when you need to set up a new knowledge base with custom AI be - heygen_create_photo_avatar_group(name: string, image_key: string, generation_id?: string) — Tool to create an avatar group which can include both AI-generated and user-uploaded photos of the avatar. Use when you need to create a new avatar group for training or managing avatar photos. - heygen_create_webm_video(width?: integer, height?: integer, voice_id?: string, input_text?: string, input_audio?: string, avatar_style?: string, avatar_pose_id: string) — Tool to create a WebM format video with transparent background featuring an avatar speaking text or audio. Use when you need to generate WebM videos with transparent backgrounds for overlaying on othe - heygen_delete_an_avatar_video(video_id: string) — Tool to delete a video by its ID from HeyGen account. Supports deletion of both generated (avatar) videos and translated videos. Use when you need to remove a video that is no longer required or to ma - heygen_delete_asset(asset_id: string) — Tool to delete a specific asset by its unique asset ID from HeyGen account. Use when you need to remove an asset (image, video, or audio) that is no longer required. - heygen_delete_knowledge_base(knowledge_base_id: string) — Tool to delete a specific knowledge base by its ID. Use when you need to permanently remove a knowledge base from the HeyGen streaming platform. - heygen_delete_photo_avatar(avatar_id: string) — Tool to delete a photo avatar by its ID from HeyGen account. Use when you need to remove a photo avatar that is no longer required. - heygen_delete_photo_avatar_group(avatar_group_id: string) — Tool to delete a photo avatar group by its ID from HeyGen account. Use when you need to remove a photo avatar group that is no longer required. - heygen_delete_webhook_endpoint(endpoint_id: string) — Tool to permanently delete a webhook endpoint from HeyGen. Use when you no longer need to receive webhook notifications for a specific endpoint. - heygen_generate_photo_avatar_photos(age: string, name: string, pose: string, style: string, gender: string, ethnicity: string, appearance: string, orientation: string) — Tool to generate a personalized AI avatar based on text prompts and attribute inputs. Use when you need to create custom AI-generated avatar photos with specific characteristics like age, gender, ethn - heygen_generate_text_to_speech(text: string, voice_id: string) — Tool to generate a speech audio file from any text input using a specified voice, powered by HeyGen's Starfish model. Use when you need to convert text to speech audio with high-quality voice synthesi - heygen_generate_voice_audio_preview(text: string, voice_id: string, text_type?: string) — Tool to generate a short audio preview with the specified voice and text. Use when you need to synthesize short audio clips using selected voices before creating full videos. This is an Enterprise-onl - heygen_get_current_user_information() — Tool to retrieve the profile information of the currently authenticated user. Use when you need to fetch user details including username, email, full name, subscription status, and quotas. - heygen_get_training_job_status(group_id: string) — Tool to retrieve the current training status and details of a photo avatar training job by group ID. Use when you need to check training progress, monitor job completion, or verify if training has fin - heygen_keep_alive_streaming_session(session_id: string) — Tool to reset the idle timeout counter for an active streaming session. Use when you need to prevent a streaming session from timing out during periods of inactivity. - heygen_list_all_avatar_groups(include_public?: boolean) — Tool to retrieve a list of all available avatar groups in your HeyGen account. Use when you need to fetch all avatar groups for content management or selection purposes. - heygen_list_all_locales_for_voices() — Tool to retrieve available locales for multilingual voices. Use when you need to access locale identifiers that can be used with multilingual voices for video generation. - heygen_list_assets(limit?: integer, token?: string, file_type?: string, folder_id?: string) — Tool to retrieve a paginated list of all assets (images, audios, videos) created under your account. Use when you need to fetch assets for content management or track uploaded resources. Supports filt - heygen_list_brand_voices() — Tool to retrieve a list of brand glossaries created under your account. Use when you need to access brand voice definitions that maintain consistent terminology and pronunciation across videos. - heygen_list_folders(token?: string) — Tool to retrieve a paginated list of folders created under your account. Use when you need to organize or browse folder structures in HeyGen. Supports cursor-based pagination using the token parameter - heygen_list_group_avatars(group_id: string) — Tool to retrieve all avatars that belong to a specific avatar group. Use when you need to fetch all avatars within a particular group for content management or selection purposes. - heygen_list_knowledge_bases() — Tool to retrieve a list of all existing knowledge bases associated with your account. Use when you need to view available knowledge bases for streaming interactions. - heygen_list_session_history(page?: integer, token?: string, page_size?: integer) — Tool to retrieve a paginated history of all streaming sessions with metadata including session duration, timestamps, and other details. Use when you need to view historical streaming session data for - heygen_list_streaming_avatars() — Tool to retrieve a list of public and custom interactive avatars for streaming. Use when you need to fetch available avatars for interactive streaming sessions. - heygen_list_tts_voices() — Tool to retrieve a list of public and custom voices compatible with HeyGen's Starfish TTS model. Use when you need to access available voices for text-to-speech audio generation in videos. - heygen_new_session(voice?: object, quality: string, version?: string, avatar_id?: string, stt_settings?: object, knowledge_base?: string, video_encoding?: string, livekit_settings?: object, knowledge_base_id?: string, disable_idle_timeout?: boolean, activity_idle_timeout?: integer) — Tool to initiate a new streaming session with an Interactive Avatar for real-time interactions. Use when starting a new avatar streaming session to get WebSocket connection details including session_i - heygen_personalized_video_add_contact(project_id: string, variables_list: object[]) — This endpoint allows you to add one or more contacts to a specific personalized video project in the Heygen platform. It is used when you need to associate individual contact information with a projec - heygen_personalized_video_project_detail(id: string) — Retrieves detailed information about a specific personalized video project in HeyGen, including status, settings, and metadata. Use this to check project progress or review configuration. Read-only en - heygen_photo_avatar_details(avatar_id: string) — Tool to retrieve detailed information about a photo avatar or look using its unique ID. Use when you need to get comprehensive information about a specific photo avatar including status, metadata, and - heygen_post_talking_photo_binary_image(file?: object) — Creates a talking photo by processing an uploaded image file. This endpoint enables users to transform static images into interactive, speaking visual content using HeyGen's advanced AI technology. It - heygen_restore_folder(folder_id: string) — Tool to restore a previously deleted folder from trash by its unique folder ID. Use when you need to recover a folder that was moved to trash. - heygen_retrieve_avatar_details(avatar_id: string) — Tool to retrieve detailed information about a specific avatar by its ID. Use when you need to get comprehensive information about an avatar including identification details, display properties, and pr - heygen_retrieve_sharable_video_url(video_id: string) — Tool to generate a public, shareable URL for a specific video by ID. Use when you need to create a public link that allows anyone to view the video without authentication. The generated URL can be sha - heygen_retrieve_template_details_v3(template_id: string) — Tool to retrieve comprehensive details about a specific template including all available variables for replacement and scene mappings for templates built in the New AI Studio. Use when you need to und - heygen_retrieve_video_status_details(video_id: string) — Tool to retrieve the current processing status and metadata for a specific video by ID. Use when you need to check video processing progress, get time-limited URLs for video downloads, or monitor vide - heygen_search_public_avatar_groups(page?: integer, query?: string, page_size?: integer, search_tags?: string[]) — Tool to search and retrieve public avatar groups with optional filters and pagination. Use when you need to find specific avatar groups by tags, name, or browse available public avatars. - heygen_streaming_create_token(expiry?: integer) — Creates a new streaming token for use with HeyGen's real-time avatar and voice chat services. This endpoint generates a unique, time-limited token that authenticates and authorizes access to HeyGen's - heygen_streaming_ice(session_id: string, candidate__sdpMid?: string, candidate__candidate?: string, candidate__sdpMLineIndex?: integer, candidate__usernameFragment?: string) — This endpoint is used to submit ICE (Interactive Connectivity Establishment) candidate information for a specific streaming session in the Heygen platform. It plays a crucial role in establishing and - heygen_streaming_interrupt(session_id: string) — Interrupts an ongoing streaming session with an interactive avatar. This endpoint allows immediate termination of the avatar's current action or speech, providing control over the flow of interaction. - heygen_streaming_list() — Retrieves a list of active or available streaming sessions or content within the HeyGen platform. This endpoint allows users to get an overview of ongoing streams, which may include live avatar intera - heygen_streaming_new(quality?: string) — Initiates a new streaming session with HeyGen, allowing users to start an avatar-based stream with specified quality settings. This endpoint should be used when starting a new interactive content sess - heygen_streaming_start(sdp: object, session_id: string) — Initiates a new streaming session for real-time communication in the HeyGen platform. This endpoint is used to set up a WebRTC connection for video, audio, and data streaming, likely for interactions - heygen_streaming_stop(session_id: string) — The streaming.stop endpoint is used to terminate an active streaming session in the Heygen API. This endpoint should be called when you want to end a real-time data transfer session, such as when clos - heygen_streaming_task(text: string, task_mode?: string, task_type?: string, session_id: string) — The StreamingTask endpoint initiates a real-time speaking task for an AI-driven avatar within an active streaming session. It enables developers to make avatars vocalize specified text, creating inter - heygen_trash_folder(folder_id: string) — Tool to move a specific folder to trash by its unique folder ID. Use when you need to delete a folder from HeyGen (soft delete - can be recovered later). - heygen_update_folder(name: string, folder_id: string) — Tool to update (rename) an existing folder by its unique folder ID. Use when you need to change the name of a folder in HeyGen. - heygen_update_knowledge_base(name: string, prompt?: string, opening: string, knowledge_base_id: string) — Tool to update an existing knowledge base by its ID. Use when you need to modify the name, opening line, or custom prompt of a knowledge base for Interactive Avatar streaming sessions. - heygen_update_webhook_endpoint(url: string, events?: string[], secret?: string, endpoint_id: string) — Tool to modify an existing webhook endpoint configuration including URL and subscribed event types. Use when you need to update webhook settings or change event subscriptions for an existing endpoint. - heygen_upload_asset(file: object) — Tool to upload a file asset (image, video, or audio) to HeyGen platform. Use when you need to upload media files for use in video generation or other HeyGen services. - heygen_upscale_an_avatar(id: string) — Tool to enhance the resolution and visual quality of a motion avatar. Use when you need to improve avatar quality for higher resolution output. Important: Upscaling can ONLY be performed on motion ava - heygen_v1_avatar_list() — Retrieves a list of available avatars from the Heygen platform. This endpoint allows users to fetch both public and private avatars, depending on their access rights and the specified parameters. It's - heygen_v1_talking_photo_list() — Retrieves a list of talking photos created using the HeyGen platform. This endpoint allows users to fetch information about their existing talking photo projects, which are interactive images capable - heygen_v1_video_list(limit?: integer, token?: string) — Retrieves a list of videos associated with the user's account on the HeyGen platform. This endpoint is crucial for content management, allowing users to view and organize their video library efficient - heygen_v1_voice_list() — Retrieves a comprehensive list of all available voices in the HeyGen platform. This endpoint should be used when you need to obtain information about the voice options that can be utilized for avatar - heygen_v1_webhook_endpoint_add(url: string, events: string[]) — Adds a new webhook endpoint to receive real-time notifications for specified Heygen events. This endpoint allows you to configure where and for which events you want to receive updates, enabling seaml - heygen_v1_webhook_endpoint_list() — Retrieves a list of all webhook endpoints configured for your HeyGen account. This endpoint allows you to view and manage the webhook configurations that receive notifications about various events in - heygen_v1_webhook_webhook_list() — Retrieves a list of all available webhook event types that can be subscribed to in your HeyGen account. This endpoint returns the complete list of event types that HeyGen supports for webhook notifica - heygen_v2_talking_photo_id_delete(id: string) — Deletes a specific talking photo from the HeyGen platform using its unique identifier. This endpoint should be used when you need to permanently remove a talking photo resource, such as when it's no l - heygen_v2_template_generate(id: string, test?: boolean, title: string, caption?: boolean, dimension?: object, variables: object) — Generates a customized video from a pre-existing template using HeyGen's AI platform. Accepts a video title and template variables to personalize content. Ideal for creating tailored videos at scale l - heygen_v2_template_id(id: string) — Retrieves a specific template from the HeyGen platform using its unique identifier. This endpoint allows users to access detailed information about a particular template, including its structure, elem - heygen_v2_templates() — Retrieves a list of available avatar templates from the HeyGen platform. This endpoint allows users to access pre-designed avatars that can be used for creating professional-looking videos. It's parti - heygen_v2_user_remaining_quota() — Retrieves the current remaining quota for the authenticated user on the HeyGen platform. This endpoint allows users to check their available resources or actions within their account limits. It should - heygen_v2_video_generate(test?: boolean, title?: string, callback_id?: string, aspect_ratio?: string, video_inputs: object[], dimension__width?: integer, dimension__height?: integer) — Generates a customized video using Heygen's AI-driven platform. This endpoint allows you to create videos featuring digital avatars with specified voices, enabling dynamic content creation. It's ideal - heygen_v2_video_translate(title?: string, video_url: string, speaker_num?: integer, output_language: string, translate_audio_only?: boolean) — The TranslateVideo endpoint enables the translation of video content from one language to another. It offers flexible options for translating either the entire video or just the audio track, accommoda - heygen_v2_video_translate_id_status(id: string) — Retrieves the current status of a video translation job in the HeyGen platform. This endpoint allows users to check the progress of their requested video translations, providing information such as wh - heygen_v2_video_translate_target_languages() — Retrieves a list of all available target languages supported by HeyGen's video translation feature. This endpoint should be used when you need to know which languages are available for translating you - heygen_v2_voices() — Retrieves a list of available voice models and options that can be used with HeyGen's AI-driven video creation platform. This endpoint provides information about the various voice options, including d ## Example prompts - "What can I do in HeyGen?" - "Show me a summary of my HeyGen account" ## Links Docs: https://mcp.ai/docs/mcps/heygen Website: https://mcp.ai/mcps/heygen