Broll

io.github.luke-fairbanks由 GitHub 账号 luke-fairbanks 发布v0.1.1更新于 Oct 24, 2026

Content studio MCP for coding agents: BYO keys, deterministic video rendering, draft-first posting

概览

AI 生成的概览

一个本地内容工作室 MCP,让编码助手用自带密钥生成图片和视频、以代码渲染品牌轮播图和视频,并起草社交平台帖子。

可以做什么
Broll 为助手提供工具,用你自己的服务商密钥生成图片和视频,导入和检查媒体素材,并通过 ffmpeg 和 sharp 从声明式计划确定性地渲染视频和品牌轮播图。它可以抽取一帧用于视觉检查,在本地发件箱中创建经过校验的帖子草稿,列出草稿并发布。发布需要显式的确认标志,并在内容离开本机前按平台规则进行校验。
适用场景
当编码助手需要真正制作营销或社交媒体素材和帖子,而不仅是做规划时使用;也适合希望获得可复现、由代码驱动的渲染,而不是按额度计费的排程工具的场景。适合已经拥有自己的 OpenAI 或 Gemini 密钥、并希望对发布内容保持草稿优先控制的开发者。
运行要求
作为 npm 包(broll-mcp)通过 stdio 在本机运行,需要 Node 20+ 以及已安装的 ffmpeg。可选环境变量用于启用功能:OPENAI_API_KEY 用于图片生成,GEMINI_API_KEY 用于图片和视频,BLUESKY_IDENTIFIER 与 BLUESKY_APP_PASSWORD 用于 Bluesky 发布,MASTODON_ACCESS_TOKEN 用于 Mastodon,X_API_KEY、X_API_SECRET、X_ACCESS_TOKEN、X_ACCESS_TOKEN_SECRET 用于 X。没有任何密钥时也可使用内置模拟提供方。
安装前请注意
实时发布会把内容发送到第三方平台,并需要上述平台凭据;X 发布被说明为需要已充值的 API 额度。生成的媒体会发送给你所提供密钥对应的服务商。发布被 confirm: true 和磁盘上的草稿文件所限制,但拥有该工具的助手只要设置该标志仍可能发布,因此在同意发布前请先审阅草稿。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Broll,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

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_KEY directly. 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_post requires confirm: true, validates per-platform rules (char limits, media counts, file sizes) before anything leaves the machine, and reports per-platform results. The export platform always works: it writes a ready-to-post bundle.

Install

Requires Node 20+ and ffmpeg (brew install ffmpeg).

bash
cd brollnpm install && npm run build

Register with Claude Code (or use the checked-in .mcp.json when working inside this repo):

bash
claude mcp add broll -- node /path/to/broll/dist/index.js

Optional environment:

VariablePurpose
OPENAI_API_KEYgpt-image-1 image generation
GEMINI_API_KEYImagen images + Veo video generation
BLUESKY_IDENTIFIER / BLUESKY_APP_PASSWORDlive Bluesky posting (use an app password)
MASTODON_ACCESS_TOKEN (+ optional MASTODON_INSTANCE)live Mastodon posting — no app review, any instance
X_API_KEY / X_API_SECRET / X_ACCESS_TOKEN / X_ACCESS_TOKEN_SECRETlive X posting (free API tier works)
BROLL_HOMEworkspace location (default ~/.broll)
BROLL_FFMPEG / BROLL_FFPROBEexplicit 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

ToolWhat it does
broll_statusWorkspace, ffmpeg, provider + platform readiness. Call first.
generate_image / generate_videoBYO-key generation → workspace assets (mock fallback when keyless)
import_asset / list_assets / probe_assetBring in and inspect media
render_videoDeclarative 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
render_carouselBranded slide sets (the Instagram/LinkedIn format): kicker, headline, body, accent bar, page numbers, watermark — layout is 100% code
extract_framePull a PNG frame so the agent can visually QA its own render
create_post_draftText + media + platforms → validated, reviewable draft in the outbox
list_drafts / publish_postInspect the outbox; publish with explicit confirm: true

Try it

bash
npm run smoke

drives 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/.

broll cloud (waitlist)

The local server you're looking at stays MIT and free. broll cloud adds the parts a local server can't do well: the app-review-walled platforms (Instagram, LinkedIn, TikTok) through broll's own approved credentials, schedules that run while your laptop is closed, and a swipe-to-approve inbox on your phone. ~$29/mo when it ships.

Join the waitlist → 👍 issue #1 — subscribers get the launch note; comments set the platform build order.

Safety model

  1. Nothing is published without a draft file on disk first.
  2. publish_post hard-requires confirm: true — agents are instructed to obtain the user's explicit go-ahead.
  3. Constraint violations block publishing; they never auto-truncate your text.
  4. 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-mcp distribution

Development

bash
npm test          # unit + integration (real ffmpeg)npm run typechecknpm run smoke     # end-to-end artifact check

MIT.

来源:README.md,提交 a5b8a67

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分