doc2video

io.github.doc2videoPublished by GitHub account doc2videov0.2.3Updated Oct 29, 2026

Turn documents and photos into narrated AI videos from Claude, ChatGPT, Codex or any MCP client.

VerifiedStreamable HTTPWeb executableMedia & DesignAI & ML

Overview

AI-generated overview

Turns documents and photos into narrated AI videos on doc2video.io, letting an assistant build, review and steer storyboards and produce final videos.

What you can do
  • Create and manage projects from local files, public links, text or an AI draft prompt, and list or inspect them
  • Build the storyboard pipeline (script, keyframes, narration, preview) and poll long-running jobs
  • Review the storyboard with keyframe images and narration, and download keyframes plus a storyboard file
  • Edit scenes: titles, narration text or AI rewrite, visual engine, photo choice, and keyframe regeneration
  • Estimate cost, check credits, create checkout or top-up links, unlock with credits or promo codes, produce and download the final video
When to use it
Useful when someone wants a narrated video made from a folder of documents and photos, or wants an assistant to draft, review and refine the storyboard scene by scene before paying for final production.
Requirements
Either the hosted remote endpoint with OAuth sign-in, or the local npm package run with Node.js 18.18+ over stdio. An account on doc2video.io is needed; the optional DOC2VIDEO_API_KEY can be set instead of browser sign-in. Network access is required, and local-folder uploads only work through the local server or CLI.
Before you install
Final production costs money: AI clips, assembly and download require a purchase, and extra storyboards or new takes are paid from prepaid credits, so confirm with the user before any paid call. Checkout and top-up tools create Stripe payment links. The server uploads local documents and photos to doc2video.io for processing, and the hosted endpoint cannot read local files. The API key is a credential stored in the local config.

Installation

In SourceWeft

  1. Open doc2video in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.doc2video%2Fd2v/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "doc2video": {
      "type": "http",
      "url": "https://doc2video.io/mcp"
    }
  }
}

README

d2v — doc2video CLI and MCP server

[npm] [License: MIT] [Add to Cursor] [Install in VS Code]

Point d2v at a folder of documents and photos and it makes a narrated, AI-produced video on doc2video.io. Drive it yourself, or let Claude or ChatGPT (Codex) drive it for you — either through the CLI or as an MCP server.

bash
d2v create "Spring Open House" ./open-house --duration 1m --aspect 9:16 \  --direction "Warm and inviting, finish on the garden" --build --wait

Install

Requires Node.js 18.18+.

bash
npm install -g doc2video     # installs the `d2v` (and `doc2video`) command

Or run it without installing: npx doc2video <command>.

Log in

bash
d2v login

Your browser opens doc2video. Sign in (or sign up), check the code matches your terminal, click Approve — done. The key is saved to ~/.doc2video/config.json and shows up on the dashboard's API page, where you can revoke it. No browser on this machine? d2v login --no-browser prints the link to open anywhere.

Agents use two steps so they can show you the link: d2v login --start --json (returns the link and code), then d2v login --wait after you approve. Over MCP, the d2v_connect_account tool does the same.

You can also paste a key created on the API page (d2v login --key d2v_…) or set DOC2VIDEO_API_KEY. To target another server (e.g. local dev) use --url http://localhost:3000 or DOC2VIDEO_URL.

What goes in the folder

KindFormatsHow it's used
DocumentsPDF, DOCX, PPTX, Markdown, TXT, CSV, JSONThe story: the script is written from them
PhotosJPG, PNG, WebP, HEIC (iPhone)Shown to the scriptwriter and featured in scenes

Folders are scanned recursively (hidden files skipped). Legacy .doc/.ppt/Keynote/Pages files are skipped with a hint to convert them. A photos-only folder works too — the story is built from the photos and your creative direction. With no files at all, use --draft "description".

Photos are used as-is by default — cropped to the video's shape, and free as still or Ken Burns scenes (you only pay for AI work, e.g. an AI video clip made from the photo). Use --photos restyle to have AI polish them into cinematic keyframes while keeping the real subject, or set it per scene with d2v scene <p> <n> --photo-treatment restyle.

Workflow

bash
d2v create "Name" ./folder [settings] --build --wait   # storyboard: script → keyframes → narration → previewd2v show <project>                                     # scenes, narration, preview URL, next stepsd2v pull <project>                                     # keyframes + storyboard.md to a local folder
# steer, scene by scened2v keyframe  <p> 3 "warmer light, show the sign"      # edit the imaged2v keyframe  <p> 3 --fresh                            # brand-new imaged2v narration <p> 3 --prompt "shorter and punchier"    # AI rewrite + new voice-overd2v narration <p> 3 --text "Exact words."              # exact text + new voice-overd2v scene     <p> 3 --engine veo3                      # still | kenburns | runway | veo3d2v scene     <p> 3 --photo IMG_2041.jpg               # feature a photo (or --photo none)d2v run       <p> preview --wait                       # refresh the preview video
# finish (costs money — you pay in the browser)d2v estimate <p>d2v buy <p> --open          # or: d2v buy <p> --credits, or: d2v redeem <p> CODEd2v produce <p> --wait      # AI clips → final assemblyd2v download <p>

Free storyboards and credits

Each day you get 2 free storyboards and 20 scene redos on unpaid projects. After that, a storyboard costs $0.50 from prepaid credits — pass --use-credits to create --build, build or run to confirm (without it the command stops and tells you the price). Credits also unlock finished videos: d2v buy <p> --credits.

bash
d2v credits                 # balance, free storyboards left today, recent activityd2v credits add 10 --open   # top up $5, $10 or $25 in the browser

Projects can be named by id, 8-character id prefix, or exact name. d2v help <command> shows every option; d2v guide prints the full workflow guide.

Settings (on create and set): --duration auto|30s|1m|2m|5m|10m, --aspect 9:16|16:9, --direction, --voice (see d2v voices), --stability, --photos original|restyle, --consistency/--no-consistency, --client, --email, --phone, --website.

Long-running steps

Everything runs on doc2video's servers; a storyboard takes several minutes and final production longer. --wait blocks with progress on stderr, and Ctrl+C only stops the waiting — the work continues. Pick it back up with d2v wait <project>. Steps can be chained on the server, so a build keeps going even if your terminal closes.

Scripting and agents

Add --json to any command for machine-readable output on stdout (progress stays on stderr). Exit codes: 0 ok, 1 error, 2 usage error, 3 payment required, 4 --wait timed out, 5 rate limit or daily free limit reached.

Use it from Claude or ChatGPT

Hosted MCP server (nothing to install)

doc2video also runs the MCP server for you at https://doc2video.io/mcp. Add it as a custom connector and sign in with your doc2video account when asked (OAuth — no keys to copy):

  • Claude (claude.ai, Desktop, mobile): Settings → Connectors → Add custom connector, URL https://doc2video.io/mcp.
  • Claude Code: claude mcp add --transport http doc2video https://doc2video.io/mcp, then run /mcp to sign in.
  • ChatGPT: add a connector with the server URL https://doc2video.io/mcp (developer mode) and OAuth sign-in.
  • Cursor, VS Code and other clients: a remote server entry such as { "doc2video": { "url": "https://doc2video.io/mcp" } } (VS Code: "type": "http").

The hosted server has the same tools, but it can't see your computer's files: give it text, public links (PDFs, Word and PowerPoint files, photos, web pages), or add files on the project page it links to. To work from local folders, use the CLI or d2v mcp below. Connected apps are listed, and can be disconnected, on your dashboard's API page.

Claude Code / Codex CLI (shell)

Both can simply run d2v. Open a terminal agent in the folder with your files and ask, e.g. "Make a 60-second vertical video from this folder with doc2video, show me the storyboard, and punch up the opening." For better results, install the agent instructions:

  • Claude Code: copy agents/SKILL.md to ~/.claude/skills/doc2video-cli/SKILL.md
  • Codex CLI: append agents/AGENTS.md to ~/.codex/AGENTS.md (or the folder's AGENTS.md)

Both files ship with the package — find them under $(npm root -g)/doc2video/agents/.

MCP (Claude Desktop, Claude Code, Codex, any MCP client)

d2v mcp runs an MCP server over stdio with tools for the whole workflow — including d2v_view_storyboard, which returns the keyframe images so the model can actually see the storyboard and give visual feedback. It's listed in the official MCP Registry as io.github.doc2video/d2v.

The API key below is optional: without one, the d2v_connect_account tool gives you a link to sign in (or sign up) in your browser, and remembers the key.

Cursor / VS Code — use the buttons at the top of this page.

Claude Code

bash
claude mcp add doc2video -- npx -y doc2video mcp# or with a key from doc2video.io/dashboard/api-keys:claude mcp add doc2video -e DOC2VIDEO_API_KEY=d2v_xxx -- npx -y doc2video mcp

Claude Desktop — claude_desktop_config.json:

json
{  "mcpServers": {    "doc2video": {      "command": "npx",      "args": ["-y", "doc2video", "mcp"],      "env": { "DOC2VIDEO_API_KEY": "d2v_xxx" }    }  }}

Codex CLI — ~/.codex/config.toml:

toml
[mcp_servers.doc2video]command = "npx"args = ["-y", "doc2video", "mcp"]env = { DOC2VIDEO_API_KEY = "d2v_xxx" }

With a global install you can use "command": "d2v", "args": ["mcp"] instead of npx.

ChatGPT (web/desktop): ChatGPT connects only to remote MCP servers, so use the hosted server above. Use Codex CLI for local folders.

REST API

The CLI is a thin client over the doc2video REST API — see API.md to call it directly.

Development

bash
npm installnpm run build      # compile to dist/npm test           # build + end-to-end tests against a mock API (no network)npm link           # use your local build as `d2v`

Releases are published from GitHub Actions when a v* tag is pushed: to npm (with provenance) and to the MCP Registry. Issues and pull requests are welcome at github.com/doc2video/cli.

License

The CLI and MCP server are MIT licensed. They're a client for the hosted doc2video service at doc2video.io, which has its own terms.

Source: README.md at commit 40f7cc5

Tools

27

d2v_connect_account

Connect doc2video account

Connect this server to the user's doc2video account. Call it first when other tools say the user is not logged in. It returns a link: ask the user to open it, sign in or sign up, and click Approve, then call this tool again to finish.

Parameterswait_seconds

d2v_list_projects

List projects

List the user's doc2video projects (id, name, status, format).

Takes no parameters.

d2v_get_project

Get project

Full project detail: settings, sources, every scene (narration, visual mode, photo, keyframe URL), jobs, preview/final video, cost estimate and suggested next steps.

Parametersprojectrequired

d2v_list_voices

List narrator voices

Narrator voices available for projects.

Takes no parameters.

d2v_create_project

Create project

Create a video project from local files and folders (uploaded from this machine), public links, written text, or an AI draft prompt. Photos (jpg/png/webp/heic) are featured in scenes; documents (pdf/docx/pptx/md/txt/csv/json) supply the story. Set build: true to start generating the storyboard right away (then poll d2v_wait).

Parametersnamerequiredtextbuildvoicesourcesclient_nameconsistencyuse_creditsaspect_ratiodraft_promptcontact_emailcontact_phone+5 more

d2v_add_sources

Add sources

Upload more local files/folders, add public links, or add written content to a project. Rebuild the storyboard afterwards for them to take effect.

Parameterstextprojectrequiredsources

d2v_remove_source

Remove source

Delete a source document or photo from a project, by document id or filename.

Parametersprojectrequireddocumentrequired

d2v_update_project

Update project settings

Change project settings. They apply to steps run afterwards (e.g. run narration again after a voice change).

Parametersnamevoiceprojectrequiredclient_nameconsistencyaspect_ratiocontact_emailcontact_phonecontact_websitephoto_treatmentvoice_stabilityduration_seconds+1 more

d2v_draft_content

AI-draft source content

Have AI write the video's source content from a short description (saved as the project's AI content brief by default).

Parameterssavepromptrequiredprojectrequired

d2v_suggest_creative_direction

Suggest creative direction

Suggest a creative direction from the project's sources and optional preferences; save: true stores it on the project.

Parameterssaveprojectrequiredpreferences

d2v_build_storyboard

Build storyboard

Queue the storyboard chain on the server: script → keyframes → narration → preview. `from` starts later in the chain. Starting from the script replaces existing scenes, so it needs force: true when scenes exist. Poll d2v_wait afterwards.

Parametersfromforceprojectrequireduse_credits

d2v_run_step

Run pipeline step

Queue one pipeline step (script, keyframes, narration, preview, clips, assemble), optionally chaining more with `then`. clips and assemble require purchase. Poll d2v_wait afterwards.

Parameterssteprequiredthenprojectrequireduse_creditsmax_credits_cents

d2v_wait

Wait for jobs

Block until the project's queued/running jobs finish or timeout_seconds passes (default 50), then return status. If done is false, call again. Storyboards take several minutes.

Parametersprojectrequiredtimeout_seconds

d2v_view_storyboard

View storyboard

See scene keyframe images with their titles and narration. Pass `scenes` to view specific scene numbers (default: all).

Parametersscenesprojectrequired

d2v_update_scene

Update scene

Edit one scene: title, narration text (re-voice with d2v_update_narration), visual engine, approval, or photo. photo accepts a project photo's filename, a document id, an absolute local file path (uploaded), a public link to a photo, or "none" for an AI visual. A photo change regenerates the keyframe unless regenerate_keyframe is false.

Parametersphotoscenerequiredtitleprojectrequiredapprovedvisual_modenarration_textphoto_treatmentregenerate_keyframe

d2v_regenerate_keyframe

Regenerate keyframe

Regenerate one scene's image. With a direction and mode iterate (default when a keyframe exists) the current image is edited; mode fresh creates a new image from the scene description (plus direction). Run the preview step afterwards to update the video.

Parametersmodescenerequiredprojectrequireddirection

d2v_update_narration

Update narration

Change a scene's narration and regenerate its voice-over: pass exact `text`, or a `prompt` for an AI rewrite, or neither to just re-voice. regenerate_audio: false saves text only.

Parameterstextscenerequiredpromptprojectrequiredregenerate_audio

d2v_retry_clip

Retry AI clip

Retry a scene's failed AI video clip, optionally on another engine (still/kenburns drop the clip). AI clips require purchase; retrying a failed clip is free, while a pricier engine or a new take of a working clip may cost credits.

Parametersscenerequiredengineprojectrequireduse_creditsmax_credits_cents

d2v_pull_storyboard

Save storyboard locally

Download every keyframe PNG plus a storyboard.md (titles, narration, prompts) to a local folder.

Parametersprojectrequiredoutput_dir

d2v_estimate_cost

Estimate cost

Price to unlock AI clips, final assembly and download, broken down by each scene's visual engine. Only AI work is charged: photos used as-is are free except for AI video clips.

Parametersprojectrequired

d2v_get_credits

Get credits

The user's prepaid credit balance, free storyboards left today, and recent credit activity.

Takes no parameters.

d2v_unlock_with_credits

Unlock with credits

Unlock a project (AI clips, final assembly, download) by paying its price from the user's credits. Only when the user asks; show d2v_estimate_cost first.

Parametersprojectrequiredmax_credits_centsrequired

d2v_redeem_promo_code

Redeem promo code

Unlock a project with a promo code the user provided (one code per account).

Parameterscoderequiredprojectrequired

d2v_produce_video

Produce final video

Generate AI clips for veo3/runway scenes (if needed) then assemble the final video. Requires purchase; only call when the user asks. Clips beyond what the purchase covers (engines changed to pricier ones after buying) need the user's OK to pay from credits. Poll d2v_wait afterwards.

Parametersprojectrequireduse_creditsmax_credits_cents

d2v_download_video

Download final video

Save the final MP4 to this machine (requires purchase).

Parametersprojectrequiredoutput_path

Version history

1
  1. v0.2.3LatestOct 26, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts