Skip to main content
Glama

Seedance 2.5 MCP

English | 简体中文

A Python MCP 2.x server for Volcano Ark Seedance 2.5. It exposes video generation and private asset library operations over SSE.

Features

Video Generation

  • Text-to-video, first-frame, and first/last-frame generation

  • Multimodal references using images, videos, and audio

  • Video editing and extension

  • Create, inspect, wait for, list, cancel, and delete generation tasks

  • 480p, 720p, and 1080p output

  • Fixed durations from 4 to 30 seconds or automatic duration

  • Synchronized audio, MP4/MOV output, last-frame return, and web search

Private Asset Library

  • Create, inspect, update, and delete asset groups

  • Upload image, video, and audio assets

  • Poll asset processing until the asset becomes Active

  • Reference approved assets as asset://<AssetId> in Seedance requests

  • Explicit confirm=true protection for destructive tools

Related MCP server: seedance-2-mcp

Requirements

  • Python 3.12.3 or later

  • uv

  • Seedance 2.5 enabled in Volcano Ark

  • IAM permissions and asset library authorization when using private assets

Environment Variables

Create the local environment file:

cp .env-example .env

Configure the credentials:

ARK_API_KEY=
VOLCENGINE_ACCESS_KEY=
VOLCENGINE_SECRET_KEY=
VOLCENGINE_SESSION_TOKEN=

Variable

Purpose

Required

ARK_API_KEY

Seedance 2.5 video generation API

For video generation

VOLCENGINE_ACCESS_KEY

Asset library Access Key

For asset operations

VOLCENGINE_SECRET_KEY

Asset library Secret Key

For asset operations

VOLCENGINE_SESSION_TOKEN

Token issued with temporary STS credentials

Only for temporary AK/SK

A long-lived AK/SK pair does not require a session token. Never commit .env or share its contents.

Custom Model or Inference Endpoint

The default model identifier is defined near the top of src/seedance_mcp/server.py:

MODEL_ID = "doubao-seedance-2-5-260628"

You may replace it with your own Seedance 2.5 inference endpoint ID:

MODEL_ID = "ep-your-seedance-2-5-endpoint-id"

The recommended approach is to leave the source unchanged and add the optional ARK_MODEL variable to .env:

ARK_MODEL=ep-your-seedance-2-5-endpoint-id

ARK_MODEL takes precedence over MODEL_ID. If it is absent or empty, the server uses MODEL_ID. Restart the MCP server after changing either value.

Install and Run

cd /path/to/seedance-mcp
uv sync
uv run seedance-mcp

The SSE endpoint is available at:

http://127.0.0.1:8000/sse

Custom Host and Port

The listening address and port are configurable. The defaults are 127.0.0.1 and 8000. Add these optional variables to .env to override them:

MCP_HOST=0.0.0.0
MCP_PORT=9000

After changing them, restart the server. With the example above:

  • Local clients connect to http://127.0.0.1:9000/sse.

  • Remote clients connect to http://<server-ip-or-domain>:9000/sse.

  • 0.0.0.0 is a bind address and must not be used as the client URL.

Listening on 0.0.0.0 exposes the MCP service to the network. Restrict access with a firewall or security group and use an authenticated HTTPS reverse proxy for public deployments.

Press Ctrl+C in the server terminal to stop it. After changing code or .env, restart it with:

pid=$(lsof -tiTCP:8000 -sTCP:LISTEN)
[ -n "$pid" ] && kill "$pid"
uv run seedance-mcp

MCP Client Configuration

Add the server to your MCP client's mcp_settings.json:

{
  "mcpServers": {
    "seedance-2.5": {
      "url": "http://127.0.0.1:8000/sse",
      "type": "sse",
      "disabled": false,
      "autoApprove": []
    }
  }
}

Restart the MCP server or reload the editor window after changing this configuration.

MCP Tools

Video Tasks

Tool

Description

seedance_create_video

Create a Seedance 2.5 generation task

seedance_get_video_task

Retrieve one task and its result

seedance_list_video_tasks

List video tasks created within the last seven days

seedance_wait_video_task

Poll a task until it reaches a terminal state

seedance_cancel_or_delete_video_task

Cancel a queued task or delete a task record

seedance_25_capabilities

Show supported capabilities and parameter limits

Asset Groups

Tool

Description

seedance_create_asset_group

Create a private virtual-character asset group

seedance_list_asset_groups

List and filter asset groups

seedance_get_asset_group

Retrieve one asset group

seedance_update_asset_group

Update an asset group's name or description

seedance_delete_asset_group

Permanently delete a group and all assets in it

Assets

Tool

Description

seedance_create_asset

Upload an asset from a public URL

seedance_list_assets

List and filter assets

seedance_get_asset

Retrieve asset details and processing status

seedance_wait_asset

Wait for asset processing to complete

seedance_update_asset

Update an asset name

seedance_delete_asset

Permanently delete an asset

Asset uploads accept public HTTP/HTTPS URLs only. Local file paths and Base64 payloads are not supported. An asset must be Active before it can be used for video generation.

Project Structure

seedance-mcp/
├── .env-example
├── main.py
├── pyproject.toml
├── src/seedance_mcp/
│   ├── client.py
│   ├── config.py
│   └── server.py
└── uv.lock
  • server.py: MCP server, video tools, asset signing, and asset tools

  • client.py: Volcano Ark video generation API client

  • config.py: environment-based configuration

  • main.py: compatibility entry point

Important Notes

  • Video generation requests incur Volcano Ark usage charges.

  • Generated video URLs are typically retained for 24 hours. Download or transfer results promptly.

  • Asset query URLs are temporary and remain valid for 12 hours.

  • Asset and asset-group deletion is irreversible.

  • Temporary AK/SK credentials and session tokens expire and must be refreshed.

Official Documentation

Related MCP Connectors

Related MCP Servers