demo-vid-mcp
This server generates narrated demo videos for fleet webapps (and native desktop apps via OBS), with script drafting, validation, a video depot, and a background queue.
Generate demo videos:
demo_vid_generateruns the full pipeline (voiceover → Playwright recording → FFmpeg composition) for any repo, with optional theme, base URL, and custom YAML narration script.Draft narration scripts:
demo_vid_script_draftreads a repo's README and generates a starting YAML script.Validate scripts:
demo_vid_script_validatechecks structure and timing before recording.List produced videos:
demo_vid_listscans the local depot and returns metadata (name, repo, size, creation date).Refine videos:
demo_vid_refineis currently a stub — it points you to regenerating with an updated script instead of actually mutating timing/narration.Get help:
demo_vid_helplists all tools and usage.Drive native apps live: with
obs-mcpand related servers,demo_vid_generatecan record real desktop app windows (e.g., Blender, Resonite) whilemcp_callsteps invoke the app's own MCP server.Autostart webapps: automatically starts backend and Vite frontend for target repos before recording, with zombie-killing.
Themes: record in dark mode (default) or force light mode via
theme="light".Webapp UI: browse the video depot with inline player and subtitles, manage a persistent queue, build choreography scripts visually, chat with built-in personalities, configure LLM providers (Ollama/LM Studio), view logs, and access 6-tab help.
Persistent background queue: schedule and track batch video generation across the fleet.
Optional integration for creating 3D titles in demo videos using blender-mcp.
Required integration for video composition, combining recorded footage and voiceover into final MP4.
Local LLM integration for chat functionality, including model probing and selection in settings.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@demo-vid-mcpRecord a narrated walkthrough for the chitchat app."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
demo-vid-mcp
Demo video pipeline for fleet repos. Records narrated walkthroughs of any webapp by orchestrating Playwright, speech-mcp TTS, and FFmpeg composition.
Quick Install
uvx mcpb install sandraschi/demo-vid-mcpRelated MCP server: autodemo
What You Can Do
Generate a video:
demo_vid_generate(repo="chitchat")— auto-starts the target webapp, records it, adds voiceover, composes MP4Or drive a native app live:
demo_vid_generate(repo="blender-mcp", script_yaml=<desktop-capture script>)— OBS records a real app window (Blender, Resonite) whilemcp_callsteps actually invoke that app's own MCP server during the recording, not a staged screencast. Seedata/scripts/*.yamlfor working examples and DEMO_VID_MCP_PLAN.md for the architecture.Draft a script:
demo_vid_script_draft(repo="chitchat")— reads the README and generates a narration scriptBrowse the depot: Categorized gallery of produced videos with inline player, subtitle tracks (.vtt), poster previews, rebuild, delete, and insert into repo README
Persistent queue: Background queue manager to schedule and track batch video generation across the fleet
Chat about it: Built-in chat with personalities, example prompts, and local LLM integration (Ollama/LM Studio)
Tools
Tool | Description |
| Full pipeline: voiceover (speech-mcp) → record (Playwright with click ripples) → compose (FFmpeg) → MP4 + WebVTT/SRT subtitles + poster image. Supports landscape ( |
| Generate a narration YAML from the target repo's README and webapp page structure |
| Validate a narration script's structure, timing, aspect ratio, and resolution |
| List produced videos with metadata, poster, and subtitle sidecar paths |
| Automatically parse user feedback and mutate YAML narration timing, voice, and steps |
| List all tools and usage information |
| Gracefully terminate the server and background queue worker |
Webapp
Page | Purpose |
Dashboard | Backend status, KPI cards, dead port detection with one-click reconnect |
Depot | Categorized gallery with HTML5 player, subtitle toggle, poster previews, rebuild, delete |
Queue | Persistent background job queue manager with live polling, status badges, and cancel controls |
Generate | Select target repo by category, pick aspect ratio/resolution, draft YAML, and generate or queue |
Choreography | Visual script builder — 11 step types, global options, YAML preview |
Chat | SOTA chat with personalities, localStorage, example prompts, LLM integration |
Settings | LLM provider probe (Ollama/LM Studio), model selection, persistence |
Logs | Ring-buffer log viewer with level filter and search |
Help | 6-tab reference: overview, architecture, tools, config, fleet, troubleshooting |
Autostart
demo_vid_generate automatically starts the target repo's backend and Vite frontend before recording. Zombie-kills stale processes first. No manual setup — the pipeline scans for start.ps1 and webapp/ directories.
Themes
Recording is dark-mode by default (fleet identity). Pass theme="light" to record a bright demo — the capture script forces the target webapp's theme class (handles both .dark toggling and persisted localStorage light-mode keys) before navigation, per chat_skills_prefab_standard.md §7.1.
Fleet Services
Required: speech-mcp (voiceover), Playwright (recording), FFmpeg (composition). Optional: blender-mcp (3D titles), stems-mcp (music), vfx-mcp (effects).
Desktop-capture mode (native apps driven live — see DEMO_VID_MCP_PLAN.md): windows-computer-use-mcp (window focus), obs-mcp (recording — window-capture and human-in-video), plus whichever MCP server the demo actually drives (blender-mcp, resonite-mcp, ...).
Ports
Backend: 11134, Frontend: 11135, speech-mcp: 10909. See WEBAPP_PORTS.md.
Documentation
Doc | Contents |
Desktop-capture mode design, the | |
All install methods, prerequisites | |
Env vars, config options | |
All available tools | |
Contributing, local setup | |
Common issues |
Requirements
Python 3.13+ with
uvFFmpeg (for composition)
speech-mcp (for voiceover)
Playwright (for recording, auto-installed)
License
MIT
Available Tools
6 toolsdemo_vid_generateA
Generate a demo video for a fleet repo.
Runs the full pipeline: validate script → voiceover (speech-mcp) → record (Playwright) → compose (FFmpeg). Stages run in parallel where possible. Output saved to data/videos/. theme="light" records the target webapp with its light-mode toggle forced on (bright demo); default "dark" matches fleet identity.
Return Format
{"success": bool, "message": str, "video_path": str | None, "stages": {...}}
Examples
await demo_vid_generate(repo="chitchat") await demo_vid_generate(repo="chitchat", theme="light") await demo_vid_generate(repo="chitchat", base_url="http://127.0.0.1:10975")
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repository name (e.g. 'chitchat'). | |
| theme | No | Video theme: 'dark' (fleet default) or 'light' (bright demo). | dark |
| base_url | No | Target webapp URL (e.g. 'http://127.0.0.1:10975'). Auto-detected from port registry if omitted. | |
| script_yaml | No | Optional YAML narration script. Defaults to auto-generated. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the pipeline stages (validate, voiceover, record, compose), parallel execution, output path (`data/videos/`), and side effects of file creation. It also explains theme behavior and base_url auto-detection. However, it does not mention potential runtime, network dependencies, or destructiveness, which would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with headings, bullet points for return format, and code examples. It is succinct (about 10 lines) with no redundant words. Every sentence contributes to understanding the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multi-stage pipeline with external calls), the description covers the purpose, parameters, behavior, output structure, and examples. An output schema exists (not shown but referenced), so the return format description suffices. The description feels complete for an AI agent to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema: it explains the theme values in terms of behavior (light mode toggle), clarifies auto-detection for `base_url`, and shows usage via examples. This adds significant value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Generate' and the resource 'demo video for a fleet repo'. It distinguishes itself from sibling tools (help, list, refine, script_draft, script_validate) by describing the full pipeline and final output, making it unambiguous that this is the main generation step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the pipeline breakdown and examples, but it does not explicitly state when to use this tool versus the siblings (e.g., 'Use demo_vid_script_draft first to draft a script'). While the context is clear, there is no explicit 'when to use' or 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demo_vid_helpA
List all available demo-vid-mcp tools and their purpose.
Return Format
{"success": bool, "tools": [{"name": str, "description": str}], "message": str}
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It explicitly states the action ('List') and provides the exact return format, clearly indicating a read-only operation. While it doesn't mention side effects, the nature of a help tool makes this self-evident.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence followed by a compact return format block. Every element earns its place, and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with a simple output schema, the description is complete. It states the purpose and the exact return structure, and sibling context helps differentiate it from other tools. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema is empty. Per the baseline for no parameters, a score of 4 is appropriate. The description adds no parameter details because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and identifies the exact resource ('all available demo-vid-mcp tools'), clearly distinguishing it from sibling tools like demo_vid_list (which likely lists videos) and demo_vid_generate. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's purpose implies usage when an agent needs to discover available tools, but the description does not explicitly state when to use it versus alternatives like demo_vid_list or provide exclusions. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demo_vid_listB
List produced demo videos with metadata.
Scans the local data/videos/ directory for .mp4 files and returns file name, size, and creation date for each.
Return Format
{"success": bool, "videos": [{"name": str, "repo": str, "size_kb": int, "created": str}], "count": int}
Examples
await demo_vid_list() await demo_vid_list(repo="chitchat")
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Filter by repo name (optional). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for transparency. It discloses that the tool scans a local directory for .mp4 files, implying file-system access and a non-destructive read operation. However, it does not mention edge cases like empty directories, missing directory, or performance implications of scanning (e.g., large directories).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with 4 sentences plus a code block for the return format and examples. The key action ('List produced demo videos') is front-loaded, and every sentence adds value—detailing the scanning source, metadata, return format, and usage examples. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, output schema provided), the description covers the core functionality well. The return format and example usage are included, which compensates for the lack of annotations. However, it could briefly mention that the tool only lists already-existing videos (distinguishing from demo_vid_generate) and note potential issues like large directories.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a single parameter (repo) described as 'Filter by repo name (optional).' The description's examples show usage with and without repo, adding implicit meaning that filtering is optional. Since schema coverage is high, a baseline of 3 is appropriate; the description does not add significant semantic value beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool lists produced demo videos with metadata, specifying the source as the local data/videos/ directory for .mp4 files. It distinguishes itself from siblings like demo_vid_generate (which likely creates) and demo_vid_help (which likely provides assistance), though not explicitly naming alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description explains what the tool does and provides an example for optional filtering by repo, it does not guide when to use this tool over siblings (e.g., when to call demo_vid_list vs demo_vid_script_draft or demo_vid_generate). There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demo_vid_refineA
Re-generate a video with timing or narration adjustments.
[RATIONALE] This tool is a stub — refinement requires LLM-driven script mutation which is not yet implemented. It returns a helpful message pointing to the working alternative (demo_vid_generate with an updated script).
Return Format
{"success": False, "error": str, "suggestions": list}
Examples
await demo_vid_refine(video_name="chitchat-final", feedback="Make step 2 narration longer")
| Name | Required | Description | Default |
|---|---|---|---|
| feedback | Yes | Natural-language description of changes needed. | |
| video_name | Yes | Name of the video to refine (e.g. chitchat-final). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description honestly discloses that the tool is a stub and returns a helpful message, with a stated return format. Annotations are absent, but the description provides clear behavioral context, including the 'success': False indication and suggestions list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (rationale, return format, examples) and is appropriately sized for a stub tool. No wasted sentences, though the rationale could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a stub, the description adequately covers its limited functionality and return format. The presence of an output schema and example adds completeness. No significant gaps for this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing clear meanings for 'feedback' and 'video_name'. The description adds little extra beyond the schema, but an example use case is provided, which aids understanding. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool re-generates a video with timing or narration adjustments, distinguishing it from sibling tools like demo_vid_generate. However, it mentions it is a stub, which may slightly reduce clarity for agents expecting full functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly points to the working alternative (demo_vid_generate with updated script), offering good when-to-use guidance. However, it doesn't elaborate on when to use this tool vs other siblings, leaving some context implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demo_vid_script_draftA
Draft a default narration script for a repo.
Generates a placeholder YAML script that can be edited and passed to demo_vid_generate.
Return Format
{"success": bool, "script": dict, "message": str}
Examples
await demo_vid_script_draft(repo="chitchat")
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repository name to draft a script for. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool generates a 'placeholder' script, which is editable, and provides the return format. However, it does not discuss side effects, idempotency, rate limits, or authentication requirements. The description adds some behavioral context but is not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: three sentences plus a structured return format and an example. The first sentence clearly states the purpose, followed by the output format and a usage example. Every sentence serves a purpose, and there is no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no annotations), the description is fairly complete. It includes the return format, links to the sibling tool demo_vid_generate for the workflow, and provides an example. However, it does not mention error conditions or prerequisites (e.g., repo existence). The output schema is not provided, but the description compensates with a return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter 'repo' (description: 'Repository name to draft a script for.'). The tool description does not add additional meaning beyond the schema; it only uses the parameter in the example. With high coverage, baseline is 3, and no extra value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Draft a default narration script for a repo.' It specifies that it generates a placeholder YAML script for editing and passing to demo_vid_generate, distinguishing it from sibling tools like demo_vid_script_validate (validation) and demo_vid_generate (final generation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a workflow: draft, edit, then pass to demo_vid_generate. However, it does not explicitly state when to use this tool versus alternatives (e.g., when to use demo_vid_refine instead), nor does it provide exclusion criteria or prerequisites. The guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demo_vid_script_validateA
Validate a narration script for structure and timing.
Checks that the script has required fields ('steps'), each step has an 'action',
and timing values are reasonable.
## Return Format
{"success": bool, "message": str, "errors": list | None}
## Examples
await demo_vid_script_validate(script_yaml="title: Test
duration_target: 30 steps:
action: goto url: / wait: 2 ")
| Name | Required | Description | Default |
|---|---|---|---|
| script_yaml | Yes | YAML narration script content. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions checks for required fields and reasonable timing but does not disclose if the tool is read-only, whether it has side effects, or its behavior on validation failure (e.g., does it raise errors?). The description adds some behavioral context but lacks depth for a validation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with about 5 lines of prose plus a return format specification and example. It front-loads the core purpose and uses markdown headers for structure. No superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter (with 100% schema coverage), an output schema, and a clear validation purpose, the description covers the essentials. It provides return format and an example, but could add more context about error types or edge cases. General advice is addressed, but still complete enough for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds minimal value by stating the script must be YAML and listing expected fields like 'steps' and 'action', but does not elaborate on the parameter format or constraints beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates a narration script for structure and timing, specifying the required fields and checks. It distinguishes itself from siblings like demo_vid_script_draft (which drafts scripts) and demo_vid_generate (which generates videos) but does not explicitly differentiate from all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you need to validate a script before generating a video, but it does not explicitly state when to use this tool versus alternatives like demo_vid_help for general help or demo_vid_refine for refinement. No when-not-to-use or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.1.0- First observed
demo_vid_generate - First observed
demo_vid_help - First observed
demo_vid_list - First observed
demo_vid_refine - First observed
demo_vid_script_draft - First observed
demo_vid_script_validate
TDQS
Each tool has a clearly distinct purpose: help lists tools, generate creates videos, list shows existing videos, refine is for adjustments (stub), script_draft creates scripts, script_validate checks them. No overlap or ambiguity.
All tools follow a consistent 'demo_vid_<verb>' pattern (help, generate, list, refine) with compound names for script operations (script_draft, script_validate) adhering to the same convention. No mixing of styles.
With 6 tools covering help, generation, listing, refinement, and script drafting/validation, the count is well-scoped for a focused demo video generation server. No unnecessary tools, and each serves a clear role.
Core operations are covered: create (generate), read (list), and script management (draft/validate). However, the refine tool is a stub (non-functional), effectively missing a working update operation, and there is no delete tool. This leaves minor gaps but the main workflow is intact.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Create narrated presentations from HTML, poll build status, list them, read one back as text.
Automate cloud Chrome—navigate, click, type, screenshot, run code, record screen video
Turn a product URL into a narrated cinematic demo video, launch video, or deck.
Screenshot any URL/HTML as PNG/JPEG/WebP, or read it as clean Markdown/text for LLMs.
Related MCP Servers
- AlicenseAqualityCmaintenanceRecord any browser page as GIF or video via MCP — powered by Playwright + ffmpeg932343MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that turns any running web app into demo videos, interactive walkthroughs, and marketing captures via one command. Enables AI agents to show their work with regenerated demos on every PR.173MIT
- AlicenseNot gradedqualityBmaintenanceEnables users to create subtitled tutorial videos by scripting browser interactions with Playwright, outputting MP4 with burned-in captions and SRT file.103MIT

AIOProductOS Studioofficial
AlicenseAqualityBmaintenanceTurns your AI host into a product videographer — scripted screen recordings of your own web app with a gliding cursor, camera zooms, highlight callouts, captions, and branded transitions, plus marketing-grade screenshots. Automatic dark-frame cleanup and MP4/GIF export. Free, MIT, 100% local — no account, no API keys.141393MIT
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/sandraschi/demo-vid-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server