Skip to main content

MCP Server

Vidocu provides a Model Context Protocol (MCP) server that lets AI assistants like Claude interact with the Vidocu API through natural conversation.

Available on every plan

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:

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​

URLhttps://mcp.vidocu.ai/
TransportStreamable HTTP
AuthenticationAuthorization: Bearer (API key or OAuth token)
OAuth metadatahttps://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​

ToolWhat it does
get_upload_urlGet an upload URL for a local video file.
upload_videoUpload a video to Vidocu from a public URL.
list_videosList videos in the workspace with optional filtering and pagination.
get_videoGet details of a specific video including status, duration, URLs, and export info.
update_videoRename a video, move it to a different project folder, or adjust the context used when generating content.
delete_videoPermanently delete a video and its stored files, including any exports.
create_projectCreate a project folder to organize videos in the workspace.
list_projectsList project folders in the workspace with pagination, search, and sort.
get_projectGet details of a specific project folder.
update_projectUpdate a project folder's name, description, thumbnail, or access.
delete_projectDelete a project folder.

Processing​

ToolWhat it does
analyze_videoStart video analysis to generate subtitles and a narration script.
export_videoStart a video export with burned-in subtitles.
translate_videoTranslate video subtitles to another language.
generate_voiceoverGenerate an AI voiceover for a video. Use list_voices for valid voice IDs.
get_subtitlesGet subtitles for an analyzed video in JSON or SRT format.
generate_articleGenerate a step-by-step help article from a video.
get_articleFetch the help article already generated for a video, without regenerating it.
process_videoOne-shot pipeline: process a video through multiple operations (analyze, voiceover, article, export, translate) in a single request.
get_scriptGet a video's timed script lines.
update_scriptReplace a video's script lines.
get_download_urlGet 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​

ToolWhat it does
start_recordingDescribe 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_recordingsAI Recorder jobs for the workspace, newest first.
get_recordingStatus of one recording.
get_recording_downloadA time-limited URL for a completed recording's video file.
answer_recording_promptSupply a value the agent paused to ask for.
delete_recordingRemove a recording job from the workspace's list.
list_recorder_sessionsLogins 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_sessionRename a saved login, make it its site's default, or change its setup instructions or how long it is kept.
delete_recorder_sessionForget one saved login, by its id.

Knowledge Center​

ToolWhat it does
get_knowledge_baseThe workspace's knowledge base: its public URL, locales and visibility.
create_knowledge_baseCreate the workspace's knowledge base.
update_knowledge_baseChange the knowledge base's name, slug, locales, visibility (public, or gated behind sign-in), sign-in access or tags.
delete_knowledge_baseTake the knowledge base offline.
list_kb_sectionsThe knowledge base's sections, in display order.
create_kb_sectionAdd a section.
update_kb_sectionRename 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_sectionDelete an empty section.
reorder_kb_sectionsSet the display order of sections.
list_kb_articlesList articles, newest-edited first.
create_kb_articleWrite a new article.
get_kb_articleOne article, including its full Markdown content.
update_kb_articleEdit an article, publish it by setting state to 'published', or attach/detach its video with linkedVideoId.
delete_kb_articleDelete an article.
kb_article_from_videoPublish a video's help article into the knowledge base, linked back to the video.
translate_kb_articleTranslate an article into other locales.
ask_knowledge_baseAsk a natural-language question and get an answer grounded in the workspace's published articles, with citations.
reindex_knowledge_baseRebuild the search embeddings for every published article.
list_kb_redirectsRedirects configured on the public help site.
create_kb_redirectPoint an old path at a new one, so links that were published before a slug change keep working.
delete_kb_redirectRemove a redirect.
kb_analyticsHow the help site is doing: article counts by state, most-viewed articles, top searches, and searches that returned nothing.
export_knowledge_baseBuild a static, offline copy of the help center as a ZIP: branding, sections, articles, images, exported videos and client-side search.
list_kb_exportsOffline bundles built for this knowledge base, newest first.
get_kb_exportOne offline bundle: progress while it builds, then the download link, counts and any videos that were skipped.

Courses​

ToolWhat it does
list_coursesList courses.
create_courseTurn a document (PDF, DOCX, PPTX, Keynote, TXT) or an existing video into a course.
get_courseGet a course with its modules.
update_courseRename 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_progressWho is getting through a course.
delete_courseDelete a course plan.
get_course_storyboardGet every module's scenes, plus omissions (source content the storyboard deliberately left out) and warnings (review hints).
build_course_storyboardBuild the storyboard for one module.
generate_course_moduleBuild one module into a video made of editable slides (one per storyboard scene, each with its own voiceover).

Training​

ToolWhat it does
list_modulesTraining modules in the workspace, most recently updated first.
generate_moduleWrite a quiz from a video or a knowledge-base article.
get_moduleOne module with its questions.
update_moduleEdit a module's title, description, questions, settings or state.
delete_moduleDelete a module.
lock_moduleFreeze a module permanently.
translate_moduleTranslate a module's questions into other locales.
list_module_translationsA module's translations.
submit_module_attemptSubmit someone's answers and record the graded result.
get_module_resultsAttempts on a module with the pass rate and average score.
training_plannerEvery training against every person, most urgent first.
set_training_deadlineSet the date by which one person must complete one training, or pass dueAt: null to clear it.
withdraw_qualificationTake a training qualification away from one or more people, with a reason.
list_training_peopleThe roster of people this workspace trains, plus anyone who has training records but is not on the roster yet.
add_training_personAdd somebody to the training roster before they have taken anything, so they appear against every training as not started.
list_module_passersDistinct people who have passed a module, with when they last passed.
list_module_qualificationsWho a trainer has signed off on a module.
qualify_personRecord that a trainer has signed this person off on a module.
module_analyticsWorkspace-wide training rollups.

Studio​

ToolWhat it does
list_studio_projectsMulti-track editor projects, most recently updated first.
create_studio_projectCreate an empty Studio project with the editor's default canvas and one track.
get_studio_projectOne Studio project including its full timeline.
update_studio_projectRename a Studio project, move it to a folder, or change its canvas settings.
delete_studio_projectDelete a Studio project and its timeline.
set_studio_timelineReplace a project's whole timeline.
duplicate_studio_projectCopy a Studio project, timeline and all.
export_studio_projectRender a Studio project's timeline to a video.
share_studio_projectGet or create a public share link for a Studio project.
list_studio_templatesTemplates available to the workspace: its own, plus Vidocu's global gallery (marked global: true).
use_studio_templateStart a new Studio project from a template.

Remix​

ToolWhat it does
list_remixesRemixes in the workspace, most recently updated first.
create_remixSet up a remix from a workspace video (videoId) or an external URL (videoUrl plus durationSec).
get_remixOne remix, including the full analysis once its status is 'ready'.
update_remixRename a remix or move it to a project folder.
delete_remixDelete a remix and its analysis.
analyze_remixFind the shorts worth cutting and draft the blog and social copy.
export_remixProduce one output from an analyzed remix.
regenerate_remix_textRewrite the blog post, LinkedIn posts or X thread from the analyzed transcript.
list_remix_exportsExports produced from a remix, with their status and download URLs.

Voices, avatars and languages​

ToolWhat it does
list_languagesList every language Vidocu can transcribe, translate and narrate, with the exact code each operation expects.
list_voicesList voices that can be used as voiceId when generating a voiceover.
delete_voiceDelete one of the workspace's cloned voices.
list_avatarsList AI avatars usable with the avatar generation tool.
get_avatarGet one avatar by ID.
create_avatarCreate a photo avatar for the workspace from an image URL.

Brand kit​

ToolWhat it does
get_brand_kitGet the workspace's Brand Kit.
update_brand_kitChange Brand Kit defaults.
get_pronunciationsGet the workspace's pronunciation overrides.
set_pronunciationsReplace the workspace's pronunciation overrides.
list_brand_skillsList the workspace's brand skills.
create_brand_skillCreate a brand skill: markdown instructions describing writing style, terminology, pacing or structure.
update_brand_skillChange a brand skill's name, domain or content.
delete_brand_skillDelete a brand skill.
get_glossaryGet the workspace's glossary.
set_glossaryReplace the workspace's glossary.
import_glossaryImport glossary terms from CSV text.
list_brand_assetsThe reusable files a workspace renders with: opening and closing scenes, watermarks, music, backgrounds.
create_brand_assetRecord an already-uploaded file as a brand asset.
delete_brand_assetRemove a brand asset record.

Approvals, locks and comments​

ToolWhat it does
lock_videoFreeze a video's content so it stays stable through an approval cycle.
unlock_videoUnfreeze a locked video so it can be edited again.
request_approvalSend a video for approval.
list_approvalsList approval requests for the workspace, newest first.
get_video_approvalsEvery approval round for one video, newest first.
decide_approvalApprove or reject an approval request.
withdraw_approvalWithdraw a pending approval round.
list_commentsList review comments on a video, oldest first.
add_commentAdd a review comment to a video, optionally pinned to a timestamp in seconds.
delete_commentDelete a review comment from a video.

Micro-tools​

ToolWhat it does
list_toolsList all available Vidocu video processing tools.
get_toolGet details and parameter schema for a specific tool.
execute_toolExecute a video processing tool.

Jobs, usage and webhooks​

ToolWhat it does
get_job_statusCheck the status of an async job (analysis, export, translation, voiceover, tool execution, or process pipeline).
list_jobsList recent jobs for the workspace, newest first.
get_usageGet the current API plan, usage counters, and limits for the authenticated workspace.
get_credit_costsWhat each API operation costs, alongside the current balance.
list_webhooksList webhook subscriptions for the workspace.
create_webhookSubscribe an HTTPS endpoint to Vidocu events.
update_webhookChange a webhook's URL, event subscriptions, or enabled state.
delete_webhookDelete 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"