Skip to main content
Glama

Seedance MCP

CI License: MIT

A local stdio MCP server that gives Codex and other MCP clients six tools for video generation: inspect models, upload reference images, submit jobs, query progress, download results, and check connectivity.

简体中文 · API mapping · Contributing

This is an independent adapter for the SeeDance-compatible API described below. It is not an official ByteDance, Seedance, or OpenAI project. The default API host (sd2.bantakal.com) is a third-party service; an official Seedance API key is not interchangeable with its dk_ keys. Check your provider's access terms and current pricing before submitting a job. This repository provides the adapter, not API access or model weights.

Requirements

  • Node.js 22 or newer and npm.

  • An account and dk_ API key from a compatible provider, required for authenticated operations.

  • A local MCP client such as Codex. Server discovery works without an API key.

Related MCP server: MCP Server SimpleNGAT

Install from source

git clone https://github.com/xiao345/seedance-mcp.git
cd seedance-mcp
npm ci --ignore-scripts
node src/index.mjs --help

No compilation is required. Dependencies are locked in package-lock.json. Installation does not require a credential and does not generate videos. The project is distributed on GitHub; no npm registry installation is assumed.

Configure credentials

On macOS/Linux, create a private configuration file outside the repository:

mkdir -p "$HOME/.config/seedance-mcp"
chmod 700 "$HOME/.config/seedance-mcp"
cp -n .env.example "$HOME/.config/seedance-mcp/.env"
chmod 600 "$HOME/.config/seedance-mcp/.env"

Edit that file and set SEEDANCE_API_KEY to your provider's dk_ key. Do not paste keys into a chat, issue, or commit.

Variable

Default

Purpose

SEEDANCE_API_KEY

Empty

Provider API key

SEEDANCE_BASE_URL

https://sd2.bantakal.com

API origin; HTTPS required outside loopback

SEEDANCE_CONFIG_FILE

~/.config/seedance-mcp/.env

Override credential file location

Environment variables take precedence over the file. Configuration is read on each tool call, so rotating a key does not require restarting the server. A .env file in the checkout is not automatically loaded. On Windows, the default is .config/seedance-mcp/.env under your user home; create it with your editor and restrict its filesystem permissions, or set SEEDANCE_CONFIG_FILE to a private location.

Connect to Codex

From the cloned directory, register absolute paths so desktop startup does not depend on your shell configuration:

codex mcp add seedance -- "$(command -v node)" "$PWD/src/index.mjs"

Then add startup_timeout_sec = 20 and tool_timeout_sec = 120 to the generated [mcp_servers.seedance] table in ~/.codex/config.toml. An equivalent manual configuration is:

[mcp_servers.seedance]
command = "/absolute/path/to/node"
args = ["/absolute/path/to/seedance-mcp/src/index.mjs"]
startup_timeout_sec = 20
tool_timeout_sec = 120

Replace both paths with your actual locations. On Windows, use paths such as C:/Program Files/nodejs/node.exe and C:/projects/seedance-mcp/src/index.mjs. Restart your client after adding a server. An already-open chat may need to be reopened. The CLI and desktop app share the configuration for the same Codex host; see the official Codex MCP documentation.

Other MCP clients can use the same command and args. For clients using mcpServers JSON:

{
  "mcpServers": {
    "seedance": {
      "command": "/absolute/path/to/node",
      "args": ["/absolute/path/to/seedance-mcp/src/index.mjs"]
    }
  }
}

If your client has a per-tool timeout, set it to at least 120 seconds for downloads. Video generation itself is asynchronous and returns immediately.

Tools

Tool

Operation

Inputs

seedance_health

Connectivity and configuration status; no authentication

None

seedance_list_models

Enabled models and current credit prices

None

seedance_upload_image

Send a local reference image to the provider

image_path (absolute)

seedance_create_video

Submit one paid asynchronous job

prompt, optional model, duration, ratio, reference_asset_ids

seedance_get_video

Query status, error, and result metadata

task_id

seedance_download_video

Save a completed video locally

task_id, output_path (absolute)

Defaults: seedance-2.0, 10 seconds, 9:16, 720p, no reference images. For the documented 2.0 model, durations are 10/15 seconds and reference images are limited to eight. seedance-2.5-30s, if enabled by the provider, requires duration: 30. Model availability and price come from seedance_list_models; they may change. Ratios are 9:16, 16:9, and 1:1.

Example request to your MCP client:

Use seedance to make a 10-second 16:9 video of a corgi running across grass, with a slow camera push-in. Keep the task ID, wait for completion, and download it to an absolute path I provide.

For image references, first upload local images, then pass their returned asset IDs in order. A prompt containing @Image2 needs at least two IDs. Images must be PNG/JPEG/WEBP, at most 5 MB each.

Job lifecycle and costs

  1. Query the enabled models.

  2. Optionally upload reference images.

  3. Submit once and retain the task ID. Submission consumes provider credits.

  4. Query every 10–20 seconds until succeeded, failed, or interrupted.

  5. Download completed results promptly. The supplied provider documentation describes an upstream retention window of approximately 24 hours; do not rely on link expiry alone.

The server does not automatically retry POST requests or poll indefinitely inside a tool call. If submission times out, its outcome is unknown: check the provider's generation history before creating another job to avoid duplicate charges. Refund policy is controlled by the provider.

Verification and development

npm run check
npm run format:check
npm test
npm run verify
npm pack --dry-run

Tests use loopback HTTP fixtures and real MCP SDK clients, with no provider credentials or paid generation. npm run verify is offline: it checks the stdio handshake and tool catalog without Codex or an API call.

Optional read-only live checks:

npm run verify:live   # Local entry point: health + authenticated model list
npm run verify:codex  # Same checks using the command registered as seedance in Codex

These require network access and a configured provider key. They do not create videos. verify:codex additionally requires the Codex CLI and its existing server registration.

Data handling and limitations

Prompts, reference images, and API credentials are sent to your configured provider over HTTPS. Downloads write to the exact local path requested by the client. This is a local trusted-client service, not a sandbox: only connect trusted MCP clients and approve intended file operations. There is no telemetry or embedded credential in this adapter.

API requests have a 30-second deadline; downloads have a 90-second network deadline and a 512 MB limit. Downloads use temporary files and atomic no-overwrite publishing. Redirects are limited to five, HTTPS downgrade is refused, and API keys are removed on cross-origin redirects. Failed downloads remove partial files. Existing output files are never replaced.

To unregister from Codex: codex mcp remove seedance. This preserves the checkout and your private configuration file.

License

MIT. Provider access terms and generated-content rights are separate from this software license.

Available Tools

6 tools
seedance_create_video提交视频生成任务A

Create ONE asynchronous video task, consuming account credits (documented Seedance 2.0 price: 20 credits; confirm current price via list_models). Returns provider task id, statusTask, cost and other metadata immediately. Explicitly defaults to seedance-2.0 / 10s / 9:16 / 720p. Never automatically retry submission on network failure: it may have succeeded. Poll with get_video every 10–20 seconds; failed/interrupted tasks are refunded by the provider.

Inputs: prompt (required), model, ratio, duration, +1 more.

seedance_download_video下载生成的视频A

Download a succeeded task as an MP4 to an absolute local output path. Returns path, bytes and mime. Creates parent directories; refuses to overwrite an existing file. Streams at most 512 MB with a 90-second network deadline. Partial files are removed on failure. Uses the authenticated file endpoint, with no key forwarding across redirect origins.

Inputs: task_id (required), output_path (required).

seedance_get_video查询视频生成进度A
Read-onlyIdempotent

Query task metadata and statusTask: queued/submitted/running/succeeded/failed/interrupted. Poll no faster than once every 10–20 seconds. Terminal states are succeeded, failed and interrupted. A signed result URL may expire; query again to refresh it. Download completed video within 24 hours for retention.

Inputs: task_id (required).

seedance_health检查 Seedance 连接A
Read-onlyIdempotent

Read-only connectivity check; returns API health, whether a dk_ API key is configured, and the local config file path. Does not authenticate or consume credits. A configured key is not proof it is valid; use seedance_list_models to verify authentication.

Inputs: no named parameters.

seedance_list_models查询可用视频模型A
Read-onlyIdempotent

List currently enabled video models, names and credit prices. Authenticated read-only request. Call before generation; disabled models return 404. Returns the provider data array.

Inputs: no named parameters.

seedance_upload_image上传本地参考图A

Upload a local PNG/JPEG/WEBP image (maximum 5 MB) as a reference asset. Sends the image to the configured Seedance API and returns its asset id, mime and byte count. Use IDs in reference_asset_ids in the same order as @Image1, @Image2 in your prompt.

Inputs: image_path (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.5/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool targets a distinct stage or resource: health/connectivity, model catalog, image upload, task creation, task polling, and file download. The only potentially overlapping pair (health vs. list_models) is explicitly differentiated in the descriptions, with list_models named as the way to verify authentication.

    Naming Consistency4/5

    All names use a consistent seedance_ prefix with verb_noun patterns (list_models, upload_image, get_video, create_video, download_video). The lone deviation is seedance_health, which has no verb and slightly breaks the pattern, though it remains readable and unambiguous.

    Tool Count5/5

    Six tools is well-scoped for an asynchronous video generation service: one per lifecycle stage with no redundant or filler tools. Nothing appears missing that would require a separate tool beyond optional extras like cancellation.

    Completeness4/5

    The full workflow is covered: connectivity check, model/price discovery, reference asset upload, task creation, status polling, and MP4 download with clear terminal-state handling. Minor gaps exist — no cancel task, task listing, or asset management — but agents can work around these using create/get/download.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Enables any MCP client such as Claude, Cursor, Cline or Gemini CLI to generate Seedance 2.5, Seedance 2.0, MiniMax H3 and Veo 3.1 videos and still images from text or a reference image using your own account. It also exposes run-status polling and remaining-credit checks, with configurable duration, resolution, aspect ratio and audio.
      4
      53 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables MCP clients to generate images, videos, and Seedance clips through the PowerTokens official REST API, including model and pricing discovery, cost estimation, asset uploads for first/last-frame references, and automatic polling and downloading of results.
      MIT