Flyworks Avatar MCP Server Fast Free Zeroshot Lipsync
Use the Flyworks Avatar MCP server for fast, free zeroshot lipsync and sync avatar speech instantly with minimal setup.
npx -y @Flyworks-AI/flyworks-mcpOverview
The Flyworks Avatar MCP Server implements a simple Model Context Protocol (MCP) endpoint to produce fast, zeroshot lipsync for avatars. It is an open-source, self-hosted service that accepts text or audio and returns time-aligned speech artifacts (audio, viseme timings, and optionally rendered frames or packaged video). The server is designed to minimize setup and dependencies so developers can integrate lipsync into games, virtual production, chatbots, or video pipelines without training per-avatar models.
Zeroshot lipsync here means the server generates viseme or phoneme timing directly from input audio (or synthesized speech) and maps those timings to generic avatar blendshapes or viseme IDs. The MCP server exposes simple REST and WebSocket endpoints so you can request synchronous or streaming outputs, retrieve status, and integrate the timing data into real-time animation systems.
Features
- Fast, zeroshot lipsync: audio-to-viseme timing without per-avatar training
- Supports text-to-speech pipelines and raw audio input
- Returns viseme timings, audio files, and optionally packaged video
- REST API for single-shot requests and WebSocket for streaming/low-latency workflows
- Self-hosted, configurable, with Docker support
- Simple JSON response format compatible with animation systems and game engines
- Minimal server API surface to integrate into existing pipelines
Installation / Configuration
Prerequisites: Node.js (>=16), Docker (optional), and appropriate model files if using local TTS or ASR backends.
Clone and run locally:
# Start in development
Start with Docker:
# Build image
# Run with environment variables (see table below)
Environment variables (examples):
| Variable | Default | Description |
|---|---|---|
| PORT | 8080 | HTTP port the server listens on |
| MODEL_DIR | ./models | Directory with optional model files (TTS/ASR) |
| USE_GPU | false | Enable GPU-backed model inference if available |
| LOG_LEVEL | info | Logging verbosity |
| MAX_CONCURRENCY | 4 | Max concurrent inference jobs |
Configuration may also be provided by a config.json in the repository root. See the repo for exact keys accepted.
Available Resources
- GitHub repository: https://github.com/Flyworks-AI/flyworks-mcp — main source, issues, and examples
- Example clients: /examples directory (HTTP and Node.js clients)
- Demo HTML: simple browser demo that shows timing data applied to a WebGL avatar (if included in the repo)
- Logs and metrics: /logs output and a /metrics endpoint for basic health and usage stats
API Overview
Common endpoints (example surface; check repo for current HTTP paths):
- GET /health — basic liveness check
- POST /v1/lipsync — generate visemes from audio or text
- POST /v1/say — generate speech audio (TTS) and viseme timings (text input)
- POST /v1/render — optional: return packaged video (MP4) for an avatar with supplied visemes
- WS /ws — streaming input and realtime viseme output (for low-latency applications)
Example POST /v1/lipsync (curl):
Typical JSON response:
Use the viseme array to drive avatar blendshapes or morph targets at the specified times.
Use Cases
- Game dialogue: Generate per-line viseme timing for NPC dialogue. Integrate timings into your animation timeline or runtime blendshape system to sync mouth shapes without pre-baking for each line.
- Virtual production / Vtubing: Accept live audio from a stream (WebSocket) and apply viseme events to a realtime avatar renderer for live streams or conferences.
- Accessibility & captioning: Use the viseme timings alongside generated captions to improve playback synchronization and lipreading aids.
- Automated content creation: Batch-render videos with synced avatar speech by submitting text batches to /v1/say and then calling /v1/render to create packaged MP4 files.
- Chatbots and voice assistants: Combine TTS and zeroshot lipsync so spoken responses immediately drive avatar mouth animation, reducing integration complexity.
Quick integration example (Node.js)
;
;
;
;
// Save audio file and use viseme timings in your engine
json.visemes;
For more details, check the GitHub repository for configuration options, sample clients, and deployment examples. The MCP server is intended to be a straightforward building block for fast, zeroshot lipsync integration in development pipelines.