How LuvVoice works with MCP
MCP gives your AI client a clean tool surface for speech generation. The client stays focused on orchestration, the LuvVoice server exposes a small set of voice tools, and the result comes back as usable audio.
Client receives intent
Claude, Cursor, VS Code, and other MCP-aware clients decide when speech generation should be invoked.
Server exposes tools
LuvVoice MCP keeps the surface intentionally small: synthesize audio or browse voices.
Audio returns cleanly
The response comes back as audio output your client can present immediately.
MCP keeps the integration structured
Compared with a skill, MCP gives the client a more explicit contract. Instead of interpreting instructions and then making API calls itself, the client talks to a server that exposes named tools and resources.
Start with stdio first
stdio is the right default. Move to streamable-http only when you actually need remote or shared deployments.The user asks for speech output and the MCP-aware client decides a tool call is the best path.
LuvVoice MCP exposes the voice tools and returns either audio data or an audio URL.
The client hands the response back in a form the user can listen to immediately.
You can get a local setup working in minutes
The shortest path is still the best one for most people: create a token, paste a stdio config block, then ask your assistant to speak.
Get your API token
Subscribe to Plus or a higher plan, then create a token from Dashboard → API Tokens.
Add the stdio config
Point your client at npx -y luvvoice-mcp and pass the token through LUVVOICE_API_TOKEN.
Ask naturally
Request a standard or cloned voice, let the client resolve the right tool call, and return audio in the same conversation.
{
"mcpServers": {
"luvvoice": {
"command": "npx",
"args": ["-y", "luvvoice-mcp"],
"env": {
"LUVVOICE_API_TOKEN": "YOUR_API_TOKEN"
}
}
}
}User: "Read this paragraph aloud in a friendly female voice"
AI: 1. Calls list_voices -> finds Jenny (voice-001, English Female)
2. Calls text_to_speech with voice_id="voice-001"
3. Returns audio URL -> user clicks to listenUser: "Use my cloned brand voice for this announcement"
AI: 1. Calls list_voices with type="cloned"
2. Picks a private cloned voice_id owned by the same API token account
3. Calls text_to_speech with voice_type="cloned"
4. Returns audio URL and consumes clone creditsThe tool surface stays intentionally small
Most voice workflows only need one synthesis tool and one discovery tool. The rest of the complexity should stay out of the user's way.
text_to_speech
Convert text into natural-sounding speech with configurable voice, voice type, rate, pitch, and volume.
list_voices
Browse the full standard catalog or list private cloned voices before synthesis.
Cloned voices use the same tool surface
type=cloned, then call text_to_speech withvoice_type="cloned". The cloned voice must belong to the same API token account and consumes clone credits.Resources and compatible clients
Alongside callable tools, the server can expose reference material that helps an agent inspect the service contract before using it.
luvvoice://api-docs
Markdown API notes an agent can inspect before it synthesizes speech.
luvvoice://voices
Voice metadata in JSON, including names, genders, languages, and IDs.
luvvoice://cloned-voices
Private cloned voice metadata for the current API token account, equivalent to action=voices&type=cloned.
Choose transport based on where the server should live
The main architectural decision is whether the MCP server runs locally beside the client or remotely behind an endpoint.
Local stdio
Best for single-user desktop setups and the default choice for Claude Desktop, Cursor, VS Code, Windsurf, and similar local clients.
Streamable HTTP
Best when the MCP server should live behind a remote endpoint that multiple clients or environments can reach.
{
"mcpServers": {
"luvvoice": {
"command": "npx",
"args": ["-y", "luvvoice-mcp"],
"env": {
"LUVVOICE_API_TOKEN": "YOUR_API_TOKEN"
}
}
}
}{
"mcpServers": {
"luvvoice": {
"type": "streamable-http",
"url": "https://luvvoice.com/mcp"
}
}
}Ready to wire voice output into your client?
If you already have an MCP-capable assistant, the next move is straightforward: create a token, paste the config, and let the client call the server for you.
Start with local stdio, then scale out only if needed
That keeps the first integration simple while leaving room to move into remote HTTP once your deployment model actually calls for it.