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 |
Capabilities
Features and capabilities supported by this server
| 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