Seedance / Seedream MCP
MCP server for BytePlus generative media: Seedream image generation, Seedance video generation, media staging (TOS), and private portrait asset management.
README
Seedance / Seedream MCP
Python MCP server for BytePlus Seedream 5.0 Pro, Seedance 2.0, TOS media staging, and the private portrait asset library. It is designed for local verification first and deployment as a Native Python 3.11 Web Application on BytePlus veFaaS.
Runtime shape
- Streamable HTTP MCP endpoint:
POST /mcp - Health endpoint:
GET /health - Upload widget:
GET /widget/ - Upload API:
POST /api/uploads - Redis-backed short-lived sessions
- Shared TOS bucket and shared BytePlus credentials for v1
Setup
Create a virtual environment, install dependencies, and copy the environment template:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt
cp .env.example .env
On PowerShell:
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements-dev.txt
Copy-Item .env.example .env
Fill every required value in .env. Startup fails immediately when any
required value is missing.
Run locally
bash run.sh
or:
python -m uvicorn app.main:app --host 127.0.0.1 --port 8000
Verify:
curl http://127.0.0.1:8000/health
python scripts/smoke_mcp.py http://127.0.0.1:8000/mcp
Tools
Planning tools never call generation APIs:
creative_plan_launch_setcreative_resolve_video_preset
Media and reference state:
media_start_upload_sessionmedia_finalize_upload_sessionmedia_get_upload_sessionmedia_import_generated_asset
Generation and portrait preparation:
seedream_generate_imageseedance_generate_videoseedance_prepare_portrait_assetseedance_get_portrait_asset_status
Task control and diagnostics:
generation_get_taskgeneration_list_tasksgeneration_cancel_tasksystem_get_runtime_configsystem_validate_byteplus_connectivity
system_get_runtime_config masks ARK_API_KEY, BYTEPLUS_AK,
BYTEPLUS_SK, and the optional BYTEPLUS_SESSION_TOKEN.
Main workflows
Seedream image
- Optionally stage reference images and finalize the upload session.
- Call
seedream_generate_image. - Reuse the returned
reference_session_iddirectly with Seedance. Outputs generated by ModelArk are trusted and do not need private-asset conversion.
Normal media to Seedance
- Create an upload session with
workflow_type=normal. - Upload to the returned TOS PUT URLs.
- Finalize the session.
- Pass its
reference_session_idtoseedance_generate_video.
User-uploaded portrait to Seedance
- Create an upload session with
workflow_type=portrait. - Upload and finalize.
- Call
seedance_prepare_portrait_asset. - When the asset is
Active, pass the returnedasset://...as animage_urlcontent item toseedance_generate_video.
The user is responsible for having the legal rights and authorization required to use uploaded real-person media.
Tests
python -m pytest -q
The default suite uses mocks and requires no production credentials. Tests cover config validation, secret masking, schemas, planning helpers, upload state, provider adapters, MCP tool discovery, and MCP initialize.
Live integration calls are intentionally not part of the default suite because they consume provider quota and require configured BytePlus resources.
Claude Desktop local verification
Claude Desktop can reach the Streamable HTTP server through a local bridge:
{
"mcpServers": {
"seedance-seedream": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://127.0.0.1:8000/mcp"
]
}
}
}
Restart Claude Desktop, confirm tool discovery, then try:
Create a 2K JPEG product hero image with Seedream.Open the upload flow for a normal image, then animate it with Seedance.Open the portrait upload flow, prepare the private asset, wait until it is Active, then create a five-second 9:16 video.
Expected results are structured tool outputs containing reference session IDs, provider task IDs, asset URIs when active, and suggested next actions.
See DEPLOY.md for veFaaS and API Gateway deployment.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.