> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.bannerify.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Render videos with MCP tools

> Learn how an assistant renders your video templates as MP4 files through the Bannerify MCP server.

The Bannerify MCP server renders video templates as MP4 files. `list_templates` and `get_template` mark a video template with `video`, its length in seconds and its frame rate, so the assistant knows to call `create_video` for it.

## Prerequisites

* An MCP client connected to Bannerify. See [Connect an MCP client](https://documentation.bannerify.co/docs/mcp/overview).
* A video template. See [Generate videos](https://documentation.bannerify.co/docs/essentials/generate-videos).

## Tools

| Tool | What it does | Counts as a generation | Arguments |
| - | - | - | - |
| `create_video` | Renders a video template and returns a link to the MP4 | Yes: one for each second, two at 60 fps | `templateId` (string), `modifications` (object, optional) |
| `get_video` | Reads a video that `create_video` started: its status, and its link once it is done | No | `id` (string) |

`modifications` works as it does for `create_image`: an object keyed by layer name.

## Render a video

Ask for the video in your own words:

```text theme={null}
Render my "Summer sale" video with the headline "20% off this weekend".
```

`create_video` waits up to 45 seconds for the render. A short video comes back as a link to its MP4. A longer one comes back as its id first, and the assistant reads it again with `get_video` until it is done.

## Tasks

Clients that support MCP tasks (spec version 2025-11-25) can run `create_video` as a task. The tool lists `execution.taskSupport: "optional"`, and the server declares task support for `tools/call`.

1. The client calls `create_video` with a `task` parameter. The server starts the render and answers the task at once.
2. The client polls `tasks/get`. The task is `working` while the video waits for a renderer and renders, then `completed` or `failed`.
3. The client calls `tasks/result`, which answers the link to the MP4, as `create_video` does.

The task id is the video id, so `get_video` reads the same video. A task stays readable after it ends.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.