Go MCP server for ffmpeg, Remotion, and Google Vids video workflows
vids-mcp-go
vids-mcp-go is a local Go MCP server for video workflows.
It now supports three paths:
- fast local caption videos with
ffmpeg - higher-quality motion videos with Remotion
- Google Vids browser automation through Playwright and a reusable Chrome profile
What is already wired
- Local MCP client config updated in
C:\Users\hp\.config\opencode\opencode.json - Built executable available at
C:\Users\hp\Desktop\vids-mcp-go\vids-mcp-go.exe - Local Go runtime available at
C:\Users\hp\tools\go-local\go\bin\go.exe - Node dependencies installed in
C:\Users\hp\Desktop\vids-mcp-go\node_modules
Project layout
main.go- server entrypointinternal/app/server.go- MCP registration and startupinternal/video/renderer.go-ffmpegrendererinternal/video/remotion.go- Remotion renderer bridgeinternal/googlevids/service.go- Google Vids automation bridgeinternal/tools/- MCP handlersnode/remotion/- Remotion render app and scriptsnode/google-vids/- Playwright automation scriptsexamples/sample-request.json-ffmpegrender requestexamples/remotion-request.json- Remotion render request
Requirements
ffmpegonPATH- Node.js 22+
- a desktop Chrome install for Google Vids automation
- a valid font file for
drawtext
Windows defaults used by this project:
FFMPEG_PATH=ffmpegFFMPEG_FONT_FILE=C:\Windows\Fonts\arial.ttfVIDEO_NODE_COMMAND=nodeGOOGLE_VIDS_BROWSER_CHANNEL=chrome
Build commands
Use the local Go toolchain that was installed without admin rights:
"C:\Users\hp\tools\go-local\go\bin\go.exe" mod tidy
"C:\Users\hp\tools\go-local\go\bin\go.exe" build -o vids-mcp-go.exe .
How to work with it
1) Restart OpenCode
Restart your OpenCode client so it reloads C:\Users\hp\.config\opencode\opencode.json and picks up the new vids-mcp-go MCP server.
2) Use ffmpeg rendering for simple videos
Use the payload in C:\Users\hp\Desktop\vids-mcp-go\examples\sample-request.json with the tool render_video_from_json.
Best for:
- quick caption videos
- low-complexity local exports
- simple automation pipelines
3) Use Remotion for better-looking videos
Use the payload in C:\Users\hp\Desktop\vids-mcp-go\examples\remotion-request.json with the tool render_video_with_remotion, then poll get_remotion_render_status using the returned job_id.
Best for:
- cleaner typography
- animated scene cards
- stronger visual presentation
4) Use Google Vids automation
Recommended sequence:
- Run
open_google_vids_projectwith your Google Vids URL. - In the browser window that opens, sign in to Google if needed.
- Run
inspect_google_vids_projectto verify the page loaded and the automation can see export controls. - Run
export_google_vids_videoto try downloading the rendered/exported video.
Google Vids automation is best-effort because the Google UI can change.
Tool table
| Tool | Purpose | Main input |
| --- | --- | --- |
| build_storyboard_from_prompt | Turn a rough idea into a scene-based JSON storyboard | prompt |
| validate_video_request | Validate a video JSON payload before rendering | payload |
| check_ffmpeg_installation | Confirm ffmpeg is ready | none |
| check_node_installation | Confirm Node.js is ready | none |
| check_remotion_installation | Confirm Remotion dependencies are ready | none |
| render_video_from_json | Render a simple MP4 with ffmpeg | payload |
| render_video_with_remotion | Queue a motion-designed MP4 render job with Remotion | payload |
| get_remotion_render_status | Poll a queued Remotion render until it completes | job_id |
| open_google_vids_project | Open Google Vids in a reusable browser profile | project_url, profile_name |
| inspect_google_vids_project | Inspect visible controls in the Google Vids page | project_url, profile_name, browser_channel |
| export_google_vids_video | Try to export/download the Google Vids project | project_url, profile_name, download_dir, timeout_seconds, browser_channel |
Example flows
Storyboard to ffmpeg
build_storyboard_from_promptvalidate_video_requestrender_video_from_json
Storyboard to Remotion
build_storyboard_from_prompt- adjust
themeandfontif needed validate_video_requestrender_video_with_remotionget_remotion_render_status
Google Vids export
open_google_vids_project- sign in manually once in the opened browser profile
inspect_google_vids_projectexport_google_vids_video
Notes
- Remotion downloads its browser on first render if needed.
- Remotion requests are asynchronous now to avoid MCP request timeouts on longer videos.
- Video payloads accept both
duration_secondsandduration, plusbackground_colorandbackgroundColor. - Google Vids export depends on your account permissions and current UI labels.
- Downloaded Google Vids exports default to
C:\Users\hp\Desktop\vids-mcp-go\output\google-vids-downloads