
HeyGen x Granola
Granola captures everything said in your meetings. HeyGen turns it into a lifelike video with avatar and voice. Connected through Claude via MCP, a single prompt is all it takes to go from call notes to a finished, narrated video.
Granola reads the room, HeyGen builds the video
When you type a prompt referencing a Granola meeting and a HeyGen video in the same sentence, Claude identifies the tools it needs and calls them in sequence, first reading your meeting history from Granola, then generating the video through HeyGen.
Claude calls list_meetings to locate the right call by name, date, or attendee, then get_meetings to pull the full notes. It writes a video-length script from that content, then passes it to create_video_agent. The agent handles the rest and you get a video in your HeyGen library when rendering is done.
“Pull my latest Granola meeting and turn it into a 60-second HeyGen video I can drop in Slack for the people who weren't there.”
Connect Granola in Claude Connectors
In Claude, go to the top-left menu → Customize → Connectors. Click +, then Browse connectors, search for Granola, and click +. A sign-in page will open — log in to your Granola account to grant Claude authorization access. For Claude Code, run: claude mcp add granola --transport http https://mcp.granola.ai/mcp
Add HeyGen as a custom connector
Go to developers.heygen.com/mcp/overview and copy the MCP endpoint URL. Back in Claude Connectors, click + → Add custom connector, name it HeyGen, and paste the endpoint: https://mcp.heygen.com/mcp/v1/
Make sure both connectors are toggled on
Before starting a conversation, confirm both the Granola and HeyGen connectors are toggled on in your active Claude session. Both must be enabled at the same time for Claude to call them in the same workflow. You can verify which tools are available by asking Claude: What MCP tools do you have access to?
Run your first prompt and grab the session URL
Try the action-item prompt from above, or start with: Pull my latest Granola meeting and turn it into a 60-second HeyGen video I can drop in Slack.
How three systems connect in one prompt
Claude acts as the orchestrator, reading from Granola, reasoning about the content, and writing to HeyGen. Neither tool knows the other exists. Claude is the bridge.
Granola provides the notes
Exposes meeting history as queryable tools. Claude reads notes, transcripts, and attendees from here.
Claude reads the context
Orchestrates both MCPs. Summarizes notes into a script and calls HeyGen to produce the video.
HeyGen creates the video
Receives the prompt and renders a video. Returns status and video ID when complete.
The tools Claude actually calls
Every tool listed here is real, from the published MCP docs for both Granola and HeyGen. Claude selects and sequences them based on what your prompt asks for.
list_meetings
Scan your meeting list by title, date, or attendees. Returns meeting ID, title, date, and participants. On paid plans, includes notes shared with you and can be filtered by folder.
get_meetings
Fetch full meeting content by ID — private notes, AI-enhanced notes, attendees. This is the tool that pulls the actual meeting substance Claude uses to write a video script.
query_granola_meetings
Chat with your Granola notes directly. Useful for open-ended questions like "what did we decide about pricing across all my calls last month?"
get_meeting_transcript
Zoom into the raw transcript with speaker identification. Useful when you want exact quotes in your video script rather than AI-summarized notes.
create_video_agent
One-shot video generation from a prompt. The agent handles scripting, avatar selection, scene composition, and rendering automatically.
get_video_agent_session
Poll the status, progress, and video_id for an active agent session. Claude calls this after create_video_agent to know when the video is ready and retrieve the download URL.
create_video_from_avatar
Explicit video creation using a specific avatar ID, voice ID, and text script. Use this instead of create_video_agent when you want direct control over avatar look and voice selection.
design_voice
Find voices matching a natural-language description. Returns up to 3 matches. Useful for prompts that don't reference a specific voice.
create_video_translation
Translate a generated video into one or more target languages with voice cloning and lip-sync. Chain this after create_video_agent to produce multilingual recap videos.
Turning meetings into momentum
The goal isn't a summary video. It's a video that causes the necessary stakeholders to engage and move on time, even the ones who weren't on the call.
Meeting action items
The core workflow: pull the latest meeting, generate a 60-second video that opens with the outcome, walks through each decision, calls out every owner by name with their task and deadline, and ends with one explicit ask. Drop it in Slack.
Stakeholder briefings
Pull notes from a strategy, launch, or exec meeting and generate a narrated video for the people who need to act but weren't there. Not a generic summary, but a direct callout of what they need to know and do.
Launch and project decisions
When a launch strategy, project direction, or key decision gets locked in a meeting, generate a video that distributes the decision clearly. Who owns what part of the launch, what's locked, and what still needs input by when.
Cross-meeting accountability
Use query_granola_meetings to surface action items that are still open across multiple calls, then generate a video that names every outstanding owner and outstanding task.
Multilingual meeting recaps
Generate the action-item video from Granola notes in English, then chain create_video_translation for international counterparts — same callouts, their language, lip-synced — from one Claude prompt.
Start creating videos with AI
See how businesses like yours scale content creation and drive growth with the most innovative AI video.


