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) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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