broll
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@brollRender a 9:16 video with captions and music"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
broll
The content studio MCP for coding agents. broll gives Claude Code, Codex, and any MCP client real hands for content work: generate media with your own API keys, render videos and carousels deterministically with code, and publish through a draft-first outbox.
The model plans. Code renders. Nothing posts without confirmation.
Why
Every developer running a coding agent hits the same wall: the agent can write the marketing plan, but it can't make the carousel, cut the video, or post it. Existing tools are credit-metered schedulers built for social media managers. broll is built for developers:
BYO keys, no markup. Image/video generation uses your
OPENAI_API_KEY/GEMINI_API_KEYdirectly. broll never proxies your inference or resells credits. A built-in mock provider keeps every workflow runnable before you add any keys.Deterministic rendering. Videos and slides are compiled from declarative plans into exact ffmpeg/sharp invocations. Same plan + same inputs = same output. When AI output drifts, the fix is code — so layout, fonts, captions, and branding live in code.
Draft-first publishing. Posts are reviewable JSON files in an outbox.
publish_postrequiresconfirm: true, validates per-platform rules (char limits, media counts, file sizes) before anything leaves the machine, and reports per-platform results. Theexportplatform always works: it writes a ready-to-post bundle.
Related MCP server: flash-cast-mcp
Install
Requires Node 20+ and ffmpeg (brew install ffmpeg).
cd broll
npm install && npm run buildRegister with Claude Code (or use the checked-in .mcp.json when working inside this repo):
claude mcp add broll -- node /path/to/broll/dist/index.jsOptional environment:
Variable | Purpose |
| gpt-image-1 image generation |
| Imagen images + Veo video generation |
| live Bluesky posting (use an app password) |
| live Mastodon posting — no app review, any instance |
| live X posting (free API tier works) |
| workspace location (default |
| explicit binary paths |
Brand kit: drop a broll.config.json next to where the server runs (see this repo's for an example) — name, handle, colors, font, logo. Every render picks it up automatically.
Tools
Tool | What it does |
| Workspace, ffmpeg, provider + platform readiness. Call first. |
| BYO-key generation → workspace assets (mock fallback when keyless) |
| Bring in and inspect media |
| Declarative RenderPlan → mp4: clips (video/image/color), trims, cover/contain fits, burned-in titles + timed captions, music bed, 9:16 / 1:1 / 4:5 / 16:9 |
| Branded slide sets (the Instagram/LinkedIn format): kicker, headline, body, accent bar, page numbers, watermark — layout is 100% code |
| Pull a PNG frame so the agent can visually QA its own render |
| Text + media + platforms → validated, reviewable draft in the outbox |
| Inspect the outbox; publish with explicit |
Try it
npm run smokedrives the real server through a real MCP client: generates a background, renders a 3-slide carousel and a 9:16 teaser video with captions, extracts a QA frame, then drafts and "publishes" an export bundle — all into ./.broll/.
Safety model
Nothing is published without a draft file on disk first.
publish_posthard-requiresconfirm: true— agents are instructed to obtain the user's explicit go-ahead.Constraint violations block publishing; they never auto-truncate your text.
Keys are read from your environment and sent only to their own vendor's API.
Status & roadmap
Early but real: 96 tests including real-ffmpeg integration renders and a full MCP round trip.
Bluesky video upload
X chunked video upload
LinkedIn adapter (needs app review)
Mastodon adapter
YouTube Shorts via user OAuth
Ken Burns / crossfade transitions
Word-level caption timing from transcripts
npx broll-mcpdistribution
Development
npm test # unit + integration (real ffmpeg)
npm run typecheck
npm run smoke # end-to-end artifact checkMIT.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/luke-fairbanks/broll'
If you have feedback or need assistance with the MCP directory API, please join our Discord server