Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
VOICEBOX_URLNoOverride the default Voicebox server URL (default http://127.0.0.1:17493)http://127.0.0.1:17493

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
check_setupA

Verify the machine is ready to record a demo: native cursor helper, ffmpeg, Chrome, say voices. Run this first in a new session.

start_recordingB

Start recording the screen to a .mov (macOS native screencapture). Optionally restrict to a display number or a pixel region.

stop_recordingA

Stop the current screen recording and return the finished file path, duration, and size.

recording_statusA

Whether a recording is in progress, and for how long.

screen_infoA

List displays (id, bounds, main) and the current mouse position.

mouse_moveA

Glide the real cursor to screen coordinates with a smooth, slightly curved, eased path — like a human presenter. Use 600–1000ms for on-camera moves.

mouse_clickA

Click at the current cursor position, or glide-free click at x/y. Supports right and double click.

mouse_dragB

Press, drag smoothly from one point to another, release.

scrollA

OS-level momentum scroll at the cursor position. dy > 0 scrolls the page DOWN. For scrolling a web page on camera, prefer chrome_scroll (per-pixel cinematic).

type_textA

Type text into the focused control with human rhythm (jittered inter-key timing, slower after punctuation). cps = characters per second (default 12).

press_keyA

Press a key with optional modifiers. Keys: return, tab, space, escape, delete, arrows, home/end, pageup/pagedown, a–z, 0–9. Modifiers: cmd, shift, alt, ctrl.

pauseA

Hold for N seconds — presenter beats between actions so viewers can absorb what they saw.

chrome_launchA

Launch (or attach to) Chrome with a dedicated clean demo profile and DevTools control, optionally opening a URL. Never touches the user’s real browser profile.

chrome_connectA

Attach to an already-running Chrome that has --remote-debugging-port. Optionally pick the tab by URL substring.

chrome_navigateA

Navigate the connected tab and wait for the page to finish loading.

chrome_locateA

Resolve a CSS selector to SCREEN coordinates (center point) so the real cursor can glide to it with mouse_move. Also reports size, visible text, and whether it is in the viewport. Page zoom must be 100%.

chrome_scrollA

Cinematic in-page scroll: eased, per-pixel, at reading pace. Scroll to a CSS selector (lands ~1/3 from the top) or an absolute Y. Use 1200–2500ms on camera.

chrome_highlightA

Keynote-style emphasis on an element: "spotlight" dims the rest of the page around it; "pulse" draws a pulsing outline. Clear with chrome_clear_highlight.

chrome_clear_highlightA

Fade out and remove any highlight overlay.

chrome_evalA

Evaluate JavaScript in the connected tab and return the JSON value. Awaits promises.

chrome_page_textA

Read the visible text of the current page (for understanding the app before scripting the demo).

narrateA

Speak narration live through the speakers while you drive the demo (macOS say). Blocks until finished and returns the spoken duration — useful for pacing. NOTE: live audio is not captured in the recording; use render_narration + mux_narration for the final cut.

voicebox_statusA

Check the local Voicebox app (natural voice-clone TTS) and list installed voices. Run before rendering final narration to pick a voice with the user.

render_narrationA

Render a narration line to an audio file and return its EXACT duration for muxing/pacing. engine "auto" (default) uses the local Voicebox app for natural human voice-clone VO when running, else falls back to macOS say. Per-sentence generation, jittered pauses, soft in-breaths, -16 LUFS.

mux_narrationB

Lay rendered narration segments over a recorded video at precise offsets and produce the final .mp4 (video stream copied, audio loudness-normalized). Requires ffmpeg.

compose_final_videoA

ONE-CALL FINAL CUT: render narration for every beat (Voicebox voice-clone when available, else say) and lay it over the recorded video at each offset. Returns the finished narrated .mp4 and each beat’s rendered duration. Tip: render beats first to learn durations, pace the recording to them, then compose.

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/jayadevrana/demo-director'

If you have feedback or need assistance with the MCP directory API, please join our Discord server