Zvid
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ZVID_API_KEY | Yes | Zvid API key for local stdio setup | |
| ZVID_API_URL | No | Base URL for the Zvid orchestrator API (default: https://api.zvid.io) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_renderA | Queue a video render. Provide either a full project JSON as |
| create_image_renderA | Queue a still-image render (PNG/JPEG) from a project JSON or an image-type template. Overrides support snapshotTime, quality and transparent. Returns a jobId to poll with get_render. For NEW creative stills, first run find_matching_examples with type: "image" and adapt a library example via start_from_example instead of composing from scratch. |
| get_renderA | Get a render job's state (waiting|active|completed|failed), progress (0-100), and — when completed — the output url and thumbnailUrl. |
| list_rendersA | List this account's render jobs, newest first. Optionally filter by type (video|image). |
| get_project_schemaA | Get the JSON Schema (draft 2020-12) for a Zvid render payload — element types, required fields, enums, defaults, min/max bounds and URL restrictions — plus notes for cross-field rules the schema cannot express (timing checks, plan limits, sanitizer rules). Use target: "render-request" for the full request envelope (payload XOR template + variables/overrides/webhookUrl). Derived from the backend validation code, which always wins over docs. |
| validate_project_jsonA | Validate a Zvid project payload BEFORE rendering (free, no credits). Returns { valid, errors: [{field, message}], warnings }. Warnings include LAYOUT LINT — overlapping texts, x/y ignored by position presets, boxes extending off-canvas, padding that will get cut off, low text contrast — treat every layout warning as a fix-before-render item. Local validation mirrors the backend rules; set remote: true to ALSO run the payload through the live API validator (POST /api/render/validate/api-key — resolves templates and applies your plan's real limits). |
| list_supported_elementsA | List every element type a Zvid project supports (visuals: IMAGE, VIDEO, GIF, SVG, TEXT; plus AUDIO items, SUBTITLE and SCENE) with a summary and required fields. Use get_element_docs for full per-type docs and examples. |
| get_element_docsA | Get concise docs for one element type — required fields, every supported field with constraints, gotchas, and a valid example. Types: IMAGE, VIDEO, GIF, SVG, TEXT, AUDIO, SUBTITLE, SCENE (case-insensitive). |
| get_example_payloadA | Get one of five GENERIC starter payloads for a common flow: promo-video (10s scene-based hook/value/CTA with scrim + flex-centered card), template-render (variables), still-image (transparent PNG, single html card), subtitles (karaoke captions), webhook-flow (per-job webhookUrl). These are schema scaffolds, NOT the designed library — for premium creative work use find_matching_examples / start_from_example first and fall back here only when no library example fits. Omit |
| plan_creative_videoA | Turn a brief into a plan-aware storyboard, style/layout direction, scene recipes and anti-repetition rules BEFORE authoring JSON — plus libraryCandidates: concrete published examples ranked against the brief with an adapt-vs-assemble decision. Follow that decision: adapt the top example via start_from_example, or assemble from the returned design-template/canvas-preset/shape modules. Modes: consistent reuses a stable seed; fresh produces a new direction; explore returns 2-5 materially different directions. |
| find_matching_examplesA | Match a brief against the ENTIRE published examples library (hundreds of professionally designed, render-ready projects) and return ranked candidates with thumbnails/previews plus a decision: "adapt-example" (strong match — call start_from_example), "adapt-or-assemble", or "assemble-similar" (compose from the returned design-template/canvas-preset/shape modules). Use this before authoring any project JSON by hand; matching runs over full metadata with category synonyms, so it finds examples the plain search_creative_library query cannot. |
| render_from_exampleA | The EASIEST premium render path: pick a library example and supply new VARIABLE VALUES (copy, media URLs, colors) — the server fetches the example, saves it as a template, dry-runs your variables, and queues the render, keeping the example's designed layout/animations fully intact. Use start_from_example first to see the variable names and defaults. Provide only declared variables; unknown names are reported. Spends credits like create_render; returns jobId + the created templateId for reuse. |
| start_from_exampleA | Fetch a library example's complete render-ready project JSON plus an ADAPTATION MAP (declared variables with defaults, text slots with current copy, media slots, scene/timing summary, fonts) and the adaptation contract. This is the premium-quality path: keep the example's layout and animations, swap copy/media/brand. When adaptationMap.recommendedWorkflow is "template-render" (variables/condition/iterate present), save the payload with create_template and render with variables instead of editing placeholders inline. Premium examples need a paid plan — if locked, free alternatives are suggested. |
| search_creative_libraryA | Search curated complete project examples, animated Design Studio templates, canvas motion presets, or shapes. NOTE: the server search is a plain AND-of-substrings over title/slug/description — use short single-word queries here, and prefer find_matching_examples when matching a brief to examples (it ranks the whole library with category synonyms). Inspect preview/thumbnail metadata before choosing. For fresh/explore work, exclude recent slugs returned by plan_creative_video. |
| get_creative_assetA | Get metadata and, by default, the full JSON content for one creative-library item. Examples are complete projects — when you intend to ADAPT one, prefer start_from_example (it also returns an adaptation map and contract). Design templates/canvas presets/shapes are reusable modules and must be composed into a project. |
| list_stock_providersA | List the stock providers currently available for image, video, GIF and audio searches. |
| search_stock_mediaB | Search server-configured stock image, video, GIF or music providers. Results contain preview and full-quality src URLs suitable for Zvid payloads plus dimensions/duration and attribution metadata. |
| repair_project_jsonA | Attempt conservative auto-fixes on an invalid project payload (wrong-case type, clamped numbers, format conflicts like transparent+jpg, swapped begin/end timings, unknown fields, empty/impossible elements) and explain every change. Returns the repaired payload plus its validation result — problems that need real input (e.g. missing media URLs) are left as errors. |
| create_bulk_renderA | Queue N renders from one template/payload and a list of per-item variable sets (max 500 items, plan-limited). Validation is best-effort per item: valid items queue, invalid ones are reported in itemErrors. Returns bulkId + jobIds. |
| get_bulk_renderB | Get a bulk render batch by ID (blk_...) including its jobs' states. |
| list_bulk_rendersB | List this account's bulk render batches. |
| list_templatesA | List this account's render templates (id, name, description). |
| get_templateA | Get a template by ID including its full project JSON (inspect it to discover the variables it expects). |
| create_templateA | Create a reusable template from complete project JSON. Read get_project_schema first; every placeholder must have a safe default and video-template scenes need explicit durations. The backend validates the template against this account's plan before saving it. This is also the render path for adapted library examples that use variables/condition/iterate: create_template -> preview_template -> create_render { template, variables }. |
| update_templateA | Rename a template, change its description, and/or replace its project JSON. Get the current template first so fields are not accidentally lost; replacement JSON is fully validated before saving. |
| delete_templateA | Archive an active template owned by this account. Archived templates cannot be rendered or updated, so call this only when the user explicitly asks to remove it. |
| duplicate_templateA | Create an editable copy of an owned template, including archived templates. The copy is active and counts against the account's template quota. |
| preview_templateA | Resolve a template's variables and validate the result WITHOUT rendering or spending credits. Use this to check variable values before create_render. |
| list_projectsB | List editor draft projects saved on this account. |
| get_projectA | Get a draft project (prj_...) including its project JSON. |
| create_projectB | Save a new editor draft project. It becomes editable at https://zvid.io/editor?project=. |
| update_projectC | Rename a draft project and/or replace its project JSON. |
| delete_projectB | Permanently delete a draft project. |
| list_webhooksA | List webhook endpoints registered on this account, plus usage vs plan limit. |
| create_webhookB | Register a webhook endpoint for render events. The response includes the signing secret (whsec_...) shown in full only here and on get_webhook — deliveries are signed with HMAC-SHA256 in the X-Zvid-Signature header. |
| get_webhookA | Get a webhook endpoint (whk_...) including its signing secret and failure state. |
| update_webhookC | Update a webhook's url, events, description, or enable/disable it. |
| delete_webhookC | Delete a webhook endpoint. |
| test_webhookA | Queue a signed test event delivery to a webhook endpoint. |
| list_webhook_deliveriesB | List recent delivery attempts for a webhook endpoint (status, attempts, response codes). |
| get_creditsB | Get the account's credit balance (total balance, subscription credits, and add-on credit pack balance). |
| get_usage_statsB | Get render/credit usage statistics for a timeframe (e.g. 7d, 30d, 90d). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Zvid-io/zvid-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server