MCP wrong_tool from generate_video: lip sync and motion control
Sume's generate_video refuses minimax/h3-max/lip-sync and the Kling 3.0 motion-control model with wrong_tool. next_action names the tool to call instead.

generate_video is Sume's general video tool on the hosted MCP server, and a model that knows one model id may try to send any video model through it. Two model ids do not belong there, and the server says so with the code wrong_tool instead of sending a request that could never succeed.
The two redirects
If the payload model is minimax/h3-max/lip-sync, the error says generate_video cannot lip-sync a still to audio. It points to avatar-image-to-video_create with that model, an image_url or an avatar reference, and a Sume-hosted audio_url of 5 to 14.8 seconds. The data carries path model, the tool generate_video, and next_action call_avatar_image_to_video_create.
If the model is the Kling 3.0 motion-control model, kling/3.0/motion-control, the error says generate_video cannot carry a driving video. It points to kling-motion-control_create with an image_url or avatar plus a motion_video_url. The next_action is call_kling_motion_control_create.
Why the check lives in the tool
A text-to-video call takes a prompt. A lip-sync call needs audio, and a motion-control call needs a driving clip. A model that is handed a generic video tool and an unfamiliar model id will often fill the prompt and hope. The check runs before admission, so there is no job, no hold and nothing to refund.
| Model in generate_video | Call instead | Extra fields needed |
|---|---|---|
| minimax/h3-max/lip-sync | avatar-image-to-video_create | image_url or avatar, audio_url, duration_seconds |
| kling/3.0/motion-control | kling-motion-control_create | image_url or avatar, motion_video_url, duration_seconds |
Handling next_action in an agent
Do not retry generate_video with a different prompt. Read data.next_action, switch tools, and carry the same idempotency_key to the new call, because the first call did not run. If the agent loop uses a fixed tool allowlist, make sure both target tools are on it, or the redirect has nowhere to land.
This is also a reason to read tools/list at the start of a session instead of caching tool names from a blog post.
Sources
Related posts
More in Integrations
- n8n webhook auth is Basic, Header or JWT: verify Sume's HMAC yourself
n8n's Webhook node offers Basic, Header and JWT auth, none of which checks Sume's HMAC. Verify sume-v1 over timestamp.raw_body in code, 300 second window.
- n8n video workflow: Respond immediately vs Sume's 30-second sync wait
In n8n, use Respond immediately and let Sume call back. Sume's sync mode waits at most 30 seconds, too short for most video jobs, so avoid the last-node wait.
- Notion API image block with a Sume URL: PNG works, WebP is not listed
Notion's external image block needs a directly hosted, public URL, and its file-type list has no WebP. Ask Sume for png or jpeg, then append the block.
- Notion audio block from a Sume music URL: the extension check
Notion's external audio block lists .mp3, .wav, .ogg, .oga and .m4a. Check that the Sume artifact URL path ends in one; if not, use Notion's File Upload.
Written by Sume