Provider-neutral short-form AI video toolkit for agents: Sora, Gemini Veo, xAI/Grok, Seedance.
⭐ If this agent-first tool helps your workflow, please star the repo. Stars make this tooling easier for other builders to discover and help Delx keep shipping open infrastructure.
🧱 Part of the Delx agent stack — 15 open-source MCP servers across body, reach and coordination.
Default is stdio. Optional Streamable HTTP — no session id, JSON responses, loopback only:
npx -y -p short-video-agent-kit short-video-mcp --http
# GET http://127.0.0.1:3033/health
# POST http://127.0.0.1:3033/mcp (sessionless)
Env: SHORT_VIDEO_MCP_HOST, SHORT_VIDEO_MCP_PORT, SHORT_VIDEO_MCP_TRANSPORT=http.
Provider-neutral short-form AI video toolkit for agents. It gives Codex, Claude, Cursor, Hermes, OpenClaw and other MCP clients one interface for building dry-run payloads and, when explicitly enabled, generating vertical video through Sora/OpenAI, Gemini Veo, xAI/Grok and Seedance/PiAPI-style providers.
Use it when an agent needs one safe interface for prompt-to-video payload validation and optional paid generation across multiple providers.
Video generation can be expensive and prompt-sensitive. This package makes agents start with safe steps:
--live or SHORT_VIDEO_DRY_RUN=false before provider callsnpm install -g short-video-agent-kit
Or run directly:
npm exec --yes --package=short-video-agent-kit -- short-video-agent-kit doctor
No API key needed to try it — generation is dry-run by default, so the kit returns the exact provider-neutral plan it would send without spending a credit.
Build a Sora plan for an 8-second vertical teaser:
short-video-agent-kit generate \
--provider openai_sora \
--prompt "Vertical 8-second product teaser for a minimalist water bottle, soft studio light, slow dolly-in" \
--output ./output/teaser.mp4
Real output (no provider call, no credits spent):
{
"ok": true,
"dry_run": true,
"next_step": "Pass --live or set SHORT_VIDEO_DRY_RUN=false to call the provider API.",
"provider": "openai_sora",
"endpoint": "POST /v1/videos",
"payload": {
"model": "sora-2",
"prompt": "Vertical 8-second product teaser for a minimalist water bottle, soft studio light, slow dolly-in",
"seconds": "8",
"size": "720x1280"
}
}
Same prompt, different provider — the plan re-targets the endpoint and parameter shape for you. payload returns just the plan (no dry_run wrapper):
short-video-agent-kit payload --provider gemini_veo --prompt "Same teaser, 9:16, cinematic"
{
"provider": "gemini_veo",
"endpoint": "POST /models/{model}:predictLongRunning",
"payload": {
"instances": [
{
"prompt": "Same teaser, 9:16, cinematic"
}
],
"parameters": {
"aspectRatio": "9:16",
"durationSeconds": 8
}
}
}
Check which providers are wired up (keys are detected, never printed):
short-video-agent-kit doctor
{
"ok": false,
"dry_run": true,
"providers": {
"openai_sora": { "configured": false, "env_keys": ["OPENAI_API_KEY"], "models": ["sora-2"] },
"gemini_veo": { "configured": false, "env_keys": ["GEMINI_API_KEY", "GOOGLE_API_KEY"], "models": ["veo-3.1-fast-generate-preview"] },
"xai_grok": { "configured": false, "env_keys": ["XAI_API_KEY"], "models": ["grok-imagine-video", "grok-imagine-image"] },
"seedance_piapi": { "configured": false, "env_keys": ["PIAPI_KEY", "SEEDANCE_API_KEY"], "models": ["seedance-2-fast-preview"] }
},
"output_dir": "./output",
"next_steps": [
"Set one provider key: OPENAI_API_KEY, GEMINI_API_KEY, XAI_API_KEY or PIAPI_KEY."
]
}
When you are ready to actually render, set a provider key and re-run generate with --live (or SHORT_VIDEO_DRY_RUN=false).
short-video-agent-kit manifest --client codex
short-video-agent-kit doctor
short-video-agent-kit privacy-audit
short-video-agent-kit payload --provider gemini_veo --prompt-file prompt.txt
short-video-agent-kit generate --provider openai_sora --prompt "Vertical product teaser" --output ./output/teaser.mp4
short-video-agent-kit generate --provider openai_sora --prompt-file prompt.txt --output ./output/teaser.mp4 --live
Supported providers:
openai_soragemini_veoxai_grokseedance_piapishort-video-mcp
HTTP transport:
SHORT_VIDEO_MCP_TRANSPORT=http short-video-mcp
Hermes-style config:
mcp_servers:
short_video:
command: npx
args: ["-y", "short-video-agent-kit"]
sampling:
enabled: false
Recommended first calls:
short_video_connection_statusshort_video_privacy_auditshort_video_build_payloadshort_video_generate| Tool | Purpose |
|---|---|
short_video_agent_manifest | Install/runtime guidance for Codex, Claude, Cursor, Hermes and OpenClaw |
short_video_connection_status | Provider readiness without API keys |
short_video_privacy_audit | Prompt, output and reference-asset boundaries |
short_video_build_payload | Provider-specific payload without paid generation |
short_video_generate | Dry-run by default, live only when explicitly requested |
Use short-video-agent-kit. First call short_video_connection_status and short_video_privacy_audit.
Build the payload before generation. Only set live=true if I explicitly confirm a paid provider call.
Copy .env.example to .env and fill only the provider keys you plan to use. .env, output/ and .agent-data/ are ignored by Git.
--live, MCP live=true, or SHORT_VIDEO_DRY_RUN=false.npm install
npm test
npm run check
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y short-video-agent-kitMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-davidmosiah-short-video-agent-kit": {
"command": "npx",
"args": [
"-y",
"short-video-agent-kit"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceshort-video-agent-kitnpmShort Video Agent Kit works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.