gemini-tts-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gemini-tts-mcpsay 'Hello, world!' in a friendly tone"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Gemini TTS MCP
Multi-key Gemini TTS server (MCP) with automatic API key rotation and model fallback.
No baked-in voice, accent, or persona — all parameters are explicit.
Features
🔄 Key rotation — pool of Gemini API keys; auto-rotates on quota/error
📉 Model fallback — tries
gemini-3.1-flash-tts-preview→gemini-2.5-flash-preview-tts🗣️ 30 voices — full catalog with gender, tone, and description
🔍 Filter by gender/tone —
list_voices(male/female)or by tone name🎚️ Pitch control —
pitch_factorparameter (ffmpeg-based)🌐 Multilingual — any voice speaks the language of your input text
🧩 MCP-native — register in any MCP host (Claude Desktop, Hermes Agent, etc.)
Related MCP server: gemini-webapi-mcp
Quick Start
1. Install
⚠️ Note: This project is not on PyPI yet. The commands below install dependencies (
mcpSDK +google-genai). You also need the source code.
Option A — Clone the repo (recommended):
git clone https://github.com/alarconcesar/gemini-tts-mcp.git
cd gemini-tts-mcp
pip install mcp google-genaiOption B — From anywhere (source must be in PYTHONPATH):
pip install mcp google-genai
# then clone & run from the repo directory2. Set up API keys
Create ~/.gemini-tts-mcp/keys.json:
["AIzaSy...key1", "AIzaSy...key2"]Or set an env var: export GEMINI_API_KEY="AIzaSy...your_key"
3. Run (from the repo directory)
cd gemini-tts-mcp
python -m gemini_tts_mcp.server4. Register in any MCP host
Hermes Agent (~/.hermes/config.yaml):
mcp_servers:
gemini-tts:
command: "python"
args: ["-m", "gemini_tts_mcp.server"]Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"gemini-tts": {
"command": "python",
"args": ["-m", "gemini_tts_mcp.server"]
}
}
}Tools
Tool | Description |
| Text → WAV file |
| Browse all 30 voices (filter by gender/tone) |
| Shortcut: |
| Refresh API key pool from disk/env |
| Check how many keys are configured |
generate_speech parameters
Param | Default | Description |
| (required) | Text to vocalize |
|
| Any of the 30 voices |
|
| Speaking style e.g. "softly", "cheerfully", "in a calm tone" |
|
| >1 = higher pitch, <1 = lower |
|
| Override model (auto fallback if omitted) |
|
| Custom WAV path |
Voice Catalog
All 30 voices are multilingual — any voice speaks the language of your input text.
Female voices (16):
Voice | Tone | Description |
Achernar | Soft | Gentle, mellow tone |
Aoede | Breezy | Casual, relaxed delivery |
Autonoe | Bright | Clear, vibrant expression |
Callirrhoe | Easy-going | Laid-back, comfortable style |
Despina | Smooth | Refined, elegant tone |
Erinome | Clear | Crisp, distinct articulation |
Gacrux | Mature | Experienced, seasoned quality |
Kore | Firm | Assertive, confident delivery |
Laomedeia | Upbeat | Positive, energetic style |
Leda | Youthful | Young-sounding, fresh voice |
Pulcherrima | Forward | Direct, straightforward style |
Sterope | Forward | Bold, direct presentation |
Sulafat | Warm | Comforting, affectionate quality |
Vindemiatrix | Gentle | Soft, kind delivery |
Zephyr | Bright | High energy, clear articulation |
Male voices (15):
Voice | Tone | Description |
Achird | Friendly | Warm, approachable tone |
Algieba | Smooth | Polished, fluid delivery |
Algenib | Gravelly | Rough, textured quality |
Alnilam | Firm | Steady, resolute delivery |
Charon | Informative | Educational, explanatory style |
Enceladus | Breathy | Soft, airy quality |
Fenrir | Excitable | Energetic, animated expression |
Iapetus | Clear | Precise, well-articulated |
Orus | Firm | Strong, authoritative tone |
Puck | Upbeat | Cheerful, enthusiastic tone |
Rasalgethi | Informative | Educational, instructive |
Sadachbia | Lively | Energetic, spirited expression |
Sadaltager | Knowledgeable | Expert, well-informed tone |
Schedar | Even | Balanced, consistent tone |
Umbriel | Easy-going | Relaxed, conversational |
Zubenelgenubi | Casual | Informal, conversational |
Key management
Keys are loaded from ~/.gemini-tts-mcp/keys.json (a JSON array of strings), with env var fallback. The server rotates through the pool on each request, skipping failed keys per model. If all keys fail on one model, it falls back to the next model.
Use reload_keys() to refresh without restarting.
Security
API keys never leave your machine — the MCP server runs locally
.gitignoreexcludeskeys.jsonkeys.json.exampleprovided as a template
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alarconcesar/gemini-tts-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server