# QuickNow video MCP server — agent onboarding

10 tools for AI agents to generate, analyze, and remix short-form video.
Human-readable spec: https://quicknowstudio.com/mcp

## Mount

### Claude Code

```bash
# Local stdio mount (today)
claude mcp add quicknow-video \
  -- python3 /path/to/tiktok-video-automation/src/mcp_server.py

# Public SSE mount (Day 7-10)
claude mcp add quicknow-video https://quicknowstudio.com/mcp/sse \
  --header "X-API-Key: <your-key>"
```

### Codex

```toml
# Add to ~/.codex/config.toml
[[mcp_servers]]
name    = "quicknow-video"
command = "python3"
args    = ["/path/to/tiktok-video-automation/src/mcp_server.py"]
```

```bash
# Or via flag (one-shot)
codex --mcp-server quicknow-video=https://quicknowstudio.com/mcp/sse \
      --mcp-header "X-API-Key: <your-key>"
```

### Volcano Ark

```text
# Custom MCP (coming soon — first wave registration)
# Console -> MCP Server Management -> Custom MCP -> Add
#   Name : quicknow-video
#   URL  : https://quicknowstudio.com/mcp/sse
#   Auth : Header  X-API-Key : <your-key>
```

Transport note: stdio transport works today (local mount). Public SSE / HTTP endpoint ships Day 7-10.

## Tools (10)

| Tool | Type | What it does | Args |
|---|---|---|---|
| `generate_short_video` | forward | Prompt -> short video. Wraps SeeDance with style hints (tiktok-short / cinematic / product-demo). | product, style="tiktok-short", duration=5, ratio="9:16", prompt_override="" |
| `image_to_video` | forward | Animate a still image. PNG/JPG first frame + motion prompt -> short clip. | image_path, prompt="", duration=5, aspect_ratio="9:16" |
| `list_video_templates` | util | Discover all prompt templates. 6 verticals: product_demo / tiktok_unboxing / amazon_listing / lifestyle_scene / before_after / tutorial_howto. | (none) |
| `generate_short_video_from_template` | forward | One-shot template render: pick a template, fill required params, get a video. | template_name, params (dict) |
| `add_subtitles_to_video` | post-proc | Burn subtitles into mp4. Auto translates zh -> en via Doubao if needed. Styles: tiktok / reels / shorts / minimal. | video_path, text, lang="en", style="tiktok" |
| `add_hook_to_video` | post-proc | Overlay big top-of-frame hook text for the first N seconds. | video_path, hook_text, duration=3.0 |
| `concat_videos` | post-proc | Concatenate >=2 mp4 in order. Optional logo overlay on the result. | video_paths (list), add_logo=false, logo_path="", logo_position="..." |
| `analyze_tiktok_script` | reverse | Pull a TikTok URL (or local mp4), sample keyframes, get a structured JSON shot list ready to remix. | url, output_format="json", shot_interval_s=3.0 |
| `replicate_video_from_script` | reverse | Take an analyzed script JSON, swap product, regenerate every shot. | script_json_path, product_name, product_keywords (list) |
| `check_health` | util | Sanity check: ARK_API_KEY present, default model / resolution / ratio. Does not call the API. | (none) |

## Example calls

```text
# Forward · prompt -> video
generate_short_video(
  product="AA battery 16-pack",
  style="tiktok-short",
  duration=5,
  ratio="9:16"
)
=> output/seedance_2026-05-08_213501.mp4

# Reverse · viral video -> script -> remix
analyze_tiktok_script(
  url="https://www.tiktok.com/@creator/video/123",
  shot_interval_s=3.0
)
=> output/script_creator_123.json

replicate_video_from_script(
  script_json_path="output/script_creator_123.json",
  product_name="PS5 controller charging dock",
  product_keywords=["fast charging", "magnetic mount", "matte black"]
)
=> output/replicated_PS5_dock_2026-05-08.mp4
```

## Access & quota

Free during closed beta · request an API key on WeChat: howard-genuinereserve · GA pricing arrives Day 30.
