You never call these tools by name — you just ask in plain language, and your assistant picks the right one. This reference lists everything the assistant can do on your behalf across your Dadan library: 70 tools organized into 13 areas.
https://mcp.dadan.io/mcp over streamable HTTP with OAuth 2.1 (no API keys). You never call tools by name — describe the goal in plain language and your assistant picks and chains the right tools. Endpoint, auth, conventions, error codes, and every tool are documented below.
If you're building an agent on top of Dadan, here's how the connector behaves — the conventions, the failure modes, and how tools chain into workflows.
Callers never pass tool names or internal ids. Refer to a video by its title or paste its Dadan link; every result already carries the ids a follow-up step needs, so the assistant threads them across a multi-step request on its own. Each response comes back as both a concise markdown answer and structured data, so an agent can read fields directly instead of parsing prose.
https://mcp.dadan.io/mcp — MCP over streamable HTTP./.well-known/oauth-authorization-server, /.well-known/oauth-protected-resource; registration at /oauth/register. Spec-compliant clients self-configure.destructive / idempotent hints so you can gate or auto-approve them safely.next_cursor; pass it back to fetch the next page.get_job_status until it reports completed. Edits render a new copy by default; the original is untouched.upstream "transcript not ready" signal.limit_exceeded.not_found — the video or id isn't there; re-find it with a search rather than retrying blindly.invalid_argument — a field or value was wrong; the message names which, so you can self-correct.upgrade_required — the action needs a higher Dadan plan; surface the upgrade, don't retry.reauthorization_required — the session expired; prompt the user to reconnect the connector.limit_exceeded — a rate limit or exhausted AI credits; back off, or tell the user.upstream — a transient Dadan-side condition (e.g. a transcript still processing); retry shortly.The assistant assembles these from a single sentence — you don't orchestrate the steps yourself:
Do I call these tools by name? No. You describe your goal in plain language and your assistant picks the right tool and threads any ids across steps. Refer to a video by its title or paste its Dadan link. Each response returns both a markdown answer and structured data an agent can read directly.
How is the server authenticated? With OAuth 2.1 and PKCE plus dynamic client registration — no API keys. Metadata is published at /.well-known/oauth-authorization-server and /.well-known/oauth-protected-resource, with registration at /oauth/register, so spec-compliant clients self-configure. Every call runs as the signed-in user.
How do long-running edits work? Studio edits, transcription, and translation run in the background and return a job. Poll get_job_status until it reports completed before relying on the result. Edits render a new copy by default, leaving the original untouched. A transcript is required first for summaries, notes, chapters, metadata, and translation.
Send the Dadan bot to sit in on your online meetings and record them straight to your library.
record_meeting
Sends the Dadan bot to join a live meeting from its link — Zoom, Google Meet, Teams, or GoTo — and records it into your library. Each recording draws on your account's meeting allowance.
Try "My Zoom is starting — join and record it: https://zoom.us/j/123456789"
get_meeting_allowance
Shows how much of your meeting-recording allowance you've used this period — minutes used, your total, what's left, and when it resets.
Try "How many meeting-recording minutes do I have left this month?"
get_speaker_timeline
For a recorded meeting, breaks down who spoke and for how long, with each person's share of the talk time in percent and seconds.
Try "Who did most of the talking in yesterday's client call?"
list_calendars
Lists the calendar providers you've connected for automatic recording — Google or Microsoft/Outlook — and flags any that need reconnecting.
Try "Which of my calendars are connected for auto-recording?"
list_upcoming_meetings
Shows the upcoming meetings on a connected calendar, each with its title, start time, and join link. You'll need a calendar linked first.
Try "What meetings do I have coming up tomorrow?"
Find the right video and pull up everything you need to know about it.
search_videos
Searches a workspace across titles, descriptions, tags, and transcript text, newest first and paginated. Leave the query empty to list everything.
Try "Find my videos that mention the pricing update"
get_video
Pulls the full details for one video — title, description, tags, length, status, share link, thumbnail, privacy, view count, and whether it has a transcript yet.
Try "Show me the details for my onboarding walkthrough"
list_folders
Lists the folders in a workspace with a video count for each. Their ids let you narrow a search to a single folder.
Try "What folders do I have, and how many videos are in each?"
list_workspaces
Lists the workspaces you belong to, including your default. Usually the first step when another action needs to know which workspace to work in.
Try "Which workspaces do I have access to?"
Turn what's said in a video into text, then into summaries, notes, chapters, and metadata. The transcript is the foundation every AI feature builds on.
transcribe_video
Starts transcribing a video in the language you choose. This is the first step after uploading, since summaries, tags, titles, and translations all build on the transcript.
Try "Transcribe my product demo in English"
get_transcript
Returns the timestamped transcript, with speaker labels where available — best for quoting or close analysis. Long transcripts come back in pages.
Try "Pull the full transcript of my keynote so I can quote from it"
generate_summary
Generates a fresh AI summary of a video in markdown. It's created on the spot rather than stored, uses one AI credit, and needs a transcript first.
Try "Give me a short summary of this training video"
generate_meeting_notes
Turns a transcript into structured meeting notes using a Note-Taker template, returned as markdown. Uses one AI credit and needs a transcript first.
Try "Write up meeting notes from this recorded standup"
get_chapters
Returns the AI-generated chapter list with start and end times — a quick way to navigate a long recording.
Try "Break this hour-long webinar into chapters"
generate_metadata
Uses AI to write a title, description, and tags from the transcript and applies them to the video. Needs a transcript first.
Try "Come up with a title, description, and tags for this video"
Caption your videos in other languages so more people can follow along.
list_translation_languages
Lists the languages a transcript can be translated into, each with its code and name.
Try "What languages can I translate this video into?"
translate_video
Translates a video's transcript into another language and produces captions from it. This runs in the background, is plan-gated, uses AI credits, and needs a transcript first.
Try "Add Spanish captions to my welcome video"
list_translations
Lists the languages a video already has captions for, including its original language.
Try "Which languages does this video already have captions in?"
get_translation
Returns the translated caption text for one language, as timestamped segments.
Try "Show me the French captions for this video"
delete_translation
Removes one language's translation. Your original transcript stays untouched.
Try "Remove the German captions from this video"
Render an edited copy of a video without opening an editor. These edits run in the background — renders take a while, so check progress with a job-status request — and each one creates a new copy by default, leaving your original untouched.
trim_video
Keeps one time range or several and cuts everything else, with times given in seconds.
Try "Trim my recording down to just the 2 to 5 minute stretch"
crop_video
Reframes a video to a social aspect ratio — for example vertical 9:16 for Shorts, Reels, or TikTok. Many ratios are supported.
Try "Make a vertical version of this for TikTok"
add_text_overlay
Adds a text overlay — a title card, lower-third, end slate, or call-to-action — with timing in seconds and optional styling.
Try "Put a title card reading 'Q3 Recap' on the first five seconds"
add_watermark
Overlays a logo, sticker, or image from a public image URL. You can set its corner or center position, scale, opacity, and time window.
Try "Add my logo to the bottom-right corner of this video"
blur_region
Blurs one or more regions to hide things like emails, faces, or sensitive on-screen details. Regions are given in canvas pixels, with an optional time window.
Try "Blur the top-right corner from 0:10 to 0:30 — an email shows there"
add_zoom
Adds a punch-in or Ken Burns zoom, set by a magnification above 1, a focus point in canvas pixels, and a time window.
Try "Add a punch-in zoom around the one-minute mark"
adjust_volume
Mutes, ducks, or sets the level of the video's own audio over specific windows — without adding any music.
Try "Mute the first ten seconds of this clip"
add_background_music
Mixes a soundtrack over a video from a public audio URL. You set the music level and can optionally mute or duck the original audio.
Try "Add soft background music under this intro"
stitch_videos
Combines clips from one or more videos into a single video — played back to back, as picture-in-picture overlays, or both.
Try "Stitch my intro clip and my demo clip into one video"
Get videos into your library and manage them from upload through publishing and archiving.
upload_video
Uploads a video into your library from a public, direct video URL and hands back the Dadan share link.
Try "Upload the video at this link into my library"
prepare_upload
Opens the inline upload widget — in apps that support it — so you can pick a file from your own device. The file uploads straight from your browser to Dadan.
Try "I want to upload a video file from my laptop"
update_video
Updates a video's title, description, or tags. Only the fields you mention change.
Try "Rename this video to 'March All-Hands' and add the tag internal"
set_chapters
Sets or replaces the chapter markers on a video, each with a title and a start time. This one is plan-gated.
Try "Add chapters at 0:00 Intro, 2:30 Demo, and 8:00 Q&A"
move_video
Moves a video into a different folder or library.
Try "Move this video into my Marketing folder"
clone_video
Duplicates a video within the same library — handy for making a variant before you edit. You get back the copy's id.
Try "Make a copy of this video before I start trimming it"
archive_video
Archives a video, a soft-delete you can undo. Nothing is permanently removed, and you can bring it back with a restore.
Try "Archive this old draft so it's out of the way"
restore_video
Brings back a video you archived earlier.
Try "Restore the video I archived yesterday"
make_video_public
Makes a video public so anyone can watch, or switches it back to private. This is a publishing action.
Try "Make my launch announcement public"
schedule_video
Schedules when a video goes live, using an ISO-8601 time in UTC, with an optional end time to unpublish it.
Try "Publish this video next Monday at 9am UTC"
Make videos interactive and capture demand right inside the player.
add_interaction
Adds an interactive element at a chosen timestamp — a poll, quiz, question, rating, free-text prompt, or a call-to-action / lead form.
Try "Add a quick poll at the two-minute mark asking which feature they'd use most"
list_interactions
Lists the interactions already on a video, each with its id, type, timestamp, and prompt.
Try "What interactions are on my demo video?"
delete_interaction
Removes a single interaction, identified by its type and id.
Try "Delete the poll on this video"
get_form_responses
Returns how viewers answered a video's polls, quizzes, and forms — question, answer, and who responded when that's known — newest first.
Try "What did people answer on my feedback poll?"
list_captured_leads
Lists the leads captured through in-video lead forms — name, email, source video, and any extra fields — newest first. You can also narrow it to one video.
Try "Show me the leads that came in through my pricing video"
Collect videos from other people with a simple request link.
create_recording_request
Creates a "request a recording" link you can send someone. Whatever they record lands straight in your library.
Try "Create a link so a candidate can record a two-minute intro for me"
list_recording_requests
Lists your recording-request links — your Requests History — newest first, each with its submission count.
Try "Show me all my recording requests and how many replies each got"
get_recording_request
Pulls up one recording request by id, with its link and how many submissions it's received.
Try "How many people have responded to my interview request?"
revoke_recording_request
Disables a request link so it stops accepting new submissions. Videos already collected are unaffected.
Try "Turn off my old feedback request link"
Group videos into collections you can share as one link.
create_playlist
Creates a named, shareable playlist and hands back its id and share link.
Try "Make a playlist called 'Onboarding Series'"
add_video_to_playlist
Adds a video to a playlist.
Try "Add this welcome video to my Onboarding Series playlist"
remove_video_from_playlist
Removes a video from a playlist. The video itself stays in your library.
Try "Take the outdated clip out of my onboarding playlist"
list_playlists
Lists or searches your playlists, each with a video count. Results come back in pages.
Try "What playlists do I have?"
get_playlist
Pulls up one playlist by id, including how many videos it holds.
Try "Show me what's in my product-tour playlist"
update_playlist
Updates a playlist's name, description, or visibility.
Try "Rename my playlist to 'Customer Onboarding' and make it public"
share_playlist
Returns the public, shareable link for a playlist.
Try "Give me the share link for my onboarding playlist"
delete_playlist
Deletes a playlist. The videos in it stay in your library.
Try "Delete my old test playlist"
Organize your library into folders and open it up to a team.
create_folder
Creates a folder — a library — and can nest it under a parent folder.
Try "Create a folder called 'Sales Demos'"
rename_folder
Renames a folder.
Try "Rename my 'Misc' folder to 'Archive 2025'"
move_folder
Moves a folder under a different parent.
Try "Move my Demos folder inside the Sales folder"
archive_folder
Archives a folder as a soft-delete, taking its videos with it. You can restore it later.
Try "Archive the folder from last year's campaign"
restore_folder
Restores an archived folder along with its videos.
Try "Bring back the campaign folder I archived"
create_team
Creates a team — a shared library others can be invited into.
Try "Set up a team space for my marketing group"
list_team_members
Lists a team's members, each with their name, email, and role.
Try "Who's on my marketing team space?"
See what's landing and where to focus next.
get_video_analytics
Shows the engagement on a single video — views, unique viewers, play rate, CTA clicks, form submissions, and poll responses.
Try "How is my launch video performing?"
get_insights
Pulls a workspace-level dashboard for one metric, such as KPIs, top videos, views over time, geography, or conversions.
Try "Show me my top videos this month"
analyze_library
Reviews engagement across your videos and returns prioritized, practical recommendations — like which videos would benefit from a CTA or lead form.
Try "Which of my videos should I add a lead form to?"
Get everything you need to share a video in one place.
create_share_link
Returns the ways to share a video — its Dadan page, embed HTML, and a one-click watch link that plays in the browser with no login.
Try "Give me a link I can send someone to watch this video"
Check your plan, keep tabs on background jobs, and confirm the server's reachable.
get_plan_usage
Shows your plan — free, lite, pro, or business — and your usage against its limits, such as video count and storage (unlimited shows as no limit).
Try "How much of my storage have I used?"
get_job_status
Reports the status of a video's most recent background edit — processing, completed, failed, or none. Worth checking until it's completed before you rely on the result.
Try "Is my vertical crop done rendering yet?"
ping
A quick health check that replies "pong" when the server is reachable.
Try "Are you connected to Dadan right now?"