---
name: create-sneaker-ad-video
description: Create a short sneaker or running-shoe advertisement video through toolmu MCP. Use for product video ads, cinematic shoe promos, and social video concepts. Connect the user's MCP client, inspect the Seedance tool, submit one paid task, and return its verified video link.
---

# Create a sneaker ad video

## Connect once

Reuse the user's working Toolmu MCP connection. This task Skill contains no client command, endpoint, or credential flow.

If Toolmu tools are unavailable, fetch `/SKILL.md` from the same Toolmu deployment that served this task Skill and follow its unified connection workflow. If the deployment origin is not available, ask for the intended Toolmu website instead of guessing. Preserve this sneaker-video intent across any authorization, reconnect, or new-conversation step, then return here after tool discovery, identity, and catalog checks pass.

Do not create an API key, install the Toolmu CLI, overwrite other MCP servers, or report the video task complete merely because the connection was established.

## Compose the advertisement

Use the user's shoe description, audience, setting, and desired style. Ask only for missing details that materially change the advertisement. When no format is specified, use one four-second, landscape, 480p silent video as a low-cost draft.

Write a specific visual prompt: shoe material and color, one coherent camera movement, lighting, background, motion, and final product framing. Avoid inventing logos or readable on-screen text. This tool accepts text, so do not promise that a supplied product photograph will be reproduced exactly. If exact image conditioning is required, use `search_tools` to find a suitable tool and inspect it before proposing a change.

## Inspect and authorize

1. Call `get_tool` with `name: "seedance_text_to_video_v1"`. Use the returned input schema as authoritative. If it is unavailable, explain this; use `search_tools` only to find a suitable alternative and obtain approval for a materially different tool or price.
2. Call `get_budget` to read daily and per-call limits, and `get_balance` to read `usableCredits`. Read `tool._meta.pricing.maximumCredits` from `get_tool`. This is the amount reserved, not a promise of the final charge. If the balance or an enabled budget cannot cover that amount, ask the user to review their wallet or budgets; do not submit. All these values use credits; do not invent a currency exchange rate.
3. Explain the requested output and maximum charge. Proceed within the user's existing spending authorization; otherwise obtain it. Never raise a budget or top up automatically.

Construct input using the inspected schema. For the verified text-to-video version, use:

```json
{
  "content": [{ "type": "text", "text": "The advertisement prompt" }],
  "duration": 4,
  "resolution": "480p",
  "ratio": "16:9",
  "generate_audio": false,
  "watermark": false
}
```

## Submit one task and preserve its identity

Call `execute_tool` with `name`, `input`, a newly generated UUID `idempotencyKey`, and `maxCredits` as a decimal string covering the inspected maximum charge within the user's authorization. Record the exact request and returned task `id` in the conversation or the client's task state.

If the submission response is lost, retry only the identical request with the same idempotency key. Never generate a new key just because a network request timed out.

Call `get_run` with the returned `id`, normally every five seconds while the client is actively waiting:

- `CREATED`, `SUBMITTING`, `RUNNING`, `SETTLING`: the original task is still being processed. Continue checking that task; do not submit another.
- `UNKNOWN`: submission is unconfirmed. Report the task ID and ask the user to check the console. Do not create a replacement or claim that money was refunded.
- `SUCCEEDED`: return `output.videoUrl`, the task ID, and `actualCredits`. Note that the link can expire and the user should download it promptly.
- `FAILED` or `CANCELLED`: report the recorded outcome and confirmed charge. Work already performed can still be charged. Do not automatically retry with a new task.

If the user asks to stop and `stoppable` is true, call `stop_run`, then continue checking `get_run` until the outcome is confirmed. If the session ends before completion, leave the task ID so the next session can resume checking it.

Do not claim to have watched or evaluated the video unless a supported video inspection tool was actually used. Do not invent a download link or expose upstream configuration.
