three.ws Audio — Claude Code MCP server: voice and lipsync for 3D
Gives a 3D agent a voice and a moving face: speech synthesis, transcription, per-frame lipsync and a motion-capture clip library from any MCP client.
claude mcp add --env THREE_WS_BASE=<THREE_WS_BASE> --env THREE_WS_API_KEY=<THREE_WS_API_KEY> --env THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS> --transport stdio audio-mcp -- npx -y @three-ws/audio-mcpWhat three.ws Audio does
The server speaks stdio and exposes five tools. text_to_speech turns text into spoken audio and hands back a base64 data URL along with the voice and format actually used. speech_to_text transcribes a recording and returns the text, a confidence value and the duration. audio_to_face builds a per-frame ARKit blendshape track for lipsync. Two more tools page through the motion-capture library and pull a single clip by id with its full animation track.
Speech, recognition and lipsync run on free NVIDIA NIM models (Magpie TTS, Riva ASR, Audio2Face-3D); OpenAI serves as the paid fallback for synthesis. No key is needed to begin — point THREE_WS_BASE at a deployment and start. You need Node.js 20 or newer and network access to https://three.ws or your own deployment.
Every tool is read-only: it transforms input or reads library data and never changes platform state. Calls are not idempotent, since the audio bytes, transcript and catalog shift between requests. Browser-recorded WebM/Opus has to be decoded to WAV or PCM first, because neither Riva nor Audio2Face takes the WebM container. Recognition input is capped around 8 MB, so keep it to a spoken utterance rather than a long recording.
What it helps with
- voice a line for a 3D character and get a ready audio file
- turn a user's recorded speech into text
- build a per-frame lipsync track for existing audio
- find motion-capture clips of a given kind in the library
- pull one clip's animation track to play back on an avatar
Example prompts for the agent
- Speak the line "Hello, I'm your three.ws agent" with the nova voice and return the audio URL
- Transcribe this wav file and show the text with its confidence
- Build lipsync for the text "Watch my lips move" and return the track with the audio
How to install three.ws Audio
Platform CLI
claude mcp add --env THREE_WS_BASE=<THREE_WS_BASE> --env THREE_WS_API_KEY=<THREE_WS_API_KEY> --env THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS> --transport stdio audio-mcp -- npx -y @three-ws/audio-mcpReplace <…> with your own values
Platform CLI
codex mcp add audio-mcp --env THREE_WS_BASE=<THREE_WS_BASE> --env THREE_WS_API_KEY=<THREE_WS_API_KEY> --env THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS> -- npx -y @three-ws/audio-mcpReplace <…> with your own values
Config file
{
"mcpServers": {
"audio-mcp": {
"command": "npx",
"args": [
"-y",
"@three-ws/audio-mcp"
],
"env": {
"THREE_WS_BASE": "<THREE_WS_BASE>",
"THREE_WS_API_KEY": "<THREE_WS_API_KEY>",
"THREE_WS_TIMEOUT_MS": "<THREE_WS_TIMEOUT_MS>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"audio-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@three-ws/audio-mcp"
],
"env": {
"THREE_WS_BASE": "<THREE_WS_BASE>",
"THREE_WS_API_KEY": "<THREE_WS_API_KEY>",
"THREE_WS_TIMEOUT_MS": "<THREE_WS_TIMEOUT_MS>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e THREE_WS_BASE=<THREE_WS_BASE> -e THREE_WS_API_KEY=<THREE_WS_API_KEY> -e THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS> audio-mcp npx -y @three-ws/audio-mcpReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about three.ws Audio
How do I install three.ws Audio in Claude Code?
One line: claude mcp add audio-mcp -e THREE_WS_API_KEY=<THREE_WS_API_KEY> -- npx -y @three-ws/audio-mcp. To also set the base URL and timeout, use `claude mcp add --env THREE_WS_BASE=<THREE_WS_BASE> --env THREE_WS_API_KEY=<THREE_WS_API_KEY> --env THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS> --transport stdio audio-mcp -- npx -y @three-ws/audio-mcp`.
What does three.ws Audio do?
It is an MCP server with five tools: speech synthesis, transcription, per-frame lipsync, and two tools for the motion-capture library. It turns text or audio into voice and animation for a 3D agent.
Do I need an API key?
No, a key is not required to start. THREE_WS_API_KEY raises the metered limits on synthesis, recognition and lipsync calls and unlocks your own private mocap clips.