Skip to main content
Glama

SeedFlow MCP — Dreamina (Seedance 2.5) batch video generation for Claude

Product page npm npm downloads License: MIT

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.

SeedFlow — batch Seedance 2.5 generation in Dreamina, driven from Claude

You, in Claude: «Make a 30-second vertical ad for this bottle, photos in D:/bottle, logo at the end.» Claude, through SeedFlow: dream_statusdream_generate (timeline with 4 stages, @Image 1 = the product) → dream_wait ✓ clips saved to seedflow-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 extensionSeedFlow — 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-mcp

Windows: if PowerShell refuses to run claude.ps1 / npm.ps1 (script execution policy), call the .cmd shims 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

dream_status

Is the extension connected, is a Dreamina video tab open, what is queued — and extension.director, the playbook Claude follows. Call it first.

dream_generate

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 jobId at once.

dream_wait

Wait for a job and return the file paths. Polls every 5 s, up to timeoutSec.

dream_edit

Video-to-video on a finished clip: edit by description, extend, creative upscale, 60 fps interpolate, generate soundtrack, regenerate.

dream_cancel

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.1 only. To reach it from another machine (Tailscale etc.) set OF_HOST and OF_PORT; then every request must carry the token from ~/.seedflow-token (x-seedflow-token header).

  • 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.

Русская версия: 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 tools
dream_cancelA

Remove everything that has not started generating yet. Running clips are not interrupted.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoDreamina 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
folderNoResults subfolder name
promptYesWhat to change (in English). For extend — what happens in the added segment
sourcePromptNoPrompt of the source clip (used to find it). Empty — the most recent clip

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoChaining for all items: every next clip starts from the last frame of the previous one
itemsYesGeneration items, one per clip
modelNoDefault model for all items
aspectNoDefault aspect ratio
folderNoResults subfolder name
lengthNoDefault length
prefixNoFile name prefix
resolutionNoDefault resolution

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYes
timeoutSecNoHow long to wait, default 600 (a Seedance 2.5 clip takes 1–5 min)

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 5 tool updatesv1.0.0
    • First observeddream_cancel
    • First observeddream_edit
    • First observeddream_generate
    • First observeddream_status
    • First observeddream_wait

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers