broll
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| X_API_KEY | No | API key for X (Twitter) live posting | |
| BROLL_HOME | No | Workspace location (default ~/.broll) | |
| BROLL_FFMPEG | No | Explicit path to ffmpeg binary | |
| X_API_SECRET | No | API secret for X live posting | |
| BROLL_FFPROBE | No | Explicit path to ffprobe binary | |
| GEMINI_API_KEY | No | API key for Google Gemini Imagen images and Veo video generation | |
| OPENAI_API_KEY | No | API key for OpenAI image generation (gpt-image-1) | |
| X_ACCESS_TOKEN | No | Access token for X live posting | |
| MASTODON_INSTANCE | No | Mastodon instance URL (optional) | |
| BLUESKY_IDENTIFIER | No | Bluesky identifier for live posting (use an app password) | |
| BLUESKY_APP_PASSWORD | No | Bluesky app password for live posting | |
| MASTODON_ACCESS_TOKEN | No | Access token for Mastodon live posting | |
| X_ACCESS_TOKEN_SECRET | No | Access token secret for X live posting |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| broll_statusA | Report workspace location, ffmpeg availability, configured generation providers, and social platform readiness. Call this first to see what is possible. Pass probe: true to live-verify social credentials (makes real authenticated API calls, posts nothing). |
| generate_imageA | Generate image(s) with the user’s own API keys (BYO-key: OpenAI or Gemini; falls back to a labelled mock when no keys are set). Returns workspace asset ids usable in render_video, render_carousel, and post drafts. |
| generate_videoA | Generate a short video clip with the user’s own API keys (Gemini Veo when configured; labelled mock otherwise). Expensive with real keys — only call when the user’s workflow needs generated footage. |
| import_assetA | Copy a local file (image/video/audio) into the broll workspace and get an asset id for it. |
| list_assetsA | List workspace assets (generated, imported, and rendered), optionally filtered by kind. |
| probe_assetA | Inspect a media file: duration, dimensions, codecs, streams. Accepts an asset id or absolute path. |
| render_videoA | Compile a declarative RenderPlan into an mp4 via ffmpeg — deterministic, brand-aware, no generation keys needed. Clips (video/image/color) are concatenated in order; overlays and captions are burned in; optional music is mixed under clip audio. Returns the rendered asset id. |
| render_carouselA | Render branded carousel slides (the Instagram/LinkedIn format). Layout, fonts, accent bar, page numbers, and watermark are deterministic code; backgrounds can be plain color or any image asset. Returns one asset per slide. |
| extract_frameA | Extract a single PNG frame from a video at a timestamp — use it to visually QA a render. |
| create_post_draftA | Create a reviewable post draft (text + media + target platforms). Validates against per-platform rules (char limits, media counts/sizes) and reports violations. Nothing is published — drafts are files the user can inspect; use publish_post to send. |
| create_thread_draftA | Create a multi-post thread draft. On publish, posts chain as replies under the first one (Bluesky reply refs, X in_reply_to). Each post has its own text and up to 4 images, validated per platform. Nothing is published until publish_post with confirm: true. |
| set_profileA | Update the Bluesky profile (display name, bio, avatar image) — merges with the existing profile, never clobbers other fields. Requires confirm: true because it changes the public account. |
| list_draftsA | List post drafts in the outbox with status and publish results. |
| publish_postA | Publish a draft to its target platforms. Requires confirm: true — never call this without the user’s explicit go-ahead in the conversation. Platforms without credentials fail independently with setup instructions; "export" always succeeds and writes a ready-to-post bundle. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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