demo-director
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VOICEBOX_URL | No | Override the default Voicebox server URL (default http://127.0.0.1:17493) | http://127.0.0.1:17493 |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 |
| 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
| 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/jayadevrana/demo-director'
If you have feedback or need assistance with the MCP directory API, please join our Discord server