MCP App Store
by KeenEthics
VideoZero icon

VideoZero

By VIDEOZERO TECHNOLOGIES LTD

Get New App Alerts

Overview

Ever been stuck on a math problem you can’t quite picture? Wished you could illustrate an algorithm, but don’t have time to animate everything by hand? VideoZero generates the video you need to learn, visualize, and explain complex concepts. You’ll get a narrated animated video with clear diagrams, animations, and visual explanations to help you study, understand, or illustrate new ideas. Need to change parts of the video? No problem — just tell ChatGPT what to change, and VideoZero refines it until you’re happy. Or you try our MCP integration and let your agent generate animations and videos with the power of our engine.

Tools

asset_request_upload

ChatGPT
Request an ephemeral upload URL to add an image or video asset to a project — including media you generated yourself for a beat that needs specific imagery. You cannot send file bytes through this tool — it returns a short-lived, single-use URL to POST the file to (multipart/form-data, field file): POST it yourself if you hold the bytes, otherwise hand the URL to the user. Alpha is preserved, so upload transparent PNG/WebP/SVG (or WebM video) for anything that must composite over the scene. Once uploaded, reference the asset in scene code with import {asset} from 'vzrt'; then asset('<asset_name>') (e.g. <Img src={asset('<asset_name>')} />). Poll project_list_assets to see when it has landed.

asset_snapshot_page

ChatGPT
Snapshot a public web page into a project asset the Html component renders: the page is opened in a browser, its scripts settle, and the DOM is captured with styles, images and fonts embedded (scripts removed). Use it to put a real website, landing page or web app screen into a video — then animate it like any Html node: import {asset} from 'vzrt'; import {Html, crossfadeHtml} from 'vzc/Html'; and <Html src={asset('<name>')} size={view.size()} /> (hover(), toggleClass(), run(), vars, a Cursor, zooming/panning via the node's scale/position all work on the snapshot). Pages behind logins or heavy on video cannot be captured; very image-heavy pages may exceed the size limit.

asset_upload

ChatGPT
Add asset(s) to a project from file(s) the user attached to their message (delivered inline by the host; you do not send bytes yourself). Use file_descriptions to name each asset; after upload reference it in scene code with import {asset} from 'vzrt'; then asset('<name>').

component_docs

ChatGPT
Read a component's docs by its id (e.g. "ProgressRing"), optionally pinned with @version. The docs cover the component's options, kinds and animation API. Pass search to return only matching doc lines instead of the full markdown. Use component_search to discover ids.

component_example_scene

ChatGPT
Get a component's showcase example scene (complete, renderable TSX) by its id (e.g. "ProgressRing"), optionally pinned with @version. The example demonstrates how to import and animate the component — a good starting point to copy from. Use component_search to discover ids.

component_view_contact_sheet

ChatGPT
Render a component's showcase example scene into a "contact sheet" PNG — several frames tiled into one image, each captioned with its frame number and timestamp — to see how a component looks and animates before using it. Identify the component by its id (e.g. "StatusCard"), optionally pinned with @version (e.g. "StatusCard@0.1.0"; omit or use @latest for the newest). Pass aspect_ratio to render at a given shape (defaults to 16:9), and frames as an explicit list or "auto" (default) to sample evenly across the scene. Use component_search to discover ids.

feedback_submit

ChatGPT
Report a gap or issue you hit while authoring: a missing template or component, a hole in the docs, a tool you wished existed, a bug, or a lesson worth recording. This is fire-and-forget — the feedback is filed for the VideoZero team and only its receipt is acknowledged; nothing about the current project changes. Attach whatever situational detail is relevant via context.

get_started

ChatGPT
Start here: returns up-to-date VideoZero instructions plus account-specific state — the user's plan, remaining usage, and their most recent projects. Call this once at the start of a conversation before other VideoZero tools; call it again any time you need a refresher.

list_icons

ChatGPT
Search icons across all collections. Pass every icon you need at once in queries; results are grouped per concept and ranked, so you do not need to search a concept again or filter by collection. Reference a result in scene code as its collection:name string (e.g. <Icon icon="mdi:lion" />).

project_clone

ChatGPT
Clone one of your own projects into a new project. A full copy: every scene (with narration/audio), asset bindings and aspect ratio carry over; the clone starts private at version 0. Use this when the user wants to keep the original and work on a copy; any project can also be edited directly. Call get_started first for usage instructions if you have not already in this conversation.

project_create

ChatGPT
Create a new, empty VideoZero project to author scene code in yourself. It is created immediately with status "new" and an empty scene; write the scene with scene_update_build. Set the title and aspect ratio here. Call get_started first for usage instructions if you have not already in this conversation. (To have VideoZero's managed pipeline write a complete video from a prompt instead, use video_generate — once its run has finished you can hand-edit that project here.)

project_delete

ChatGPT
Permanently delete a project you created with these tools, including its scenes and asset bindings. This cannot be undone. Only projects with source "agentic_mcp" can be deleted here (delete others on videozero.ai); uploaded media files stay in your library (clones may still reference them).

project_edit

ChatGPT
Edit a project's metadata (title and/or aspect ratio). Changing the aspect ratio re-derives the render resolution and un-validates every stored scene (they were validated at the old resolution) — rebuild each with scene_update_build or scene_patch_build afterwards.

project_get

ChatGPT
Get full metadata for a project you own: title, status, source, aspect ratio, version, build/validation state, public flag, view URL, and a per-scene overview (index, title, validated, narration count) — the structure without the code.

project_list

ChatGPT
List your VideoZero projects (all sources). Returns id, title, status, source, aspect ratio, version, and build/validation state. Every listed project can be edited directly with the scene_* tools. Pass source to filter.

project_list_assets

ChatGPT
List the named assets bound to a project (ready to use via asset('<name>')) plus any pending uploads that have not been completed yet. Use this to check whether a requested upload has landed.

project_video_url

ChatGPT
Get the shareable browser URL to view a project. Returns the URL as text; use project_view to embed the live player widget instead.

project_view

ChatGPT
Open a project in the inline VideoZero player so the user can watch it and export it. Renders a live player widget and keeps it in sync as you edit — when you publish a new scene version the player reloads automatically.

scene_delete

ChatGPT
Delete the scene at index from a project. Scenes after it shift down by one (their indices change). The project version bumps and the player refreshes.

scene_inspect_graph

ChatGPT
Inspect the live scene graph of a validated scene at a specific frame, returned as JSON. The scene is built and seeked to frame (default 0), then its node tree is serialized: for each node its type, key, local position/size/opacity/fill/text, and its on-screen (absolute) position and world-space bounding box. Use this to debug layout — find nodes rendered off-screen, with zero size, fully transparent, or overlapping — without eyeballing pixels. Complements scene_view_frames (which shows the image).

scene_patch_build

ChatGPT
Apply search/replace patches to the current (last validated) scene code, then build and validate. Prefer this over scene_update_build for incremental edits. Each patch replaces old_string with new_string; old_string must be unique unless replace_all is true — include enough surrounding context. The result is persisted ONLY if it builds and validates; otherwise the previous validated scene is kept and the patched code is returned for inspection. On a clean patch+validate the version bumps and the player refreshes. Narration, music and sound effects live in the scene code and are re-resolved on every successful build. Only projects created by these tools are editable — for any other project, create an editable copy with project_clone first.

scene_read

ChatGPT
Read the current (last validated) scene code for a project. Pass line_start/line_end to read only a slice of a large scene (use scene_search_code to locate the lines first).

scene_reorder

ChatGPT
Reorder a project's scenes. Pass order as a permutation of every current index — e.g. [2, 0, 1] makes the current scene 2 play first. Scene indices follow the new order afterwards; the project version bumps and the player refreshes.

scene_search_code

ChatGPT
Search a project's scene code for a regex pattern and return matching lines with surrounding context. Much cheaper than scene_read for finding specific identifiers, imports, or call sites. Each match includes a 1-indexed line number and context lines of surrounding code. If the regex does not compile, falls back to a literal substring search automatically. Examples: "^import" lists imports; "root\.add" finds all root.add(...) calls.

scene_update_build

ChatGPT
Write a scene as complete TypeScript Motion Canvas code, then build and validate. Replaces the scene at index (default 0) entirely; write to the next unused index to append a scene to the project. The code is persisted ONLY if it both compiles and validates — so the stored scene is always a working build. On success the project version bumps and the player refreshes. On failure the previous validated scene is kept; fix the reported errors and call again (or use scene_patch_build for incremental edits). Voiceover narration, music and sound effects are declared inside the scene code itself and resolved automatically during the build — see the skills docs via skills_list for the audio APIs. Only projects created by these tools are editable — for any other project, create an editable copy with project_clone first.

scene_view_contact_sheet

ChatGPT
Render several frames of a validated scene tiled into a single "contact sheet" PNG, each captioned with its frame number and timestamp — a fast way to eyeball timing and motion across the whole scene in one image. Pass frames as an explicit list or leave it "auto" (default) to sample frames evenly from first to last. The scene is validated once and all frames are drawn from that build.

scene_view_frames

ChatGPT
Render one or more frames of a project's validated scene as PNG images so you (or the user) can see what it looks like. Provide a list of frame numbers (defaults to [0]; each clamped to the valid range; at most 8 per call). The scene is validated once and every requested frame is rendered from the same build.

skills_list

ChatGPT
List the available skills (authoring guides) and their reference docs, or search across them. Consult the relevant guides BEFORE writing scene code. Without query it returns a table of contents: each skill with its description and the relative paths of its SKILL.md and reference docs. With query it searches every doc and returns the matching docs with the matching lines. Read any listed path with skills_read.

skills_read

ChatGPT
Read a single skill document by its path relative to the skills directory (e.g. "motion-canvas/SKILL.md" or "motion-canvas/references/TXT.md"). Use skills_list to discover paths.

stock_use

ChatGPT
Add a result picked from stock_search to a project as a named asset. Pass the result's provider, type and id plus a name; it is materialised server-side and bound to the project. Reference it in scene code with import {asset} from 'vzrt'; then asset('<name>') (for an image, <Img src={asset('<name>')} />) — attribution is handled automatically and no URL is exposed.

template_list

ChatGPT
List the scene templates available as starting points. Pass keywords to search by concept. Read a template with template_read.

template_read

ChatGPT
Read a single scene template by name (e.g. "default"). Returns the complete template scene code. Use template_list to discover available templates.

template_view_contact_sheet

ChatGPT
Render a template's scene into a "contact sheet" PNG — several frames tiled into one image, each captioned with its frame number and timestamp — to eyeball how a template looks and moves before starting from it. Pass aspect_ratio to render at a given shape (defaults to 16:9), and frames as an explicit list or "auto" (default) to sample evenly across the scene. Use template_list to discover template names.

usage_get

ChatGPT
Check your VideoZero plan and remaining usage. Reports the video-generation credit pool (consumed by video_generate/video_revise) and the daily/monthly standing of each metered project/scene action. Read-only — calling this consumes nothing. Use it before large jobs or when a tool reports a limit error.

video_generate

ChatGPT
Creates a NEW mostly-2D animated video / motion-graphic using VideoZero. This tool produces a lightweight HTMLCanvas-based animation (2D shapes/text/plots) and supports exporting the result to MP4. Use this when the user wants a 2D animation/video built from simple elements, such as: - kinetic typography, titles, captions/subtitles - diagrams, charts, plotted graphs (as animation, not a single still) - math / LaTeX formulas rendered on-screen - algorithm & data-structure visualizations (arrays, pointers, partitions, swaps, recursion, etc.) - 2D physics / systems illustrations (mass-spring, vectors, matrices) using shapes/arrows/labels - Educational or explanatory 2D animations / videos Routing rule: - If the request requires photorealism, human faces/people, real-world landscape realism, or true 3D rendering, do NOT use this tool. - If the user wants to change, iterate on, or refine an EXISTING VideoZero project, use video_revise instead. Behavior: - Generate a NEW video based on the structured prompt from scratch or based on referenced VideoZero scenes. - Returns immediately with a prompt_id (also the project_id); rendering happens asynchronously and the UI polls status and informs once the video is ready. - To build on existing public VideoZero scenes as inspiration for a NEW video, include their scene IDs in the referenced_scenes field. This is distinct from revising a project the user already owns — for that, use video_revise. - The default resolution is 1920x1080 (Full HD) at 60 FPS. Other aspect ratios are supported: 16:9 (1920x1080), 9:16 (1080x1920), 1:1 (1080x1080), 4:3 (1440x1080), 4:5 (1080x1350), 3:4 (1080x1440), 2:1 (2160x1080). Input structure: - Provide a structured prompt with title, meta (audience, objectives, description, keywords), style (appearance, colors, components), and ordered scenes with beats. - Each scene has beats with marker_id, visuals, audio (voiceover text), and actions. - Specify visual style via the style object: appearance (light/dark), colors map, and component descriptions. - If including math, provide LaTeX in beat visuals. - If including algorithms, describe each step to animate in beat actions. - Voiceover/Narration goes in beat audio fields. Do NOT use this tool for: - revising, editing, or iterating on an existing VideoZero project (use video_revise instead) - standalone/static images (use an image tool instead) - photorealistic content or real-world video synthesis (faces/people, landscapes, “realistic” scenes) - 3D models or 3D scenes (teapots, 3D renders, realistic lighting, raytracing) - editing/trimming/modifying an existing non-VideoZero video file - generating or editing audio only - downloading, converting, transcoding, playing, or streaming video files

video_like

ChatGPT
Use this when the user wants to like or favorite a VideoZero video project. Do not use for general bookmarking or saving unrelated content.

video_revise

ChatGPT
Create a revised version of an EXISTING VideoZero video project. The revision inherits the parent's structured prompt and aspect ratio, and applies natural-language revision instructions on top. Use this when the user wants to iterate on a project they've already created — e.g., "make the background darker", "replace scene 2 with something about gradients", "shorten the outro", "add a recap at the end". Do NOT use this to create a new video from scratch; use video_generate for that. Behavior: - Requires the parent project to already have a structured prompt. - Accumulates the new instructions onto any prior revision instructions for the same project. - Returns immediately with a new prompt_id (also the revised project_id); rendering happens asynchronously and the UI polls for status.

video_unlike

ChatGPT
Use this when the user wants to unlike or remove a VideoZero video project from their favorites. Do not use for deleting projects or removing content.

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

Similar Apps