Skip to main content
Glama

Generate a video with KaiRouter

generate_video

Generate a video asynchronously by submitting a model ID and text prompt. Returns a queued job ID to poll with check_video_status.

Instructions

Start an async video generation job on KaiRouter (e.g. BytePlus Seedance 2.0 / 2.0 Fast / 2.0 Mini / 1.5 Pro / 1.0 Pro — see list_video_models for the exact ids currently available). Returns immediately with a job id and status 'queued'; it does NOT wait for the video to finish. Call check_video_status with the returned id to poll until status is 'succeeded' (or 'failed'). Deducts real credits from the caller's KaiRouter account balance when the job is accepted.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modelYesKaiRouter model id, e.g. 'dreamina-seedance-2-0-260128'. Call list_video_models to see valid ids.
ratioNoAspect ratio, e.g. '16:9', '9:16', '1:1'. Default 16:9.
promptYesText prompt describing the video to generate.
durationNoOutput duration in seconds. Default 5.
image_urlNoReference image URL or data: URI, for image-to-video generation.
video_urlNoInput video URL, for video-to-video generation on models that support it.
resolutionNoOutput resolution. Default 720p.
with_audioNoGenerate with audio, on models with audio-based pricing (e.g. Seedance 1.5 Pro).
negative_promptNoThings to avoid in the output.
input_duration_secsNoDuration in seconds of the input video — required for accurate cost estimation on video-to-video.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full disclosure burden and largely succeeds: it reveals the async return contract (job id + 'queued' status), the polling requirement, and — critically — the real financial consequence ('Deducts real credits from the caller's KaiRouter account balance when the job is accepted'). It misses minor items like rate limits, retry safety, or typical job duration, but the expensive-traits an agent needs to fear are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, roughly 85 words, each earning its place: what it does, what it returns, how to check results, and the cost warning. The structure is perfectly front-loaded — purpose first, operational warning last — with zero filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-complexity tool (async job, external service, real credits, no output schema, no annotations), the description covers the critical operational contract: launcher semantics, polling pattern, statuses, and billing side effects. Remaining gaps are real but minor — no idempotency/retry guidance (relevant when retries could double-charge) and no time-to-completion estimate to relay to users. Still well above the minimum viable bar.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline of 3 applies — and the schema genuinely earns it with rich per-field detail (defaults, examples, the data: URI hint on image_url, and the cost-estimation context on input_duration_secs). The tool description itself adds only marginal model-version context (e.g., 'BytePlus Seedance 2.0') that isn't already encoded in the schema. Correct baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb-resource pairing ('Start an async video generation job on KaiRouter') and immediately demonstrates differentiation from siblings by naming them: 'see list_video_models' and 'Call check_video_status'. The async contract ('Returns immediately... does NOT wait') is stated up front. An agent could not confuse this with its siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit, condition-driven routing: use list_video_models when you need valid ids, use check_video_status with the returned id to poll. The polling workflow (poll until 'succeeded' or 'failed') is spelled out, leaving no ambiguity about when to invoke this tool vs. its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/X-OR-Cloud/kairouter-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server