dreamina-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dreamina-mcpTurn my product photos into a 15s cinematic ad, vertical, with first and last frames."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SeedFlow MCP — Dreamina (Seedance 2.5) batch video generation for Claude
Dreamina has no public API for its web plans. This MCP server gives Claude Code and Claude Desktop hands inside Dreamina: batch video generation on Seedance 2.5, up to 7 references with roles, first/last frames, 4–30 s timelines, video-to-video edits (edit, extend, upscale, interpolate, soundtrack) and auto-download — on the Dreamina plan you already pay for. No per-second API billing, no API keys.

You, in Claude: «Make a 30-second vertical ad for this bottle, photos in
D:/bottle, logo at the end.» Claude, through SeedFlow:dream_status→dream_generate(timeline with 4 stages,@Image 1= the product) →dream_wait✓ clips saved toseedflow-out/BottleAd/
How it works
Claude Code / Claude Desktop
│ MCP (stdio, JSON-RPC)
▼
dreamina-mcp ── local bridge on 127.0.0.1:8788 ── files → seedflow-out/
▲ HTTP, polled every few seconds
│
SeedFlow Chrome extension ──► Dreamina tab (dreamina.capcut.com)The MCP server (this repo) is pure transport: five tools and a local HTTP bridge, zero dependencies. The SeedFlow Chrome extension does the actual work in the Dreamina tab — it types the prompts, sets model / aspect / length / resolution, attaches references and frames, waits for the render and downloads the clips with clean numbered names. On connect, the extension hands the bridge its director playbook (Seedance 2.5 prompt formula, 50 cinematic techniques, reference roles, credit prices, scene chaining); dream_status passes it to Claude, so Claude behaves like a director, not a typist.
Related MCP server: cutgent
Quick start
1. Install the extension — SeedFlow — Seedance Automation for Dreamina & Claude MCP (the Chrome Web Store listing is in review; the product page has the current install link). First 24 hours are free, no key and no card.
2. Add the MCP server.
Claude Code:
claude mcp add seedflow -- npx -y dreamina-mcpWindows: if PowerShell refuses to run
claude.ps1/npm.ps1(script execution policy), call the.cmdshims instead:claude.cmd mcp add seedflow -- npx.cmd -y dreamina-mcp.
No npm? The same server runs straight from GitHub:
npx -y github:DanikVR/dreamina-seedance-mcp.
Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"seedflow": { "command": "npx", "args": ["-y", "dreamina-mcp"] }
}
}3. Open Dreamina at dreamina.capcut.com/ai-tool/home?type=video and sign in. The extension icon in the Chrome toolbar shows Claude ✓ when the bridge is connected.
4. Talk to Claude. It will ask two or three short questions (goal, platform, materials), propose scenarios on a timeline, name the cost in credits, then shoot:
Make a 30-second ad for a thermal mug, vertical. Photos are in D:/mug. Logo at the end.Clips land in seedflow-out/<folder>/ next to where Claude was started (override with OF_OUT; if that directory is not writable the bridge falls back to ~/seedflow-out).
Tools
Tool | What it does |
| Is the extension connected, is a Dreamina video tab open, what is queued — and |
| Queue one or many clips: prompt, model (Seedance 2.5 / 2.0 Mini draft), aspect, length 4–30 s, resolution, variants, up to 7 references with roles, first/last frames, chaining, expected credits, dry run. Returns |
| Wait for a job and return the file paths. Polls every 5 s, up to |
| Video-to-video on a finished clip: edit by description, extend, creative upscale, 60 fps interpolate, generate soundtrack, regenerate. |
| Drop everything that has not started rendering. |
Full parameter reference: docs/tools.md. The bridge also exposes a plain HTTP API on 127.0.0.1:8788 (/health, /jobs, /jobs/:id, /cancel) for scripts that are not MCP clients.
Seedance 2.5 prompt formula (what the playbook teaches Claude)
One generation is 4–30 seconds. The prompt is a timeline, not a sentence:
[Generation Goal] one line: what the clip is.
[Reference roles] @Image 1 defines the hero's face. @Image 2 defines the product. Do not use @Image 3 for style.
[0-5s] … one camera move with an end state …
[5-12s] … next beat …
{Name says in English, calm: 8–15 words} ← spoken lines, 11 languages
【On-screen text in the user's language】
Audio: sounds of visible actions. NO BGM. No subtitles.Aspect, length and resolution are generation parameters, never prompt text. Draft on Seedance 2.0 Mini for 5 s, final on Seedance 2.5. The extension's 50 one-click techniques (dolly zoom, crash zoom, orbit 360°, bullet time, FPV, hero product spin, match cut, whip pan, logo finale and more) are pre-written formulas for exactly these beats.
Claude skills
skills/ ships two Claude Code skills that turn Claude into a Dreamina director:
seedance-director — always on when the user wants a video: the 5-step dialogue, Seedance 2.5 facts and credits, the prompt formula, a beat → technique map, the catalog of 50 techniques, the edit rules (lock-then-modify) and the three sound layers.
ad-video — one line of brief → storyboard → reference roles → English prompts →
dream_generate/dream_wait.
Copy them into your project's .claude/skills/ (or ~/.claude/skills/ for all projects). The skill bodies are currently in Russian; Claude reads them fine, an English edition is on the roadmap.
What the extension adds
50 one-click cinematic techniques in 10 groups, references with roles (hero, product, background, style), first/last frames and scene chaining so the hero stays the same person from clip to clip, three sound layers, a credit calculator before every run, a manual Studio panel and an in-panel chat assistant for people who don't use Claude — plus a translated Dreamina interface for languages Dreamina doesn't ship (Russian, Arabic, Hindi). Details, screenshots and pricing: lingoflow.pro/seedflow.
Security
The bridge listens on
127.0.0.1only. To reach it from another machine (Tailscale etc.) setOF_HOSTandOF_PORT; then every request must carry the token from~/.seedflow-token(x-seedflow-tokenheader).Only
chrome-extension://origins may call the bridge; everything else gets 403.Nothing leaves your machine except what the extension itself sends to Dreamina. Prompts and clips stay on disk. The extension talks to lingoflow.pro only to validate its licence key.
The extension presses the same buttons you would, with pauses between runs. Your own account, your own plan: no captcha bypass, no private API, no multi-accounting, no watermark removal.
Requirements
Node.js 20 or newer.
Chrome 116+ with the SeedFlow extension.
A Dreamina account with credits (Seedance 2.5 access).
Claude Code or Claude Desktop.
FAQ
Does it work without the extension? No. The MCP server is transport; generation happens inside your Dreamina tab through the extension.
Is the extension free? The first 24 hours after install are free without a key. Then a free week with a card, then a yearly or a one-time licence. Pricing lives on the product page.
Why not the Seedance API? The API bills per second of video; Dreamina plans bill in credits that come out several times cheaper for the same clip, and the plan is what most Dreamina users already have. The comparison is on the product page.
Can I run the bridge on one machine and Claude on another? Yes — OF_HOST=0.0.0.0 OF_PORT=8788 npx -y dreamina-mcp on the machine with Chrome, then point the extension's bridge URL (extension settings) to it and pass the token.
Where do the files go? seedflow-out/ in the current working directory, or OF_OUT=/path.
Links
Product page and pricing: lingoflow.pro/seedflow
Questions, support, ideas: t.me/GuruAppSheet
Sister project for Google Flow (Veo 3 / Omni 1.1): OmniFlow MCP · lingoflow.pro/omniflow
Русская версия: README.ru.md · 中文版: README.zh-CN.md
Sources & thanks
The prompt formula and the techniques inside the extension and the skills were distilled from the official Seedance 2.5 guide, public Dreamina prompting guides and open community repositories, then verified on live generations. If you recognise your work and want a credit line here, open an issue — it will be added.
License
MIT © DanikVR. The SeedFlow Chrome extension is a separate, licensed product.
Available Tools
5 toolsdream_cancelA
Remove everything that has not started generating yet. Running clips are not interrupted.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add one genuinely valuable behavioral fact: running clips are not interrupted, so the effect is limited to the pending queue. However, it omits whether the removal is reversible, what happens to the queue record, whether any auth/permission is needed, and what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, effect first and the non-interruption guarantee second. Nothing is wasted and the operative constraint is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, no-output-schema tool, the description is nearly sufficient: the scope and the key safety boundary are stated. It could still say what happens to already-queued metadata or what the caller gets back, but that is a minor gap for a zero-arg operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The empty schema is consistent with a bulk 'clear pending' action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and its scope: remove all not-yet-started generation jobs, while leaving running clips alone. That distinguishes its effect from dream_generate/dream_edit, but it never names any sibling or explicitly frames itself as the 'cancel/clear queue' counterpart, so an agent must infer positioning from the list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an implicit condition (items that have not started) but no guidance on when to prefer this over alternatives such as letting jobs finish or checking dream_status first. There is no when-not-to-use and no mention of the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dream_editA
Edit an ALREADY FINISHED video in Dreamina (video-to-video Seedance 2.5) from a change description. Opens the clip detail view and triggers the Dreamina action (Edit video, Extend, Creative upscale, Interpolate, Generate soundtrack, Regenerate). Wait for the result with dream_wait.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Dreamina action in the clip detail view: edit (Edit video) — re-shoot per description; extend — extend the clip; upscale — Creative upscale; interpolate — 60 fps; soundtrack — generate a soundtrack; regenerate — re-run the same prompt | |
| folder | No | Results subfolder name | |
| prompt | Yes | What to change (in English). For extend — what happens in the added segment | |
| sourcePrompt | No | Prompt of the source clip (used to find it). Empty — the most recent clip |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the tool opens the clip detail view and is asynchronous ('Wait for the result with dream_wait'), but says nothing about credit cost, reversibility of edits, or permission requirements for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the scope constraint and the follow-up instruction at the end. The action list in parentheses is partly redundant with the enum but is short enough not to bloat the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter async action tool with no output schema, the description covers the operation, the six variants, and the result-retrieval path via dream_wait. Only cost/reversibility details are absent, which is a minor gap given the otherwise complete coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the enum descriptions are already detailed, so the schema does the heavy lifting. The description adds only marginal meaning ('from a change description'), and its parenthetical action list largely duplicates the enum labels.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Edit an ALREADY FINISHED video in Dreamina') with model scope (video-to-video Seedance 2.5), and the emphasis on 'ALREADY FINISHED' implicitly separates it from the generation sibling dream_generate. The description also enumerates the underlying Dreamina actions so the agent knows the operation's breadth.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to dream_wait for the result, which is the critical follow-up step for an async tool. It does not state when to prefer an alternative (e.g., dream_generate for a new clip rather than editing an existing one), so it stops short of full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dream_generateA
Queue a Seedance 2.5 generation in the live Dreamina through the extension. Returns jobId immediately WITHOUT waiting for the clips — wait with dream_wait. File paths (refs/frames) are absolute and are read by the bridge.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chaining for all items: every next clip starts from the last frame of the previous one | |
| items | Yes | Generation items, one per clip | |
| model | No | Default model for all items | |
| aspect | No | Default aspect ratio | |
| folder | No | Results subfolder name | |
| length | No | Default length | |
| prefix | No | File name prefix | |
| resolution | No | Default resolution |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the key behavioral trait — asynchronous queueing with an immediate jobId return rather than the clips — and that file paths are absolute and read by the bridge. It omits permissions/auth needs, credit-charging side effects, and failure behavior when validation fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact clauses, zero padding, and the critical async behavior and the sibling routing are front-loaded before the path detail. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter async generation tool with no output schema, the description covers the essential unknown — that it returns a jobId immediately and that waiting is a separate call — and clarifies path semantics. It is nearly complete, missing only what happens on validation/credit failure and any permission requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description only marginally adds: it clarifies that refs/frames paths are absolute and read by the bridge, which the schema does not state. The other seven top-level parameters are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Queue a Seedance 2.5 generation') plus the execution context ('in the live Dreamina through the extension'), and explicitly separates itself from dream_wait. An agent can distinguish it from dream_wait without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Routes explicitly to the alternative for the blocking case: 'Returns jobId immediately WITHOUT waiting for the clips — wait with dream_wait.' Clear context, but it gives no guidance on when to pick this over siblings like dream_edit, and no stated preconditions beyond that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dream_statusA
Bridge and extension state: whether the SeedFlow extension is connected, whether a Dreamina video-generator tab is open, what is queued — plus extension.director, the director playbook sent by the extension (prompt formula, technique catalog, credits). Call it BEFORE generating: without a live Dreamina tab jobs just pile up. If extension.license is "expired", the extension's access has ended and jobs will wait: ask the user to activate a key (https://lingoflow.pro/seedflow); the queue resumes by itself.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses important behavioral context: the queue behavior when no Dreamina tab is live, the meaning of an expired license, and the fact that the queue self-resumes after activation. It also clarifies what extension.director contains (prompt formula, technique catalog, credits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with what state is reported, then gives the critical usage instruction, then covers the license edge case. Every sentence adds actionable information, and no space is wasted on redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description adequately explains the returned state fields and their operational significance. It covers normal operation, the no-tab failure mode, and the expired-license case, leaving the agent prepared to act on the status information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema has no parameter semantics to add and the baseline is 4. The description rightly focuses on state interpretation and usage rather than parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and its scope: bridge and extension state, including connection, Dreamina tab presence, queue contents, and extension.director details. It clearly distinguishes this status/inspection tool from sibling action tools like dream_generate, dream_edit, dream_wait, and dream_cancel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to call it BEFORE generating and explains the consequence of skipping that step: jobs pile up without a live Dreamina tab. It also gives a specific action path when extension.license is expired, including a URL and the fact that the queue resumes automatically.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dream_waitA
Wait for a job to finish and return the file paths. Polls the bridge until the timeout; returns the intermediate picture if it is not done yet — that is not an error, just call again.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | ||
| timeoutSec | No | How long to wait, default 600 (a Seedance 2.5 clip takes 1–5 min) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose non-obvious behavior: it polls the bridge up to a timeout, and a partial/intermediate result is explicitly not an error — an agent might otherwise treat it as a failure. It omits auth/permission needs and rate-limit or bridge-failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the primary outcome (file paths) and then the polling/partial-result caveat. The em-dash clarification earns its space by preventing a misread of the intermediate return.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description correctly describes return values (file paths on completion, intermediate picture otherwise). This is sufficient for an agent to call and interpret it, though it could say more about what happens on timeout exhaustion or bridge errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: timeoutSec is documented in the schema with a default, but jobId has no description. The description reinforces the timeout's meaning by saying it polls until the timeout, but adds no format or origin detail for jobId, so it only marginally compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: wait/poll for a job to finish and return file paths. It implicitly distinguishes itself from the non-blocking dream_status by describing polling until a timeout, but never names the sibling, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Conveys the usage context (block until a job completes, re-call if not done) but gives no explicit guidance on when to prefer dream_status or dream_cancel over this blocking wait, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
dream_cancel - First observed
dream_edit - First observed
dream_generate - First observed
dream_status - First observed
dream_wait
TDQS
Scored across 5 tools
Each tool maps to a distinct lifecycle stage: status (pre-flight check), generate (new job), edit (modify existing video), wait (poll result), cancel (drop queued jobs). Generate vs edit is clearly delineated by 'new' vs 'already finished video', so an agent can select correctly.
All five tools use the same dream_verb snake_case pattern (dream_status, dream_generate, dream_edit, dream_wait, dream_cancel). Fully predictable and consistent.
Five tools is well-scoped for a generation bridge: the workflow of check-state, submit, edit, wait, and cancel is compact with no redundant entries. Every tool earns its place.
The core async lifecycle (status → generate/edit → wait → cancel) is fully covered, including polling semantics. Minor gaps: no way to list/history past jobs or query an arbitrary job by id outside of wait, but these are workable arounds rather than dead ends.
Maintenance
Related MCP Connectors
Turn Claude into a creative studio: DNA-locked characters, images, video, voiceover — 55 tools.
- mcpOAuthio.styleforge
Brand-aware creative studio for Claude: 200+ tools for on-brand ads, video, email and campaigns.
Create and manage cinematic AI video renders through the Future Video Studio Agent API.
AI image, video, voice and music generation over MCP, routed to Veo 3.1, Seedance 2.5 and more.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables natural language control of DaVinci Resolve, allowing Claude to browse projects, edit timelines, apply color grades, render exports, and perform AI-powered frame analysis via Moondream.12-
- FlicenseNot gradedqualityAmaintenanceEnables Claude to control a full-stack video editor by issuing commands to add clips, text, animations, and render MP4 videos, with changes reflected in real-time in the browser UI.-
- AlicenseNot gradedqualityDmaintenanceEnables video processing operations (speed adjustment, keyframe optimization, concatenation, and file management) using FFmpeg via Claude Desktop.52 npm3MIT
- AlicenseAqualityDmaintenanceEnables Claude Code to generate, edit, blend, and create variations of images using BytePlus SeeDream AI models, with streaming and Firebase sync.6MIT