Add HeyGen as a connector in your AI agent and start generating videos in a few clicks — no API key and nothing to install. Usage draws on your existing HeyGen plan’s credits.
Add HeyGen to Your Agent
Open your agent's connector settings
In your MCP-compatible agent (Claude, Cursor, Gemini CLI, Manus, and others), open the Connectors or MCP servers settings and choose Add custom connector.
Paste the HeyGen MCP endpoint
Name the connector HeyGen and enter the remote MCP server URL:https://mcp.heygen.com/mcp/v1/
Authenticate with OAuth
Click Connect and sign in to HeyGen to approve access. This one-time OAuth flow links the connector to your account — no API key required.
Start creating
Ask your agent to generate a video — for example, “Make a 30-second product explainer with HeyGen.” It calls HeyGen’s tools directly and bills against your existing plan.
Menu names vary slightly by agent. For click-by-click instructions, see the per-product setup guides below.
What You Can Do
Once connected, your AI agent has access to the following tools:
Video Agent
| Tool Name | Description |
|---|
create_video_agent | One-shot video generation from a prompt — the agent handles scripting, avatar selection, scene composition, and rendering. Supports generate (fire-and-forget) and chat (multi-turn) modes. |
get_video_agent_session | Get the current status, progress, video_id, and recent chat messages for a session. |
send_video_agent_message | Send a follow-up message to an existing chat-mode session. Use to answer agent questions, add context, or request edits to a generated video. |
get_video_agent_resource | Get a single session resource (image, video, draft, avatar, voice, etc.) by its resource_id. |
list_video_agent_session_videos | List all videos produced within a Video Agent session. |
list_video_agent_sessions | List your Video Agent sessions, newest first, with pagination. |
stop_video_agent_session | Stop an active agent run at its next checkpoint. Partial results are preserved. |
Videos
| Tool Name | Description |
|---|
create_video_from_avatar | Create a video from a HeyGen avatar (video or photo avatar) with a text script or audio file. |
create_video_from_cinematic_avatar | Create a cinematic video from a prompt plus 1–3 avatar looks and optional reference media. No script or voice — motion is driven by the prompt (Seedance pipeline). |
create_video_from_image | Create a video by animating an arbitrary image with lip-sync to provided audio or generated speech. |
list_videos | List videos in the account with pagination and optional filtering. |
get_video | Get detailed information about a video including status, URLs, and metadata. |
delete_video | Permanently delete a video. This action cannot be undone. |
Avatars
| Tool Name | Description |
|---|
list_avatar_groups | List avatar groups (characters). Each group contains one or more looks. Filterable by ownership (public/private). |
get_avatar_group | Get details for a specific avatar group including name, preview URLs, looks count, and training status. |
list_avatar_looks | List avatar looks (outfits, poses, styles). The look id is the avatar_id to pass when creating a video. |
get_avatar_look | Get details for a specific avatar look including supported engines, preferred orientation, and training status. |
update_avatar_look | Update the display name of an avatar look. Photo avatar and digital twin looks only. |
create_digital_twin | Create a new avatar from video footage. Avatar training is asynchronous. |
create_photo_avatar | Create a new avatar from a photo. Avatar training is asynchronous. |
create_prompt_avatar | Create a new avatar from a text prompt. Avatar training is asynchronous. |
create_avatar_consent | Initiate the consent flow for an avatar group. Returns a URL for the user to complete approval in their browser. |
delete_avatar_look | Permanently delete an avatar look. Photo avatar and digital twin looks only. |
delete_avatar_group | Permanently delete an avatar group and its looks. |
Voices
| Tool Name | Description |
|---|
create_speech | Synthesize speech from text using a specified voice. Supports plain text and SSML. Returns a URL to the generated audio file. |
list_voices | List voices with pagination. Filterable by type (public/private), engine, language, and gender. |
get_voice | Get details for a specific voice, including voice-clone status. Use to poll a clone until it’s complete. |
design_voice | Find voices matching a natural-language description (e.g. “warm, confident female narrator”). Returns up to 3 matches. |
clone_voice | Clone a voice from an audio file. Returns a voice ID you can poll until ready, then use for speech and videos. |
Audio
| Tool Name | Description |
|---|
search_audio_sounds | Semantically search the background-music catalog by natural-language description (e.g. “upbeat lofi hip-hop”). Returns tracks ranked by similarity, each with a pre-signed download URL, plus cursor-based pagination. |
Lip Sync
| Tool Name | Description |
|---|
create_lipsync | Replace the audio on an existing video and re-animate lip movements to match the new audio. |
list_lipsyncs | List all lipsync jobs in the account with pagination. |
get_lipsync | Get details for a lipsync job including status, video_url, and caption_url. |
update_lipsync | Update the display title of a lipsync job. |
delete_lipsync | Permanently delete a lipsync job and its associated files. |
Video Translation
| Tool Name | Description |
|---|
create_video_translation | Translate a video into one or more target languages with voice cloning and lip-sync. |
list_video_translations | List all video translation jobs in the account with pagination. |
get_video_translation | Get details for a translation job including status, output language, and video_url. |
update_video_translation | Update the display title of a video translation job. |
delete_video_translation | Permanently delete a video translation and its associated files. |
list_video_translation_languages | List all supported target languages for video translation. |
Assets
| Tool Name | Description |
|---|
get_asset | Get metadata for an uploaded asset — owner, upload time, file type, and a public URL. |
delete_asset | Permanently delete an asset from your workspace. |
Brand
| Tool Name | Description |
|---|
list_brand_kits | List the brand kits in your account (logos, colors, fonts). |
list_brand_glossaries | List brand glossaries used to keep terminology consistent across generated content. |
Account
| Tool Name | Description |
|---|
get_current_user | Get the authenticated user’s profile, remaining credits, and billing details. |
Supported Products
HeyGen Remote MCP works with any MCP-compatible agent, including:
- Claude (Web, Desktop, and Code)
- Cursor (available in the Cursor marketplace)
- Gemini CLI
- Lovable
- Manus
- Superhuman
- OpenAI
- and more
See the dedicated setup guide for each product for detailed instructions.
Connect Your Own Agent
You can integrate HeyGen Remote MCP into any custom agent or application that supports the Model Context Protocol. Just point it to the endpoint:
https://mcp.heygen.com/mcp/v1/
For security, HeyGen Remote MCP uses domain whitelisting. If your agent runs on a domain that isn’t already whitelisted, you’ll need to request access before it can connect.
To request domain whitelisting, submit your domain via the Integration Intake form.
Remote MCP
| Remote MCP |
|---|
| Setup | Add endpoint URL, authenticate via OAuth |
| Runs on | HeyGen’s hosted infrastructure |
| Authentication | OAuth (no API key needed) |
| Billing | Web plan + premium credits |
| Best for | Most users — quick setup, works everywhere |
FAQ
Do I need an API key? No. Remote MCP uses OAuth authentication tied to your HeyGen account. No API key required.
Does this cost extra? No. Video generation uses the credits included in your existing HeyGen plan.
Which HeyGen plans support this? Remote MCP is available on all HeyGen plans.
Can I use my custom avatars and voices? Yes. Any avatars and voices available in your HeyGen account are accessible through Remote MCP.
What’s the difference between this and the HeyGen API? The HeyGen API gives you direct REST endpoints for programmatic control. Remote MCP wraps those capabilities so AI agents can use them conversationally — without you writing integration code.