PromptMotion MCP
by catais
README.md
# PromptMotion MCP
PromptMotion turns one ChatGPT request into a complete 3–6 minute product presentation video. ChatGPT supplies the strategy and scene plan; a purpose-built Canvas/Web Audio engine previews, combines, and exports every scene in the browser.
No OpenAI API key. No Remotion. No paid renderer. No uploaded frames.
## How it works
```text
one product brief
↓
ChatGPT plans the narrative + complete VideoIR
↓ one produce_video call
Cloudflare Worker validates and normalizes the timeline
↓
PromptMotion Studio renders locally with Canvas + MediaRecorder
↓
one continuous MP4/WebM download in each selected aspect ratio
```
The Worker performs lightweight validation only. Rendering stays in the user's browser, which keeps the hosted component compatible with free-tier limits and avoids storing creative assets.
## Supported outputs
| Destination | Aspect | Resolution |
|---|---:|---:|
| YouTube | 16:9 | 1920×1080 / 3840×2160 |
| YouTube Shorts | 9:16 | 1080×1920 / 2160×3840 |
| Instagram Feed | 1:1 / 4:5 | 1080×1080 / 1080×1350 |
| Instagram Reels | 9:16 | 1080×1920 / 2160×3840 |
| TikTok | 9:16 | 1080×1920 / 2160×3840 |
| Facebook | 4:5 / 16:9 | 1080×1350 / 1920×1080 |
| LinkedIn | 1:1 / 16:9 | 1080×1080 / 1920×1080 |
## Run locally
Requirements: Node.js 20+ and a current Chromium browser.
```bash
npm install
npm run dev
```
Open `http://localhost:8787` for the standalone studio. The MCP endpoint is `http://localhost:8787/mcp`; health is available at `/health`.
## Deploy free on Cloudflare Workers
```bash
npx wrangler login
npm run deploy
```
Then replace the endpoint in `.mcp.json` and `skills/product-video/agents/openai.yaml` if your Workers subdomain differs.
## Connect from ChatGPT
1. Deploy the Worker and copy its HTTPS `/mcp` URL.
2. In ChatGPT developer mode, add a custom MCP connector using that URL.
3. Ask for a full product video in one message, including a website/brief and desired platforms.
4. ChatGPT calls `produce_video` once. Use the embedded studio to preview and render the final file.
Example request:
> Create a 3-minute cinematic launch video for our B2B payments platform. Audience: finance teams. Goal: free trials. Make YouTube 16:9, Instagram Reels, TikTok, and LinkedIn square versions. Use violet and mint, modern but credible.
## Commands
```bash
npm run build # embed the widget and type-check the Worker
npm test # validate timeline and preset behavior
npm run check # build + all tests
npm run deploy # build widget + deploy Worker
```
## Important constraints
- Export is real-time because the browser records the animated canvas as it plays. A 3-minute film takes about 3 minutes per selected output.
- MP4 availability depends on the browser's MediaRecorder codecs; WebM is the portable fallback.
- The procedural soundtrack is intentionally simple in this first release. Voiceover and uploaded media tracks are roadmap items.
- 4K rendering depends on device memory and GPU capacity. 1080p is the recommended default.
- The creative plan should use sourced facts. PromptMotion does not verify marketing claims.
## Why not Vercel Hobby?
The architecture can be hosted as static assets plus a lightweight MCP route, but Vercel Hobby is limited to personal, non-commercial use. Cloudflare Workers Free is the safer default for this open project. The browser still performs all expensive rendering.
## License
MIT
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues