Model Context Protocol
SecretVoice is a remote MCP server, so Claude, Cursor, VS Code and any other MCP client can speak in 29 voices and 22 languages โ and perform. Drop an emoji into the script and the engine whispers, sighs, or goes breathless. One call renders a scene with a different voice per line. No API key pasting: OAuth handles it.
Why this server exists
Every other voice MCP tool takes text and returns audio. That is a utility. This one lets the agent act: it can whisper on one line, sigh on the next, switch to a different character, and answer in another language โ without a second tool call.
| Emoji | Direction | Emoji | Direction |
|---|---|---|---|
| ๐ | whisper | ๐ | kiss |
| ๐ฎโ๐จ | sigh | ๐คญ | chuckle |
| ๐ฌ๏ธ | breathless | ๐ฅบ | trembling |
| ๐ฅต | panting | ๐ญ | sobbing |
| โธ๏ธ | pause | ๐ข | slowly |
The agent writes the performance. A prompt like โread this line like you are telling a secret at 2amโ becomes ๐ read this lineโฆ โ and the voice actually does it. Any emoji that is not a cue is stripped, so scripts stay readable.
Tools
Everything an agent needs to pick a voice, perform, and stay inside its credit budget.
| Tool | What it does | Scope |
|---|---|---|
| list_voices | Every voice with id and gender | voices:read |
| list_languages | The 22 supported language codes | voices:read |
| text_to_speech | Text in, audio out โ emoji cues allowed | tts:generate |
| generate_scene | Multi-voice scene: one clip per segment, own voice and language | tts:generate |
| get_balance | Plan and remaining credits | account:read |
| list_history | Recent generations | history:read |
Resources for clients that read context: secretvoice://voices, secretvoice://languages, secretvoice://vocal-cues.
Connect
The client registers itself, you approve the scopes once, and it receives a token bound to this server. Nothing to paste, nothing to rotate.
Claude Desktop / Claude Code
{
"mcpServers": {
"secretvoice": {
"type": "http",
"url": "https://api.secretvoice.dev/mcp"
}
}
}
Cursor
{
"mcpServers": {
"secretvoice": { "url": "https://api.secretvoice.dev/mcp" }
}
}
VS Code / Copilot
{
"servers": {
"secretvoice": { "type": "http", "url": "https://api.secretvoice.dev/mcp" }
}
}
Agent instructions that actually work. Tell the model what it may do with the voice, not just that a tool exists. This is the block we use:
You have SecretVoice over MCP. When the user wants audio, narration or a scene: 1. Call list_voices and pick by gender and style โ never guess a voice id. 2. Write the script with emoji vocal cues where the delivery should change (๐ whisper, ๐ฎโ๐จ sigh, ๐ฌ๏ธ breathless, ๐ kiss, โธ๏ธ pause). 3. Use text_to_speech for one speaker, generate_scene for dialogue. 4. State the character count before generating: 1 credit = 1 character.
Client without dynamic registration? Mint a key in the dashboard and send it as Authorization: Bearer <key> โ the endpoint accepts both.
Pricing
One credit is one character. A 500-character paragraph is 500 credits, whether it comes from a script, the Studio, or an agent. A free 3-day trial covers the first 10,000 characters.
Questions