Connects Claude or any MCP client to Alibaba's Wan AI video generation platform through AceDataCloud's API. Exposes six core operations: text-to-video, image-to-video, task status checking, batch queries, and listing available models and resolutions. You can generate videos at 480p, 720p, or 1080p using four different models, including wan2.6-r2v for character extraction from reference videos and wan2.6-i2v-flash for quick previews. Ships with a hosted endpoint at wan.mcp.acedata.cloud that works over streamable HTTP with OAuth support for Claude.ai, or run it locally via stdio. Useful when you need programmatic access to Wan's video generation without building your own API wrapper or handling async task polling yourself.
A Model Context Protocol (MCP) server for AI video generation using Wan through the AceDataCloud API.
Generate AI videos from text or images directly from Claude, VS Code, or any MCP-compatible client.
| Tool | Description |
|---|---|
wan_generate_video | Generate AI video from a text prompt using Wan. |
wan_generate_video_from_image | Generate AI video using a reference image as the starting frame. |
wan_get_task | Query the status and result of a video generation task. |
wan_get_tasks_batch | Query multiple video generation tasks at once. |
wan_list_models | List all available Wan models for video generation. |
wan_list_resolutions | List all available resolution options. |
wan_list_actions | List all available Wan API actions and corresponding tools. |
AceDataCloud hosts a managed MCP server — no local installation required.
Endpoint: https://wan.mcp.acedata.cloud/mcp
All requests require a Bearer token. Use the API token from Step 1.
Connect directly on Claude.ai with OAuth — no API token needed:
https://wan.mcp.acedata.cloud/mcpAdd to your config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"wan": {
"type": "streamable-http",
"url": "https://wan.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to your MCP config (.cursor/mcp.json or .windsurf/mcp.json):
{
"mcpServers": {
"wan": {
"type": "streamable-http",
"url": "https://wan.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to your VS Code MCP config (.vscode/mcp.json):
{
"servers": {
"wan": {
"type": "streamable-http",
"url": "https://wan.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Or install the Ace Data Cloud MCP extension for VS Code, which registers the hosted MCP servers with one-click setup.
{
"mcpServers": {
"wan": {
"url": "https://wan.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Claude Code supports MCP servers natively:
claude mcp add wan --transport http https://wan.mcp.acedata.cloud/mcp \
-h "Authorization: Bearer YOUR_API_TOKEN"
Or add to your project's .mcp.json:
{
"mcpServers": {
"wan": {
"type": "streamable-http",
"url": "https://wan.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to Cline's MCP settings (.cline/mcp_settings.json):
{
"mcpServers": {
"wan": {
"type": "streamable-http",
"url": "https://wan.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to your MCP configuration:
{
"mcpServers": {
"wan": {
"type": "streamable-http",
"url": "https://wan.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to Roo Code MCP settings:
{
"mcpServers": {
"wan": {
"type": "streamable-http",
"url": "https://wan.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to .continue/config.yaml:
mcpServers:
- name: wan
type: streamable-http
url: https://wan.mcp.acedata.cloud/mcp
headers:
Authorization: "Bearer YOUR_API_TOKEN"
Add to Zed's settings (~/.config/zed/settings.json):
{
"language_models": {
"mcp_servers": {
"wan": {
"url": "https://wan.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
}
# Health check (no auth required)
curl https://wan.mcp.acedata.cloud/health
# MCP initialize
curl -X POST https://wan.mcp.acedata.cloud/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
If you prefer to run the server on your own machine:
# Install from PyPI
pip install mcp-wan
# or
uvx mcp-wan
# Set your API token
export ACEDATACLOUD_API_TOKEN="your_token_here"
# Run (stdio mode for Claude Desktop / local clients)
mcp-wan
# Run (HTTP mode for remote access)
mcp-wan --transport http --port 8000
{
"mcpServers": {
"wan": {
"command": "uvx",
"args": ["mcp-wan"],
"env": {
"ACEDATACLOUD_API_TOKEN": "your_token_here"
}
}
}
}
docker pull ghcr.io/acedatacloud/mcp-wan:latest
docker run -p 8000:8000 ghcr.io/acedatacloud/mcp-wan:latest
Clients connect with their own Bearer token — the server extracts the token from each request's Authorization header.
| Model | Description | Use Case |
|---|---|---|
wan2.6-t2v | Text to video | Generate video from text prompts |
wan2.6-i2v | Image to video | Standard image-to-video generation |
wan2.6-r2v | Reference video-to-video | Character extraction and transfer |
wan2.6-i2v-flash | Fast image to video | Quick preview, lower quality |
| Variable | Description | Default |
|---|---|---|
ACEDATACLOUD_API_TOKEN | API token from AceDataCloud | Required |
ACEDATACLOUD_API_BASE_URL | API base URL | https://api.acedata.cloud |
WAN_DEFAULT_MODEL | Default video model | wan2.6-t2v |
WAN_DEFAULT_RESOLUTION | Default resolution | 720P |
WAN_REQUEST_TIMEOUT | Request timeout in seconds | 1800 |
LOG_LEVEL | Logging level | INFO |
mcp-wan --help
Options:
--version Show version
--transport Transport mode: stdio (default) or http
--port Port for HTTP transport (default: 8000)
# Clone repository
git clone https://github.com/AceDataCloud/WanMCP.git
cd WanMCP
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # or `.venv\Scripts\activate` on Windows
# Install with dev dependencies
pip install -e ".[dev,test]"
# Run unit tests
pytest
# Run with coverage
pytest --cov=core --cov=tools
# Run integration tests (requires API token)
pytest tests/test_integration.py -m integration
# Format code
ruff format .
# Lint code
ruff check .
# Type check
mypy core tools
# Install build dependencies
pip install -e ".[release]"
# Build package
python -m build
# Upload to PyPI
twine upload dist/*
WanMCP/
├── core/ # Core modules
│ ├── __init__.py
│ ├── client.py # HTTP client for Wan API
│ ├── config.py # Configuration management
│ ├── exceptions.py # Custom exceptions
│ ├── oauth.py # OAuth 2.1 provider
│ ├── server.py # MCP server initialization
│ ├── types.py # Type definitions
│ └── utils.py # Utility functions
├── tools/ # MCP tool definitions
│ ├── __init__.py
│ ├── video_tools.py # Video generation tools
│ ├── task_tools.py # Task query tools
│ └── info_tools.py # Information tools
├── prompts/ # MCP prompts
│ └── __init__.py # Prompt templates
├── tests/ # Test suite
│ ├── conftest.py
│ └── __init__.py
├── deploy/ # Deployment configs
│ └── production/
│ ├── deployment.yaml
│ ├── ingress.yaml
│ └── service.yaml
├── .env.example # Environment template
├── CHANGELOG.md
├── Dockerfile # Docker image for HTTP mode
├── docker-compose.yaml # Docker Compose config
├── LICENSE
├── main.py # Entry point
├── pyproject.toml # Project configuration
└── README.md
This server wraps the AceDataCloud Wan API:
Contributions are welcome! Please:
git checkout -b feature/amazing)git commit -m 'Add amazing feature')git push origin feature/amazing)MIT License - see LICENSE for details.
Made with love by AceDataCloud
ACEDATACLOUD_API_TOKEN*secretAPI token from Ace Data Cloud (https://platform.acedata.cloud)
io.github.socialapishub/social-media-api
io.github.xpaysh/social-media
com.thenextgennexus/youtube-media-mcp-server
io.github.ludmila-omlopes/youtube-video-analyzer
csoai-org/social-media-ai-mcp
com.ezbizservices/social-media