broll — Claude Code MCP server for content creation and publishing
broll lets coding agents generate media, render videos and carousels, and prepare social posts for review. Publishing requires explicit confirmation.
claude mcp add broll -e OPENAI_API_KEY=<OPENAI_API_KEY> -e GEMINI_API_KEY=<GEMINI_API_KEY> -e BLUESKY_APP_PASSWORD=<BLUESKY_APP_PASSWORD> -e MASTODON_ACCESS_TOKEN=<MASTODON_ACCESS_TOKEN> -e X_API_KEY=<X_API_KEY> -e X_API_SECRET=<X_API_SECRET> -e X_ACCESS_TOKEN=<X_ACCESS_TOKEN> -e X_ACCESS_TOKEN_SECRET=<X_ACCESS_TOKEN_SECRET> -- npx -y broll-mcpWhat broll does
The server can create images and video using your API credentials, or use a mock provider before credentials are configured. Videos and carousel slides are rendered from plans with ffmpeg and sharp; plans can define clips, captions, sizing, and branded elements. A broll.config.json file supplies brand details for renders.
Posts go to a local outbox as reviewable drafts. Before publishing, broll checks platform constraints, and publish_post requires confirm: true; a failed check blocks the post rather than shortening its text. Local setup requires Node 20+ and ffmpeg. Video rendering will not run without ffmpeg.
What it helps with
- generate images or video with your own API credentials
- render a video with titles and timed captions
- build branded slides for a carousel
- create a draft that can be reviewed before posting
- export a ready-to-post media bundle
Example prompts for the agent
- Create a short video from these clips with titles and captions.
- Make an Instagram carousel using the branding in
broll.config.json. - Prepare a Bluesky post draft and show me what would be published.
How to install broll
Platform CLI
claude mcp add broll -e OPENAI_API_KEY=<OPENAI_API_KEY> -e GEMINI_API_KEY=<GEMINI_API_KEY> -e BLUESKY_APP_PASSWORD=<BLUESKY_APP_PASSWORD> -e MASTODON_ACCESS_TOKEN=<MASTODON_ACCESS_TOKEN> -e X_API_KEY=<X_API_KEY> -e X_API_SECRET=<X_API_SECRET> -e X_ACCESS_TOKEN=<X_ACCESS_TOKEN> -e X_ACCESS_TOKEN_SECRET=<X_ACCESS_TOKEN_SECRET> -- npx -y broll-mcpReplace <…> with your own values. 4 more environment variables are in the server README
Platform CLI
codex mcp add broll --env OPENAI_API_KEY=<OPENAI_API_KEY> --env GEMINI_API_KEY=<GEMINI_API_KEY> --env BLUESKY_IDENTIFIER=<BLUESKY_IDENTIFIER> --env BLUESKY_APP_PASSWORD=<BLUESKY_APP_PASSWORD> --env MASTODON_ACCESS_TOKEN=<MASTODON_ACCESS_TOKEN> -- npx -y broll-mcpReplace <…> with your own values. 4 more environment variables are in the server README
Config file
{
"mcpServers": {
"broll": {
"command": "npx",
"args": [
"-y",
"broll-mcp"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"BLUESKY_IDENTIFIER": "<BLUESKY_IDENTIFIER>",
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>",
"MASTODON_ACCESS_TOKEN": "<MASTODON_ACCESS_TOKEN>"
}
}
}
}Replace <…> with your own values. 4 more environment variables are in the server README
Config file
{
"servers": {
"broll": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"broll-mcp"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"BLUESKY_IDENTIFIER": "<BLUESKY_IDENTIFIER>",
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>",
"MASTODON_ACCESS_TOKEN": "<MASTODON_ACCESS_TOKEN>"
}
}
}
}Replace <…> with your own values. 4 more environment variables are in the server README
Platform CLI
gemini mcp add -e OPENAI_API_KEY=<OPENAI_API_KEY> -e GEMINI_API_KEY=<GEMINI_API_KEY> -e BLUESKY_IDENTIFIER=<BLUESKY_IDENTIFIER> -e BLUESKY_APP_PASSWORD=<BLUESKY_APP_PASSWORD> -e MASTODON_ACCESS_TOKEN=<MASTODON_ACCESS_TOKEN> broll npx -y broll-mcpReplace <…> with your own values. 4 more environment variables are in the server README
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about broll
How do I install broll in Claude Code?
Run `claude mcp add broll -e OPENAI_API_KEY=<OPENAI_API_KEY> -e GEMINI_API_KEY=<GEMINI_API_KEY> -e BLUESKY_APP_PASSWORD=<BLUESKY_APP_PASSWORD> -e MASTODON_ACCESS_TOKEN=<MASTODON_ACCESS_TOKEN> -e X_API_KEY=<X_API_KEY> -e X_API_SECRET=<X_API_SECRET> -e X_ACCESS_TOKEN=<X_ACCESS_TOKEN> -e X_ACCESS_TOKEN_SECRET=<X_ACCESS_TOKEN_SECRET> -- npx -y broll-mcp`. Replace each placeholder with the credential for a service you plan to use.
What does broll do?
broll is an MCP server for media generation, video and carousel rendering, and social post workflows. It stores a draft before publishing and requires an explicit confirmation to send it.
Can broll publish a post without confirmation?
No. publish_post requires confirm: true. If a post violates a platform constraint, publishing is blocked.