About clipacanvas
clipacanvas is an MCP server that renders HTML, CSS, and JavaScript as MP4 video locally. It is for MCP client users who need base64 output or a video file, with rendering handled by Chromium and FFmpeg on the local machine.
Key features
- 01Render HTML, CSS, and JavaScript to MP4
- 02Return video as base64
- 03Save rendered video to a file
- 04Configure dimensions, bitrate, and frame rate
- 05Run rendering locally with Chromium and FFmpeg
Use cases
- 01Create an MP4 from an HTML animation
- 02Return rendered video data to an MCP client
- 03Save generated video at a chosen path
MCP support
It exposes `render_video` and `render_video_to_file` tools to MCP clients. The first returns base64-encoded MP4 data, while the second writes the video to a specified path.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEClip.A.Canvas MCP Server
A universal MCP (Model Context Protocol) server that exposes Clip.A.Canvas HTML-to-video rendering as an MCP tool. Works with Claude Desktop, ChatGPT, Antigravity CLI (agy), Claude Code, and any STDIO/HTTPS-based MCP client.
Features
- Universal MCP tool —
render_videoandrender_video_to_fileexposed via the MCP protocol - Works everywhere — Claude Desktop, ChatGPT, Antigravity CLI, Claude Code, and more
- Local rendering — no upload, no cloud; Chromium + FFmpeg run on your machine
- Base64 or file output — return video as base64 string or save directly to a path
Installation
Client Configuration
1. Antigravity CLI (agy)
Add the following to your mcp_config.json (typically at ~/.gemini/antigravity-cli/mcp_config.json):
{
"mcpServers": {
"clipacanvas": {
"command": "uvx",
"args": ["--from", "clipacanvas-mcp", "clipmcp"]
}
}
}
Verify the server loads successfully by running agy inspect.
2. Claude Code
claude mcp add -s user clipacanvas -- cmd /c uvx --from clipacanvas-mcp clipmcp
3. Codex CLI
codex mcp add clipacanvas -- uvx --from clipacanvas-mcp clipmcp
Note
If
codex mcp listdisplaysAuth: Unsupportedfor Clip.A.Canvas, this is completely normal! This status simply means the server does not require external OAuth authentication to run (which is correct for local stdio MCP servers).
From PyPI
pip install clipacanvas-mcp
# or
uv tool install clipacanvas-mcp # gives 'clipacanvas-mcp' command
Configuration
Environment variables (all optional):
| Variable | Default | Description |
|---|---|---|
CLIPACANVAS_FFMPEG_EXE | auto-detect | Path to FFmpeg executable |
CLIPACANVAS_BROWSERS_PATH | auto-detect | Path to Playwright browsers |
CLIPACANVAS_MAX_DURATION | 12 | Max render duration in seconds |
CLIPACANVAS_DEFAULT_WIDTH | 540 | Default video width |
CLIPACANVAS_DEFAULT_HEIGHT | 960 | Default video height |
CLIPACANVAS_DEFAULT_BITRATE | 5M | Default FFmpeg bitrate |
CLIPACANVAS_DEFAULT_FRAME_RATE | 60 | Default frame rate |
MCP Tools
render_video
Read-only hint: No | Destructive hint: No
Render HTML/CSS/JS to MP4, returned as base64.
Arguments:
{
"code": "<!DOCTYPE html><html>...</html>",
"width": 540,
"height": 960,
"bitrate": "5M",
"frame_rate": 60,
"max_duration": 12
}
Returns: Text content with video metadata and base64-encoded MP4 data.
render_video_to_file
Read-only hint: No | Destructive hint: Yes (overwrites file)
Same as above but saves the MP4 directly to output_path.
Arguments:
{
"code": "<!DOCTYPE html><html>...</html>",
"output_path": "/absolute/path/to/video.mp4",
"width": 540,
"height": 960
}
Usage in AI Clients
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"clipacanvas": {
"command": "uvx",
"args": ["clipacanvas-mcp"]
}
}
}
ChatGPT (via Bridge)
To use this local tool with ChatGPT, you can use an MCP-to-HTTPS bridge (like mcp-proxy) or host it on a public URL. ChatGPT currently requires an HTTPS endpoint for official "App" integrations.
Other Clients (Codex, Qwen Coder, etc.)
Since this is a standard STDIO-based server, it works with any client that supports MCP. Use uvx clipacanvas-mcp or python -m clipacanvas_mcp.server as the launch command.
Privacy Policy
Clip.A.Canvas is a local-first application.
- Data Collection: No user data, code snippets, or rendered videos are ever uploaded to any server.
- Processing: All HTML/CSS/JS rendering happens inside a local Chromium instance on your machine.
- Storage: Rendered MP4 files are saved only to the directory you specify.
- Third-party Services: None.
Requirements
- Python 3.10+
- FFmpeg (installed system-wide, via
imageio-ffmpeg, or setCLIPACANVAS_FFMPEG_EXE) - Playwright Chromium: installed automatically on first render if missing.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.