On July 12, 2026, developer Luke Fairbanks released Broll, an open-source (MIT) Model Context Protocol server that hands coding agents a full content studio. In a single MCP install, agents like Claude Code and Codex can generate images and video with your own OpenAI and Gemini keys, compile videos and carousels deterministically through ffmpeg and sharp, and stage posts in a draft-first outbox for Bluesky, Mastodon, or X. The project shipped with 96 tests, including real ffmpeg integration renders and a full MCP round trip. Its design rule is blunt: the model plans, code renders, and nothing posts without explicit confirmation.

That last line is the whole pitch. Coding agents have been able to write a content plan for months. Broll is the first widely visible MCP server built to let them actually make the carousel, cut the video, and queue the post, without ever handing over the publish button.

Why coding agents could not make media until now

Every developer running a coding agent hits the same wall. The agent can draft a launch plan, write the captions, and outline a video, but it cannot render an MP4 or lay out a branded slide. The existing tools that do this are credit-metered schedulers built for social media managers, not developers. They meter your generations, resell inference at a markup, and assume a human is clicking buttons in a dashboard.

Broll flips that. Image and video generation run on your own keys with no markup: OPENAI_API_KEY drives gpt-image-1 for stills, and GEMINI_API_KEY drives Imagen for images plus Veo for video. Broll never proxies your inference or resells credits. A built-in mock provider keeps every workflow runnable before you add a single key, so an agent can test a full pipeline offline and only spend money once the plan is right.

Coding agent generating media through the Broll MCP server
Broll gives coding agents hands for content work, from generation to render to a draft-first outbox.

How Broll works: generate, render, publish

Broll exposes a focused set of MCP tools that map to three stages. Generation comes first: generate_image and generate_video pull assets into a workspace, falling back to the mock provider when keyless. import_asset, list_assets, and probe_asset bring in and inspect existing media.

Rendering is where Broll makes its strongest claim. Videos and slides are compiled from declarative plans into exact ffmpeg and sharp invocations, so the same plan plus the same inputs always produce the same output. render_video turns a RenderPlan into an MP4 with clips, trims, cover or contain fits, burned-in titles, timed captions, a music bed, and aspect ratios of 9:16, 1:1, 4:5, or 16:9. render_carousel builds branded slide sets, the Instagram and LinkedIn format, with a kicker, headline, body, accent bar, page numbers, and watermark, all laid out in code rather than by the model. When AI output drifts, the fix is code, not a reroll. An extract_frame tool pulls a PNG so the agent can visually QA its own render before anyone sees it.

A broll.config.json brand kit sits next to the server: name, handle, colors, font, and logo. Every render picks it up automatically, so branding stays consistent across an entire campaign without the agent reinventing it each time.

Deterministic ffmpeg and sharp rendering pipeline in Broll
Declarative RenderPlans compile to exact ffmpeg and sharp commands, so the same inputs always render the same output.

Broll versus credit-metered schedulers

The difference between Broll and the tools it is reacting to comes down to who holds the keys and who holds the publish button.

DimensionBroll (local MCP)Typical scheduler
Built forDevelopers running coding agentsSocial media managers in a dashboard
Generation costYour own OpenAI and Gemini keys, no markupMetered credits, resold inference
RenderingDeterministic ffmpeg and sharp from codeOpaque, non-reproducible templates
Publishing controlDraft-first outbox, confirm requiredAgent or automation can post directly
InterfaceMCP tools for any agent clientWeb UI and proprietary API
LicenseMIT, self-hostedClosed source, SaaS only

Set up Broll in five steps

Getting an agent wired into Broll takes a few minutes if you already have Node and ffmpeg.

  1. Install prerequisites. Broll needs Node 20 or newer and ffmpeg (brew install ffmpeg on macOS).
  2. Build the server. From the cloned repo, run npm install && npm run build.
  3. Register it with your agent. Run claude mcp add broll -- node /path/to/broll/dist/index.js, or use the checked-in .mcp.json when working inside the repo. See the Claude Code MCP docs for client setup details.
  4. Add your keys. Export OPENAI_API_KEY or GEMINI_API_KEY for real generation, plus platform credentials if you want live posting. Skip this to stay on the mock provider.
  5. Verify and smoke test. Have the agent call broll_status first to confirm workspace, ffmpeg, provider, and platform readiness, then run npm run smoke to drive a full generate, render, QA, and export pass into a local folder.

If you are new to wiring servers into agents, our walkthrough on how to deploy an MCP server to Claude and ChatGPT covers the general pattern Broll follows.

Terminal registering the Broll MCP server with a coding agent
Registering Broll takes one command, then broll_status confirms ffmpeg, providers, and platform readiness.

What this enables for creators

The payoff is that a single prompt can now carry an idea all the way to a reviewable post. Ask an agent to promote a feature, and it can generate a background, render a three-slide carousel and a 9:16 teaser with captions, extract a frame to check its own work, and drop a validated draft into the outbox, all in one run. You review the draft, and only then does it go live.

The safety model is what makes this usable in a real workflow. Nothing publishes without a draft file on disk first. publish_post hard-requires confirm: true, validates per-platform rules like character limits, media counts, and file sizes before anything leaves the machine, and never auto-truncates your text. Keys are read from your environment and sent only to their own vendor's API. An export platform always works, writing a ready-to-post bundle even with zero social credentials configured.

Broll joins a small but growing class of agent-native media tools. It sits alongside command-line options like Ploof, the agent-native CLI for image, video, and audio, and generation backends like Comfy MCP for running ComfyUI from any agent. What sets Broll apart is the full path from generation through deterministic rendering to a gated publish step.

Broll Cloud and what ships next

The local server stays MIT and free. A separate hosted tier, Broll Cloud, is on a public waitlist at a planned price near 29 dollars a month. It targets the parts a local server handles poorly: the app-review-walled platforms like Instagram, LinkedIn, and TikTok through Broll's own approved credentials, schedules that run while your laptop is closed, and a swipe-to-approve inbox on your phone.

The roadmap for the open server is concrete. The Mastodon adapter already ships, so any instance works through the Mastodon API with no app review, and posting to Bluesky and X is live for text and images. Still open: Bluesky video upload, X chunked video upload, a LinkedIn adapter pending app review, YouTube Shorts via user OAuth, Ken Burns and crossfade transitions, word-level caption timing from transcripts, and an npx broll-mcp distribution so installs skip the build step.

Frequently asked questions

Is Broll free to use?

Yes. The local MCP server is MIT licensed and free. You pay only for the generation you run through your own OpenAI or Gemini keys. Broll Cloud, the optional hosted tier for walled platforms and scheduling, is a separate paid product planned near 29 dollars a month.

Which agents can use Broll?

Any MCP client. The README calls out Claude Code and Codex explicitly, but because Broll speaks the Model Context Protocol, any compliant agent can register it and call its tools.

Can the agent post to my accounts without asking?

No. Publishing is draft-first, and publish_post hard-requires confirm: true. Every post is written to an outbox as a reviewable JSON file first, and constraint violations block publishing rather than silently trimming your text.

What can it actually render?

MP4 videos with clips, trims, burned-in titles, timed captions, and a music bed in 9:16, 1:1, 4:5, or 16:9, plus branded carousel slide sets for Instagram and LinkedIn. Rendering runs through ffmpeg and sharp, so outputs are deterministic and reproducible.

Do I need social media API keys to try it?

No. A built-in mock provider and an always-available export platform let you run a complete generate, render, and draft pipeline with zero keys. The export writes a ready-to-post bundle you can upload manually.

How mature is the project?

It is early but real. Broll launched on July 12, 2026 with 96 tests, including real ffmpeg integration renders and a full MCP round trip. Several adapters and features, such as Bluesky video upload and an npx installer, are still on the roadmap.