About Voice Assistant
Voice Assistant is a simple voice assistant built with LiveKit, Cartesia, OpenAI and Silero, which uses MCP to connect to WhatsApp. It suits developers who want to interact with WhatsApp by voice.
Key features
- 01Voice interaction built on LiveKit
- 02Text-to-speech through Cartesia
- 03Speech-to-text and LLM calls via OpenAI
- 04Silero voice activity detection
- 05MCP server configuration in mcp_config.json
Use cases
- 01Querying and acting on WhatsApp messages by voice
- 02Testing a local voice agent in the LiveKit Agents Playground
MCP support
Acts as an MCP client that reads mcp_config.json to connect to a locally running whatsapp-mcp server, so the assistant can call its WhatsApp tools.
Details
From the project READMEVoice Assistant
A simple voice assistant using LiveKit, Cartesia, OpenAI, Silero, and a Multi-Content Processor (MCP) for WhatsApp integration.
Prerequisites
- Python >=3.13
uv(Python packager and virtual environment manager)
Setup
-
Clone the repository:
git clone <your-repo-url> cd voice-assistant -
Create and activate a virtual environment (using uv):
uv venv source .venv/bin/activate # On Linux/macOS # .\.venv\Scripts\activate # On Windows -
Install dependencies:
uv sync -
Set up Environment Variables:
Create a file named
.envin the root of the project and add the following environment variables with your actual values. You can copy the example below:LIVEKIT_URL= LIVEKIT_API_KEY= LIVEKIT_API_SECRET= CARTESIA_API_KEY= OPENAI_API_KEY=LIVEKIT_URL: Your LiveKit server URL.LIVEKIT_API_KEY: Your LiveKit API key.LIVEKIT_API_SECRET: Your LiveKit API secret.CARTESIA_API_KEY: Your Cartesia API key for Text-to-Speech.OPENAI_API_KEY: Your OpenAI API key for Speech-to-Text and LLM operations.
-
Configure WhatsApp MCP (Multi-Content Processor):
This project uses an MCP to interact with WhatsApp. You need to have your WhatsApp MCP server running and configured.
Update the
mcp_config.jsonfile in the root of this project with the correct paths for your MCP setup:{ "mcpServers": { "whatsapp": { "command": "{{PATH_TO_UV}}", "args": [ "--directory", "{{PATH_TO_SRC}}/whatsapp-mcp/whatsapp-mcp-server", "run", "main.py" ] } } }- Replace
{{PATH_TO_UV}}with the absolute path to youruvexecutable. You can find this by runningwhich uv(on Linux/macOS) orwhere uv(on Windows) in your terminal. - Replace
{{PATH_TO_SRC}}with the absolute path to the directory containing yourwhatsapp-mcpproject. For example, if yourwhatsapp-mcpproject is in/Users/me/dev/whatsapp-mcp, then this value should be/Users/me/dev. The final path in the config will be/Users/me/dev/whatsapp-mcp/whatsapp-mcp-server.
- Replace
Running the Assistant
-
(Optional) Download necessary model files (e.g., for Silero VAD): The
voice.pyscript might have a command or automatically download necessary models on first run. The example below shows a hypothetical command if yourvoice.pysupported it.# If your voice.py has a download command, e.g.: # uv run python voice.py download-filesCurrently, the
voice.pyscript useslivekit.agents.cli.run_app, which typically handles its own setup for plugins like Silero. -
Start the voice assistant:
uv run voice-assistant-cliThis uses the
voice-assistant-cliscript defined inpyproject.toml.
Connecting to the Playground
Once the assistant is running, you can load the LiveKit Agents Playground in your browser and connect to your local agent.
Note: This README assumes you have uv installed and configured in your system PATH."# Whatsapp-mcp-voice-agent"
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.