
mcp
dev.secretvoice/mcp
Intimate voice AI: 29 voices, 22 languages, emoji vocal cues, multi-voice scenes.
Documentation
SecretVoice MCP Server
A Model Context Protocol server for SecretVoice — intimate voice AI, not a generic TTS wrapper.
Three things make it different:
-
Emoji vocal cues. Drop 👂 😮💨 🌬️ 🥵 💋 😭 ⏸️ into the script and the engine performs it — whisper, sigh, breathless, panting, kiss, sobbing, pause. Direction lives in the text instead of in a settings object.
-
Multi-voice scenes. One call, many speakers, each with its own voice and language — dialogue, audiobook chapters, character switches.
-
29 voices, 22 languages, tuned for closeness. Close-mic whispers and chest-voice warmth, not boardroom narration.
-
Endpoint:
https://api.secretvoice.dev/mcp -
Transport: Streamable HTTP, protocol
2025-06-18 -
Auth: OAuth 2.1 with dynamic client registration and PKCE (no API key pasting)
-
Website: https://secretvoice.dev/mcp
-
OAuth reference: https://secretvoice.dev/oauth
Why this exists
Most TTS integrations make you paste a key into a config file. This one lets the client register itself, shows you a consent screen, and issues a scoped token that expires in an hour. Revoke it from your account at any time.
Tools
| Tool | Description | Scope |
|---|---|---|
list_voices | Every voice with its id and gender | voices:read |
list_languages | The 22 supported language codes | voices:read |
text_to_speech | Text in, base64 audio out — emoji vocal cues allowed | tts:generate |
generate_scene | Multi-voice scene: one clip per segment, own voice + language | tts:generate |
get_balance | Plan and remaining credits | account:read |
list_history | Recent generations | history:read |
Resources: secretvoice://voices, secretvoice://languages, secretvoice://vocal-cues.
Emoji vocal cues
| Cue | Effect | Cue | Effect |
|---|---|---|---|
| 👂 | whisper | 💋 | kiss |
| 😮💨 | sigh | 🤭 | chuckle |
| 🌬️ | breathless | 🥺 | trembling |
| 🥵 | panting | 😭 | sobbing |
| ⏸️ | pause | 🐢 | slowly |
Anything else is stripped, so the script stays clean.
A scene in one call
{
"name": "generate_scene",
"arguments": {
"segments": [
{ "text": "👂 Come closer. I have been waiting all night.", "voice_id": "velvet" },
{ "text": "😮💨 Ben de seni bekliyordum. 🌬️ Sadece fısılda.", "voice_id": "jade", "language_code": "tr" }
]
}
}
Returns one audio block per segment, in order, plus a JSON summary with the seconds and characters of each.
Install
Claude Desktop / Claude Code
claude_desktop_config.json:
{
"mcpServers": {
"secretvoice": {
"type": "http",
"url": "https://api.secretvoice.dev/mcp"
}
}
}
Restart, then approve the consent screen when it opens.
Cursor
~/.cursor/mcp.json:
{
"mcpServers": {
"secretvoice": { "url": "https://api.secretvoice.dev/mcp" }
}
}
VS Code / Copilot
{
"servers": {
"secretvoice": { "type": "http", "url": "https://api.secretvoice.dev/mcp" }
}
}
Any client without dynamic registration
Mint an API key at https://secretvoice.dev/dashboard and send it directly — the endpoint accepts both credential types:
curl -X POST https://api.secretvoice.dev/mcp \
-H "authorization: Bearer $SECRETVOICE_API_KEY" \
-H "content-type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Example
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "text_to_speech",
"arguments": {
"text": "Merhaba, MCP üzerinden Türkçe konuşuyorum.",
"voice_id": "jade",
"language_code": "tr"
}
}
}
The response carries an audio content block (base64) plus a JSON block with
request_id, seconds and characters.
OAuth flow
POST https://secretvoice.dev/oauth/registerwith yourredirect_uris→client_id- Send the user to
/oauth/authorizewithcode_challenge(S256),stateandresource=https://api.secretvoice.dev POST /oauth/tokenwith the code andcode_verifier- Call
/mcpwithAuthorization: Bearer <token>
Discovery documents:
- https://secretvoice.dev/.well-known/oauth-authorization-server
- https://api.secretvoice.dev/.well-known/oauth-protected-resource
Pricing
One credit is one character, the same as the API. A 500-character paragraph costs 500 credits. Plans start at $18/month for 180,000 credits with a free 3-day trial.
Security
- PKCE S256 required;
plainis rejected - Tokens are audience-bound (RFC 8707) and stored hashed
- Access tokens live 1 hour, refresh tokens 30 days and rotate on use
- Revoke with
POST /oauth/revokeor from the dashboard
License
MIT — see LICENSE.
SecretVoice is an independent product; this is not an official Anthropic server.
No installation packages available.