100+ integrations are ready to connect to your AI.Connect your first MCP

HeyGen MCP server for your AI

Render an avatar video from a script, dub it into the languages you sell in, clone a voice, train a photo avatar group, and check each job until the finished video URL comes back.

PopMCPHeyGen

Show me every video rendered in the last 7 days and flag the ones that failed

Supported HeyGen tools

Every video, avatar, voice, translation, template, asset and webhook call the connection exposes, plus the webhook events you can trigger on.

heygen_create_video_translate

Translate a video into one or more target languages.

heygen_create_video_translation_v3

Translates a video into one or more target languages with voice cloning and lip-sync.

heygen_get_video_translation_v3

Returns details for a translation job including status, output language, video_url, and failure info if applicable.

heygen_list_video_translate_languages

List all supported target language codes for video translation.

heygen_video_translate_status

Check Translation Status

heygen_create_avatar_video

Create a video from a specific avatar or image with full control over avatar, voice, and script.

heygen_create_video

Creates a video from a HeyGen avatar or an arbitrary image.

heygen_create_webm_video

Generates a webm video with transparent background and an avatar speaking the input text.

heygen_delete_video

Permanently delete a video.

heygen_generate_video_v2

This API now generates videos with our New AI Studio backend.

heygen_get_video_status

This endpoint allows you to retrieve the status and details of a specific video.

heygen_get_video_v3

Returns details for a video including status, video_url, thumbnail_url, duration, and failure info if applicable.

heygen_list_videos

List videos in the account with pagination and optional filtering.

heygen_create_webhook_endpoint

Registers an HTTPS URL to receive webhook event notifications.

heygen_list_all_avatar_groups

List all avatar groups

heygen_list_all_avatars_in_one_avatar_group

List all avatars in one avatar group

heygen_list_avatar_looks

Returns a paginated list of avatar looks (outfits, poses, styles).

heygen_list_avatars_v2

You can get your Avatars and Talking Photos(Photo Avatars) with this endpoint.

heygen_list_webhook_endpoints

Returns a paginated list of registered webhook endpoints.

heygen_list_webhook_event_types

Returns all available webhook event types with human-readable descriptions.

heygen_check_photolook_generation_status

Check photo/look generation status

heygen_clone_voice

Creates a voice clone from an audio file.

heygen_create_photo_avatar_group

This api can be used to create a photo avatar group For generated photo avatar, pass the generation_id and the image_key For user uploaded avatar, first upload the photo using the upload assets api.

heygen_create_speech_v3

Synthesize speech audio from text using a specified voice.

heygen_generate_photo_avatar_looks

This endpoint can be used to generate additional looks for a trained photo avatar group.

heygen_generate_photo_avatar_photos

This endpoint will generate photos that can be used to create photo avatars, returns a generation id, which can be used in the check generation status endpoint to get status and final image/image keys

heygen_get_training_job_status

Get the training status of an avatar group

heygen_list_brand_voices

This endpoint is used to retrieve a list of brand voices your created

heygen_list_voices_v2

List All Voices (V2)

heygen_list_voices_v3

Returns a paginated list of voices, filterable by type, engine, language, and gender.

heygen_text_to_speech

Synthesize speech audio from text using a specified voice.

heygen_train_photo_avatar_group

Train a photo avatar group.

heygen_create_video_agent

Create a video from a text prompt using HeyGen's Video Agent.

heygen_create_video_agent_v3

One-shot video generation from a prompt — agent handles scripting, avatar selection, scene composition, and rendering.

heygen_get_video_agent_session

Returns the current status, progress, video_id, and recent chat messages for a session.

heygen_list_video_agent_session_videos

Returns all videos produced within a Video Agent session, sorted newest-first.

heygen_create_asset_upload

Begin a direct-to-S3 upload.

heygen_get_asset

Returns metadata for an asset in the caller's workspace — including owner, upload timestamp, file type, and a publicly accessible URL.

heygen_search_assets

Semantically search re-hosted public images and icons by natural-language description, e.g.

heygen_append_avatar_realtime_text

Append a text delta to a session created with `type: text_stream`.

heygen_cancel_avatar_realtime_session

Cancel a running streaming session.

heygen_create_avatar_realtime_session

Start a low-latency streaming avatar session and return a `stream_id`.

heygen_create_lipsync_v3

Replaces the audio on an existing video and re-animates the speaker's lip movements to match the new audio.

heygen_get_avatar_realtime_session

Get the status of a streaming avatar session.

heygen_get_lipsync_v3

Returns details for a lipsync job including status, video_url, caption_url, and failure info if applicable.

heygen_generate_from_template_v2

This API now supports New AI Studio!

heygen_get_template_v2

This API now supports New AI Studio!

heygen_list_templates_v2

This API now supports New AI Studio!

heygen_check_video_avatar_generation_status

Checks the current status of the Digital Twin generation process and returns relevant details.

heygen_get_remaining_quota

Get Remaining Quota

heygen_get_user_me

Returns the authenticated user's profile, remaining credits or balance, and billing details.

heygen_submit_video_avatar_creation_request

Submits the URLs for the required training footage and consent statement to create a Digital Twin.

heygen_create_proofread_v3

Creates a proofread session that extracts editable subtitles from a video before final rendering.

heygen_delete_video_translation_v3

Permanently deletes a video translation and its associated files.

heygen_download_proofread_srt_v3

Returns presigned download URLs for the edited and original SRT files of a completed proofread session.

heygen_generate_from_proofread_v3

Starts final video generation using the approved subtitles from a proofread session.

heygen_get_proofread_v3

Returns the status and details of a proofread session.

heygen_get_video_translate_caption

Get the caption file (SRT or VTT format) for a completed video translation.

heygen_list_video_translation_languages_v3

Returns all supported target language names for video translation.

heygen_list_video_translations_v3

Returns a paginated list of all video translation jobs in the account.

heygen_update_video_translation_v3

Updates the display title of a video translation job.

heygen_upload_proofread_srt_v3

Replaces the proofread subtitles with an edited SRT file.

heygen_delete_video_v1

Delete a Video

heygen_delete_video_v3

Permanently deletes a video and its associated files.

heygen_get_video

Get detailed information about a video including status, URLs, and metadata.

heygen_list_videos_v1

This endpoint retrieves a list of videos associated with the user.

heygen_list_videos_v3

Returns a paginated list of all videos in the account.

heygen_add_webhook_endpoint_v1

Add a Webhook Endpoint

heygen_create_avatar

Creates a new avatar from an image, video footage, or a text prompt.

heygen_create_avatar_consent

Initiates the consent flow for an avatar group and returns a URL for the user to complete approval in their browser.

heygen_delete_avatar_group

Permanently deletes an avatar group and all its associated looks.

heygen_delete_avatar_look

Deletes an avatar look and its backing resource.

heygen_delete_webhook_endpoint

Permanently removes a webhook endpoint.

heygen_delete_webhook_endpoint_v1

delete an existing webhook endpoint

heygen_get_avatar_group

Returns details for a specific avatar group including name, gender, preview URLs, looks count, and training status.

heygen_get_avatar_look

Returns details for a specific avatar look including supported engines, preferred orientation, preview URLs, and training status.

heygen_list_avatar_groups

Returns a paginated list of avatar groups (characters).

heygen_list_webhook_endpoints_v1

list all your registered webhook endpoints

heygen_list_webhook_event_types_v1

list all supported webhook events

heygen_list_webhook_events

Returns a paginated history of delivered webhook events.

heygen_rotate_webhook_endpoint_secret

Generates a new signing secret for a webhook endpoint and immediately invalidates the old one.

heygen_update_avatar_look

Updates the display name of an avatar look.

heygen_update_webhook_endpoint

Updates the URL and/or subscribed event types for a webhook endpoint.

heygen_update_webhook_endpoint_v1

update an existing webhook endpoint

heygen_add_looks_to_photo_avatar_group

Add other looks to existing photo avatar group

heygen_add_motion

Add motion to an existing photo avatar, returns the id of the new avatar that has motion

heygen_add_sound_effect

This api adds sound effect into a photo avatar

heygen_delete_voice

Deletes a voice clone owned by the caller.

heygen_design_voice

Returns up to 3 voices matching a natural language description (e.g.

heygen_get_voice

Returns details for a specific voice, including clone workflow status when available.

heygen_list_audio_voices

List voices available for TTS generation with cursor-based pagination.

heygen_photo_avatar_details

Get the details of a photo avatar

heygen_update_brand_voice

Updates an existing brand voice with specified changes.

heygen_upscale_an_avatar

Call this api to upscale an avatar, can only be called on an avatar that has motion, returns the photo avatar id that is upscaled

heygen_get_video_agent_resource

Returns a single session resource (image, video, draft, avatar, voice, etc.) by its resource_id.

heygen_list_video_agent_sessions

Returns a paginated list of video agent sessions for the authenticated user, sorted newest-first.

heygen_list_video_agent_styles

Returns curated visual style templates available for Video Agent sessions.

heygen_send_video_agent_message

Sends a follow-up message to an existing session.

heygen_stop_video_agent_session

Halts an active agent run at its next checkpoint.

heygen_streaming_create_token

This endpoint is used to generate a new access token for a streaming session.

heygen_streaming_ice

Submit a WebRTC ICE candidate for an Interactive Streaming Avatar session.

heygen_streaming_interrupt

This endpoint is used to interrupt the speaking of an Interactive Avatar.

heygen_streaming_list_avatars

This API endpoint allows you to retrieve a list of public and custom interactive avatars.

heygen_streaming_list_sessions

This endpoint is used to retrieve a list of currently active streaming sessions.

heygen_streaming_new_session

This endpoint is used to initiate a new streaming session.

heygen_streaming_send_task

This endpoint is used to send a text to an Interactive Avatar, prompting it to speak the provided text.

heygen_streaming_start_session

This endpoint is used to start the connection for an existing streaming session.

heygen_streaming_stop_session

This endpoint is used to terminate an active streaming session.

heygen_complete_asset_upload

Finalize a direct-to-S3 upload into a reusable asset.

heygen_delete_asset

Permanently deletes an asset.

heygen_upload_asset

Uploads a file (image, video, audio, or PDF) and returns an asset_id for use in other endpoints.

heygen_upload_asset_v1

Uploads a media file (image, video, or audio) to the authenticated user's HeyGen account and returns the asset ID for future use.

heygen_create_folder

Create Folder

heygen_delete_lipsync_v3

Permanently deletes a lipsync job and its associated files.

heygen_list_folders

Retrieves a list of folders with optional filters.

heygen_list_lipsyncs_v3

Returns a paginated list of all lipsync jobs in the account.

heygen_restore_folder

Restore Folder

heygen_stream_avatar_realtime_words

Open a Server-Sent Events (`text/event-stream`) stream of per-word timestamps for a session.

heygen_trash_folder

Moves a folder to the trash.

heygen_update_folder

Updates the name of an existing folder.

heygen_update_lipsync_v3

Updates the display title of a lipsync job.

heygen_create_ai_clipping_v3

Submit a source video and return a job id immediately.

heygen_create_background_removal

Submit a video to remove its background.

heygen_create_graph_execution

Submit a multi-workflow graph for asynchronous execution.

heygen_create_hyperframes_render_v3

Renders a HyperFrames composition (an HTML+JS+assets project bundled as a .zip) into a video.

heygen_create_workflow_execution

Submit a single workflow for asynchronous execution.

heygen_delete_ai_clipping_v3

Soft-deletes an AI clip job and its clips.

heygen_delete_background_removal

Soft-deletes a background removal job.

heygen_delete_hyperframes_render_v3

Soft-deletes a HyperFrames render.

heygen_get_ai_clipping_v3

Returns the full job resource including produced clips, statuses, and presigned download URLs.

heygen_get_background_removal

Returns a background removal job including its status and, once completed, presigned download URLs for the produced layers.

heygen_get_hyperframes_render_v3

Returns full details for a single HyperFrames render, including status and signed video_url when complete.

heygen_get_template_v3

Retrieves template details by ID, including variables available for replacement and scene mappings for the New AI Studio.

heygen_get_workflow_execution

Poll the status and output of a workflow execution.

heygen_list_ai_clipping_v3

Returns a cursor-paginated list of AI clip jobs in the authenticated user's workspace, newest first.

heygen_list_background_removals

Returns a paginated list of background removal jobs for the account, newest first.

heygen_list_hyperframes_renders_v3

Returns a cursor-paginated list of HyperFrames renders in the account, newest first.

heygen_list_workflows

List all available workflow types with their input/output schemas.

heygen_create_personalized_video_contact

Add a contact (one recipient) to a Personalized Video project so an uniquely customized video is rendered for them.

heygen_delete_talking_photo

Delete a Talking Photo from your account by its id.

heygen_delete_video_avatar

Deletes a Digital Twin by its ID.

heygen_get_current_user_v3

Returns the authenticated user's profile, remaining credits or balance, and billing details.

heygen_get_personalized_video_audience

Get the detail/status of a single Personalized Video audience member (one rendered recipient) by its id.

heygen_get_personalized_video_project

Get the detail of a Personalized Video project by its id — its template variables, settings, and the list/status of audience members (recipients).

heygen_list_talking_photos

List the Talking Photos in your HeyGen account.

heygen_upload_talking_photo

Upload a still photo of a face to create a Talking Photo (a photo that can be animated to speak).

heygen_list_brand_glossaries

List brand glossaries (custom term mappings, a.k.a.

heygen_list_brand_kits

Returns brand kits available in the authenticated user's workspace.

heygen_search_audio_sounds

Semantically search the audio catalog by natural-language description — set type=music (the default) for background music (e.g.

Connect HeyGen to your AI

Credentials off one HeyGen screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

Paste your API key from the HeyGen dashboard under Settings → API. There is no OAuth app, client secret or redirect URL. The connection is locked to the single HeyGen account that owns that key.

API key••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • Show me every video rendered in the last 7 days and flag the ones that failed

    • list_videos
    • get_video_v3
  • Translate our top three product demos into Spanish, German and Japanese

    • list_videos
    • list_video_translate_languages
    • create_video_translation_v3
    • get_video_translation_v3
  • Turn this launch brief into an avatar video and tell me when it has rendered

    • create_video_agent_v3
    • get_video_agent_session
    • list_video_agent_session_videos
  • Is the new rep's photo avatar group done training, and which looks are ready?

    • get_training_job_status
    • list_all_avatars_in_one_avatar_group
    • check_photolook_generation_status

Use HeyGen from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

HeyGen MCP server questions

What teams ask before putting HeyGen behind an AI client.

What do I need to connect — an OAuth app or an API key?

An API key, and nothing else. The connect form asks for a single field, API key, which you copy from the HeyGen dashboard under Settings → API. There is no OAuth app, client secret or redirect URL to set up. The connection then acts as the one HeyGen account that owns that key.

How many tools does my AI client actually see?

The integration covers 149 operations across 23 API modules, split 69 read and 80 write. By default 52 load into your client so the tool list stays workable; the rest stay searchable and come in when a request needs them. You can turn the full catalog on for a connection if you would rather have everything loaded.

Renders are asynchronous — how does the agent know when a video is finished?

Creating a video hands back a job, not a file, which is the thing that trips most people up. The agent can poll get_video_status or get_video_v3, and video_translate_status or get_video_translation_v3 for translations, until the status flips and a video_url appears. Or skip the polling: PopMCP watches HeyGen webhook events such as Video ready, Video failed, Translation ready and Captions ready, so a workflow starts the moment the render lands.

Can it translate and lip-sync videos we have already published?

Yes, and video translation is the largest module in this integration at 15 operations. list_video_translate_languages returns the supported target codes, create_video_translate runs a straight translation, and create_video_translation_v3 adds voice cloning and lip-sync; get_video_translation_v3 returns the job status, output language, video_url and any failure detail. A separate lipsync module is exposed alongside it.

Can it clone a voice or build a photo avatar from our own footage?

Both. clone_voice creates a clone from an audio file, create_speech_v3 and text_to_speech read a script in a chosen voice, and list_voices_v3 or list_brand_voices show what is already available. On the avatar side, create_photo_avatar_group, train_photo_avatar_group and generate_photo_avatar_looks build the digital twin, with get_training_job_status plus the Avatar training finished and Avatar training failed triggers reporting how it went.

Is there a safe way to try this before it renders anything?

Start the connection in read-only mode. Browsing avatars, voices, templates, assets and job status creates nothing. Every write path — avatar videos, translations, voice clones, photo avatar training — starts a real job on the live account, and the catalog includes a credits check so the agent can look at the balance first. There is no separate test account here: the key points at the HeyGen account that issued it, so keep approval-required-for-writes on for a production workspace.

Do I have to run or host the HeyGen MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

Why do only 52 of the 149 tools load by default?

Loading 149 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 52-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.

What is the difference between a tool and a trigger?

A tool is something your AI calls — there are 149 here. A trigger is something PopMCP watches for you: 22 HeyGen events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into HeyGen.

Connect HeyGen to your AI in minutes

Launch a hosted MCP endpoint for HeyGen, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP