demo-vid-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| demo_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": {...}} Examplesawait 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") |
| demo_vid_helpA | List all available demo-vid-mcp tools and their purpose. Return Format{"success": bool, "tools": [{"name": str, "description": str}], "message": str} |
| 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} Examplesawait demo_vid_list() await demo_vid_list(repo="chitchat") |
| 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} Examplesawait demo_vid_refine(video_name="chitchat-final", feedback="Make step 2 narration longer") |
| 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} Examplesawait demo_vid_script_draft(repo="chitchat") |
| demo_vid_script_validateA | Validate a narration script for structure and timing. duration_target: 30 steps:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
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.