MCP Server
Vidocu provides a Model Context Protocol (MCP) server that lets AI assistants like Claude interact with the Vidocu API through natural conversation.
The MCP integration works on any Vidocu plan, whether you connect with OAuth or with an API key. Operations draw from your plan's monthly allowance.
Authentication
The MCP server supports two authentication methods:
Option 1: OAuth (recommended)
MCP clients that support OAuth (like Claude Desktop) can authenticate automatically. The user authorizes Vidocu through a browser-based consent flow — no manual key management needed.
The MCP server advertises Vidocu's OAuth authorization server via RFC 9728 Protected Resource Metadata at /.well-known/oauth-protected-resource.
{
"mcpServers": {
"vidocu": {
"url": "https://mcp.vidocu.ai/"
}
}
}
The MCP client handles the OAuth flow automatically — redirects the user to Vidocu's consent screen, obtains tokens, and sends them as Authorization: Bearer on each request.
Option 2: API Key
For MCP clients that don't support OAuth, or for quick testing, pass your API key as a Bearer token:
{
"mcpServers": {
"vidocu": {
"url": "https://mcp.vidocu.ai/",
"headers": {
"Authorization": "Bearer vdo_live_your_key_here"
}
}
}
}
Get your API key from the Vidocu Dashboard.
Server details
| URL | https://mcp.vidocu.ai/ |
| Transport | Streamable HTTP |
| Authentication | Authorization: Bearer (API key or OAuth token) |
| OAuth metadata | https://mcp.vidocu.ai/.well-known/oauth-protected-resource |
Available tools
The MCP server exposes 145 tools, covering the same platform as the REST API: videos and projects, processing, the AI Recorder, the Knowledge Center, courses and training, Studio, Remix, voices and avatars, the brand kit, approvals, and webhooks.
Features keep their plan rules over MCP. The AI Recorder needs a paid plan, the Knowledge Center tools need the Knowledge Center add-on, and every operation draws the same credits it would in the app. Call get_credit_costs to price a job before starting it.
Videos and projects
| Tool | What it does |
|---|---|
get_upload_url | Get an upload URL for a local video file. |
upload_video | Upload a video to Vidocu from a public URL. |
list_videos | List videos in the workspace with optional filtering and pagination. |
get_video | Get details of a specific video including status, duration, URLs, and export info. |
update_video | Rename a video, move it to a different project folder, or adjust the context used when generating content. |
delete_video | Permanently delete a video and its stored files, including any exports. |
create_project | Create a project folder to organize videos in the workspace. |
list_projects | List project folders in the workspace with pagination, search, and sort. |
get_project | Get details of a specific project folder. |
update_project | Update a project folder's name, description, thumbnail, or access. |
delete_project | Delete a project folder. |
Processing
| Tool | What it does |
|---|---|
analyze_video | Start video analysis to generate subtitles and a narration script. |
export_video | Start a video export with burned-in subtitles. |
translate_video | Translate video subtitles to another language. |
generate_voiceover | Generate an AI voiceover for a video. Use list_voices for valid voice IDs. |
get_subtitles | Get subtitles for an analyzed video in JSON or SRT format. |
generate_article | Generate a step-by-step help article from a video. |
get_article | Fetch the help article already generated for a video, without regenerating it. |
process_video | One-shot pipeline: process a video through multiple operations (analyze, voiceover, article, export, translate) in a single request. |
get_script | Get a video's timed script lines. |
update_script | Replace a video's script lines. |
get_download_url | Get the URL of a stored file for a video: the exported video, the original source, the voiceover audio, the SRT, or the thumbnail. |
AI Recorder
| Tool | What it does |
|---|---|
start_recording | Describe a flow in plain words and the AI Recorder drives a browser to produce a screen recording of it. Pass sessionId to pick a saved login. |
list_recordings | AI Recorder jobs for the workspace, newest first. |
get_recording | Status of one recording. |
get_recording_download | A time-limited URL for a completed recording's video file. |
answer_recording_prompt | Supply a value the agent paused to ask for. |
delete_recording | Remove a recording job from the workspace's list. |
list_recorder_sessions | Logins the recorder has saved, so a recording behind a login doesn't have to sign in again. A site can have several; one per site is the default. |
update_recorder_session | Rename a saved login, make it its site's default, or change its setup instructions or how long it is kept. |
delete_recorder_session | Forget one saved login, by its id. |
Knowledge Center
| Tool | What it does |
|---|---|
get_knowledge_base | The workspace's knowledge base: its public URL, locales and visibility. |
create_knowledge_base | Create the workspace's knowledge base. |
update_knowledge_base | Change the knowledge base's name, slug, locales, visibility (public, or gated behind sign-in), sign-in access or tags. |
delete_knowledge_base | Take the knowledge base offline. |
list_kb_sections | The knowledge base's sections, in display order. |
create_kb_section | Add a section. |
update_kb_section | Rename a section, change its slug, description, thumbnail, visibility, parent or outside readers (sharedWith), or set its name in the knowledge base's other languages (translations). |
delete_kb_section | Delete an empty section. |
reorder_kb_sections | Set the display order of sections. |
list_kb_articles | List articles, newest-edited first. |
create_kb_article | Write a new article. |
get_kb_article | One article, including its full Markdown content. |
update_kb_article | Edit an article, publish it by setting state to 'published', or attach/detach its video with linkedVideoId. |
delete_kb_article | Delete an article. |
kb_article_from_video | Publish a video's help article into the knowledge base, linked back to the video. |
translate_kb_article | Translate an article into other locales. |
ask_knowledge_base | Ask a natural-language question and get an answer grounded in the workspace's published articles, with citations. |
reindex_knowledge_base | Rebuild the search embeddings for every published article. |
list_kb_redirects | Redirects configured on the public help site. |
create_kb_redirect | Point an old path at a new one, so links that were published before a slug change keep working. |
delete_kb_redirect | Remove a redirect. |
kb_analytics | How the help site is doing: article counts by state, most-viewed articles, top searches, and searches that returned nothing. |
export_knowledge_base | Build a static, offline copy of the help center as a ZIP: branding, sections, articles, images, exported videos and client-side search. |
list_kb_exports | Offline bundles built for this knowledge base, newest first. |
get_kb_export | One offline bundle: progress while it builds, then the download link, counts and any videos that were skipped. |
Courses
| Tool | What it does |
|---|---|
list_courses | List courses. |
create_course | Turn a document (PDF, DOCX, PPTX, Keynote, TXT) or an existing video into a course. |
get_course | Get a course with its modules. |
update_course | Rename a course, change the planner instructions, file it under a project folder, or set who may take it and what counts as finishing a module. |
course_progress | Who is getting through a course. |
delete_course | Delete a course plan. |
get_course_storyboard | Get every module's scenes, plus omissions (source content the storyboard deliberately left out) and warnings (review hints). |
build_course_storyboard | Build the storyboard for one module. |
generate_course_module | Build one module into a video made of editable slides (one per storyboard scene, each with its own voiceover). |
Training
| Tool | What it does |
|---|---|
list_modules | Training modules in the workspace, most recently updated first. |
generate_module | Write a quiz from a video or a knowledge-base article. |
get_module | One module with its questions. |
update_module | Edit a module's title, description, questions, settings or state. |
delete_module | Delete a module. |
lock_module | Freeze a module permanently. |
translate_module | Translate a module's questions into other locales. |
list_module_translations | A module's translations. |
submit_module_attempt | Submit someone's answers and record the graded result. |
get_module_results | Attempts on a module with the pass rate and average score. |
training_planner | Every training against every person, most urgent first. |
set_training_deadline | Set the date by which one person must complete one training, or pass dueAt: null to clear it. |
withdraw_qualification | Take a training qualification away from one or more people, with a reason. |
list_training_people | The roster of people this workspace trains, plus anyone who has training records but is not on the roster yet. |
add_training_person | Add somebody to the training roster before they have taken anything, so they appear against every training as not started. |
list_module_passers | Distinct people who have passed a module, with when they last passed. |
list_module_qualifications | Who a trainer has signed off on a module. |
qualify_person | Record that a trainer has signed this person off on a module. |
module_analytics | Workspace-wide training rollups. |
Studio
| Tool | What it does |
|---|---|
list_studio_projects | Multi-track editor projects, most recently updated first. |
create_studio_project | Create an empty Studio project with the editor's default canvas and one track. |
get_studio_project | One Studio project including its full timeline. |
update_studio_project | Rename a Studio project, move it to a folder, or change its canvas settings. |
delete_studio_project | Delete a Studio project and its timeline. |
set_studio_timeline | Replace a project's whole timeline. |
duplicate_studio_project | Copy a Studio project, timeline and all. |
export_studio_project | Render a Studio project's timeline to a video. |
share_studio_project | Get or create a public share link for a Studio project. |
list_studio_templates | Templates available to the workspace: its own, plus Vidocu's global gallery (marked global: true). |
use_studio_template | Start a new Studio project from a template. |
Remix
| Tool | What it does |
|---|---|
list_remixes | Remixes in the workspace, most recently updated first. |
create_remix | Set up a remix from a workspace video (videoId) or an external URL (videoUrl plus durationSec). |
get_remix | One remix, including the full analysis once its status is 'ready'. |
update_remix | Rename a remix or move it to a project folder. |
delete_remix | Delete a remix and its analysis. |
analyze_remix | Find the shorts worth cutting and draft the blog and social copy. |
export_remix | Produce one output from an analyzed remix. |
regenerate_remix_text | Rewrite the blog post, LinkedIn posts or X thread from the analyzed transcript. |
list_remix_exports | Exports produced from a remix, with their status and download URLs. |
Voices, avatars and languages
| Tool | What it does |
|---|---|
list_languages | List every language Vidocu can transcribe, translate and narrate, with the exact code each operation expects. |
list_voices | List voices that can be used as voiceId when generating a voiceover. |
delete_voice | Delete one of the workspace's cloned voices. |
list_avatars | List AI avatars usable with the avatar generation tool. |
get_avatar | Get one avatar by ID. |
create_avatar | Create a photo avatar for the workspace from an image URL. |
Brand kit
| Tool | What it does |
|---|---|
get_brand_kit | Get the workspace's Brand Kit. |
update_brand_kit | Change Brand Kit defaults. |
get_pronunciations | Get the workspace's pronunciation overrides. |
set_pronunciations | Replace the workspace's pronunciation overrides. |
list_brand_skills | List the workspace's brand skills. |
create_brand_skill | Create a brand skill: markdown instructions describing writing style, terminology, pacing or structure. |
update_brand_skill | Change a brand skill's name, domain or content. |
delete_brand_skill | Delete a brand skill. |
get_glossary | Get the workspace's glossary. |
set_glossary | Replace the workspace's glossary. |
import_glossary | Import glossary terms from CSV text. |
list_brand_assets | The reusable files a workspace renders with: opening and closing scenes, watermarks, music, backgrounds. |
create_brand_asset | Record an already-uploaded file as a brand asset. |
delete_brand_asset | Remove a brand asset record. |
Approvals, locks and comments
| Tool | What it does |
|---|---|
lock_video | Freeze a video's content so it stays stable through an approval cycle. |
unlock_video | Unfreeze a locked video so it can be edited again. |
request_approval | Send a video for approval. |
list_approvals | List approval requests for the workspace, newest first. |
get_video_approvals | Every approval round for one video, newest first. |
decide_approval | Approve or reject an approval request. |
withdraw_approval | Withdraw a pending approval round. |
list_comments | List review comments on a video, oldest first. |
add_comment | Add a review comment to a video, optionally pinned to a timestamp in seconds. |
delete_comment | Delete a review comment from a video. |
Micro-tools
| Tool | What it does |
|---|---|
list_tools | List all available Vidocu video processing tools. |
get_tool | Get details and parameter schema for a specific tool. |
execute_tool | Execute a video processing tool. |
Jobs, usage and webhooks
| Tool | What it does |
|---|---|
get_job_status | Check the status of an async job (analysis, export, translation, voiceover, tool execution, or process pipeline). |
list_jobs | List recent jobs for the workspace, newest first. |
get_usage | Get the current API plan, usage counters, and limits for the authenticated workspace. |
get_credit_costs | What each API operation costs, alongside the current balance. |
list_webhooks | List webhook subscriptions for the workspace. |
create_webhook | Subscribe an HTTPS endpoint to Vidocu events. |
update_webhook | Change a webhook's URL, event subscriptions, or enabled state. |
delete_webhook | Delete a webhook subscription. |
OAuth scopes
With OAuth, the consent screen lists the scopes the client asks for, grouped by area, before you approve. Each tool needs one scope, for example videos:read for list_videos or recordings:write for start_recording. The connection acts as the user who approved it, so their workspace role still decides what each tool may do.
See OAuth Scopes for every scope and what it grants.
Async operations
Some operations (analyze, export, translate, voiceover, process, execute tool) run asynchronously. These tools return a jobId immediately. Use get_job_status to check progress:
You: "Analyze this video: https://example.com/demo.mp4"
Claude: I'll upload and analyze the video.
→ calls upload_video
→ calls analyze_video → returns { jobId: "analysis_..." }
Claude: The analysis is running. Let me check the status.
→ calls get_job_status → returns { status: "completed", result: { ... } }
Claude: Analysis complete! The video has 24 subtitles generated.
Example conversations
Generate subtitles:
"Upload this video and generate English subtitles: https://example.com/demo.mp4"
Export with subtitles:
"Export my latest video with subtitles burned in"
Translate:
"Translate the subtitles for video vid_abc123 to Spanish and French"
Full pipeline:
"Process this video end-to-end — analyze it, generate a help article, and export: https://example.com/tutorial.mp4"