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
- Meta Ads connector: what Refresh tools does in Sume
Refresh tools re-runs discovery with the same Meta grant and swaps the catalog atomically. If it fails, the old catalog stays. A page reload does not refresh.
- Meta Ads MCP has 97 tools; Sume exposes 52 reviewed reads
Meta's ads MCP listed 97 tools on 2026-09-09. Sume allows 52 exact reviewed reads and excludes 45, since a name or read-only flag is not enough.
- Meta Ads MCP: dynamic registration invalid_client_metadata
Meta's ads MCP rejected a direct public-client registration on 2026-09-06 (invalid_client_metadata), so Sume uses a pre-approved Meta client id.
- 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.
Written by Sume