Zyng MCP client — record your running app with an agent, publish a managed narrated pitch.
Project description
zyng-mcp
Record a running app with your coding agent, get back a managed, narrated pitch video — without ever recording it yourself.
Point your agent (Claude Desktop, Claude Code, or any MCP client) at your localhost app. It authors the steps from the source it just wrote; this server drives the app headless with Playwright, screen-records each feature keyless and free, then publishes the clips + your narration context to hosted Zyng (https://app.zyng.work), which stitches and narrates the pitch server-side on your credits and hands back an MP4. No TTS key ever leaves your machine — the data→video engine stays managed.
Tools
| tool | what it does | needs |
|---|---|---|
account |
your Zyng credit balance (the "do I have credits?" check) | API token |
capture_clips |
drive a running app headless, screen-record a feature into a raw clip + timeline | Chromium, no key |
publish |
upload clips + a composition spec → a managed narrated stitch, downloaded as MP4 | API token, spends credits |
Install
pipx install zyng-mcp # or: pip install ./zyng_mcp-0.1.0-py3-none-any.whl
python -m playwright install chromium # one-time browser download (~150MB)
capture_clips needs Chromium; publish does not (the render happens on Zyng). No ffmpeg required.
Get an API token
- Sign in at https://app.zyng.work (Google).
- Avatar menu → API tokens → Mint, and copy the
zyk_…token (shown once).
A fresh account includes free credits; 1 credit = 1 second of finished video.
Register with your agent
Add to claude_desktop_config.json (Claude Desktop) or .mcp.json (Claude Code):
{
"mcpServers": {
"zyng": {
"command": "zyng-mcp",
"env": {
"ZYNG_API_KEY": "zyk_your_token_here",
"ZYNG_BASE_URL": "https://app.zyng.work"
}
}
}
}
(If you installed with pipx, zyng-mcp is on your PATH. With a venv, use the absolute path to the
zyng-mcp script, or command: "python", args: ["-m", "zyng_mcp.server"].)
Use it
Tell your agent something like:
My app is running at http://localhost:3000. Record the sign-in and the dashboard, then publish a 30-second pitch. Say "this is the fastest way to onboard" over the dashboard.
The agent will, in order: check account for credits, call capture_clips once per feature (authoring
the Playwright selectors from your source), assemble a publish spec (title card + clip segments with
your narration), and call publish — blocking until Zyng returns the finished MP4 and the share link.
Spec shapes (the agent fills these)
capture_clips spec:
{ "url": "http://localhost:3000", "title": "Dashboard", "aspect": "16:9",
"steps": [
{ "do": "wait", "ms": 1000, "say": "Here's the dashboard." },
{ "do": "click", "selector": "text=New report", "say": "One click to a new report." }
] }
publish spec (clip files matched by basename to the captured clips you pass in clips):
{ "title": "My app", "theme": "dawn", "voice": "narrator", "aspect": "16:9",
"segments": [
{ "card": { "layout": "title", "heading": "My app", "narration": "A quick tour." } },
{ "clip": { "file": "dashboard.webm", "audio": "narrate", "say": "This is the dashboard." } }
] }
Notes
- Credits + voice are managed. You never ship an ElevenLabs/OpenAI key; Zyng renders with its own voice and charges your balance (gate-at-zero with a clear error).
- Selectors come from your source, not pixel-guessing — Zyng executes the steps your agent authors, so a recording is deterministic and re-runnable. A bad selector returns a clean error naming the step.
- Set
ZYNG_BASE_URLto a different host to target a self-hosted or staging studio.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zyng_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: zyng_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c51e004a680c4ed7a1ce8961100b497ff753bcee69c0a555b7af2892f2544de4
|
|
| MD5 |
4ed0bd7d2e9770ae844a66160b2ff993
|
|
| BLAKE2b-256 |
9cd9023b147936e46ba8df2bb4a72588d52f4ec2758ef16257f6276465f76f68
|