Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
X_API_KEYNoAPI key for X (Twitter) live posting
BROLL_HOMENoWorkspace location (default ~/.broll)
BROLL_FFMPEGNoExplicit path to ffmpeg binary
X_API_SECRETNoAPI secret for X live posting
BROLL_FFPROBENoExplicit path to ffprobe binary
GEMINI_API_KEYNoAPI key for Google Gemini Imagen images and Veo video generation
OPENAI_API_KEYNoAPI key for OpenAI image generation (gpt-image-1)
X_ACCESS_TOKENNoAccess token for X live posting
MASTODON_INSTANCENoMastodon instance URL (optional)
BLUESKY_IDENTIFIERNoBluesky identifier for live posting (use an app password)
BLUESKY_APP_PASSWORDNoBluesky app password for live posting
MASTODON_ACCESS_TOKENNoAccess token for Mastodon live posting
X_ACCESS_TOKEN_SECRETNoAccess 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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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