mcpField
C
clipacanvas

clipacanvas

Local
github.com/mechreaper007xMedia & Design2Updated 22w ago

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

  1. 01Render HTML, CSS, and JavaScript to MP4
  2. 02Return video as base64
  3. 03Save rendered video to a file
  4. 04Configure dimensions, bitrate, and frame rate
  5. 05Run rendering locally with Chromium and FFmpeg

Use cases

  1. 01Create an MP4 from an HTML animation
  2. 02Return rendered video data to an MCP client
  3. 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.

mcp.json · Universal config
{
"mcpServers": {
"mechreaper007x-clipacanvas": {
"command": "uvx",
"args": [
"clipacanvas-mcp"
]
}
}
}
Run commanduvx clipacanvas-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypiclipacanvas-mcp1.0.2

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Clip.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_video and render_video_to_file exposed 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 list displays Auth: Unsupported for 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):

VariableDefaultDescription
CLIPACANVAS_FFMPEG_EXEauto-detectPath to FFmpeg executable
CLIPACANVAS_BROWSERS_PATHauto-detectPath to Playwright browsers
CLIPACANVAS_MAX_DURATION12Max render duration in seconds
CLIPACANVAS_DEFAULT_WIDTH540Default video width
CLIPACANVAS_DEFAULT_HEIGHT960Default video height
CLIPACANVAS_DEFAULT_BITRATE5MDefault FFmpeg bitrate
CLIPACANVAS_DEFAULT_FRAME_RATE60Default 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 set CLIPACANVAS_FFMPEG_EXE)
  • Playwright Chromium: installed automatically on first render if missing.

License

MIT

Comments

Markdown supported

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.