Voice MCP Server
Provides text-to-speech generation and playback via the ElevenLabs API, enabling the server to speak aloud on demand.
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., "@Voice MCP ServerSay 'Hello, this is a test of the voice system.'"
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.
Voice MCP Server
MCP stdio server that lets Codex speak on demand. Codex starts the local stdio
process, calls voice_speak, the server generates the audio, plays it through
the system output, returns the tool result, and then waits for the next MCP
request from the client.
Quick Start
npm install
npm run buildBy default the server uses a local mock provider when ELEVENLABS_API_KEY is not
set. To use ElevenLabs:
export ELEVENLABS_API_KEY="..."
npm run buildTo use OpenAI Realtime streaming audio:
export VOICE_PROVIDER="openai-realtime"
export OPENAI_API_KEY="..."
npm run buildThe Realtime provider is text-in/audio-out. It does not listen to the
microphone. voice_speak sends the requested text as a Realtime conversation
item, receives response.output_audio.delta chunks, and streams 24 kHz mono
PCM audio to the local player as it arrives.
The transport is MCP over stdio; Codex starts dist/index.js directly.
You do not run this as a daemon or keep a separate terminal open.
Example MCP client configuration:
{
"mcpServers": {
"voice": {
"command": "node",
"args": ["./dist/index.js"],
"cwd": "/Users/francescperez/Documents/voice mcp server",
"env": {
"ELEVENLABS_API_KEY": "...",
"ELEVENLABS_VOICE_ID": "hpp4J3VqNfWAUOO0d1Us",
"ELEVENLABS_MODEL_ID": "eleven_flash_v2_5",
"ELEVENLABS_FORMAT": "mp3"
}
}
}
}Example OpenAI Realtime MCP client configuration:
{
"mcpServers": {
"voice": {
"command": "node",
"args": ["./dist/index.js"],
"cwd": "/Users/francescperez/Documents/voice mcp server",
"env": {
"VOICE_PROVIDER": "openai-realtime",
"OPENAI_API_KEY": "...",
"OPENAI_REALTIME_MODEL": "gpt-realtime-2.1",
"OPENAI_REALTIME_VOICE": "marin",
"OPENAI_REALTIME_FORMAT": "pcm16"
}
}
}
}The same block is available in .mcp.example.json. Keep real secrets in your
local .env or .mcp.json; both are ignored by git.
Related MCP server: Kokoro TTS MCP Server
Tools
voice_speak: generate and play speech.voice_wait: wait for a playback id to finish.voice_stop: stop current playback and clear pending items.voice_status: return queue/current/history state.voice_is_speaking: return whether audio is currently playing or being prepared.voice_set_profile: set the active voice profile.voice_list_profiles: list configured voice profiles.
voice_speak accepts:
{
"text": "Hello",
"waitUntilFinished": true,
"voiceId": "optional voice id",
"speed": 1.0,
"volume": 1.0,
"policy": "enqueue"
}Queue policies are enqueue, interrupt, replace, and discard.
Resources
voice://history: transcript/playback history as JSON.voice://status: current playback status as JSON.
Notifications
The server emits custom JSON-RPC notifications:
voice.startedvoice.progressvoice.finishedvoice.stoppedvoice.error
Configuration
Configuration can come from environment variables or from a file pointed at by
VOICE_MCP_CONFIG or --config. JSON is supported, plus a flat key = value
or key: value file for the keys shown in the design spec.
Example:
provider = "elevenlabs"
api_key = "${ELEVENLABS_API_KEY}"
voice_id = "hpp4J3VqNfWAUOO0d1Us"
model_id = "eleven_flash_v2_5"
format = "mp3"
volume = 1.0
speed = 1.0
output_device = "default"
cache = trueOnly ELEVENLABS_API_KEY is needed for normal ElevenLabs use. Everything else
has a default:
VOICE_PROVIDER: auto-selectselevenlabswhenELEVENLABS_API_KEYexists; otherwise usesmock. Setopenai-realtimeto stream Realtime audio.ELEVENLABS_VOICE_ID: defaults tohpp4J3VqNfWAUOO0d1Us.ELEVENLABS_MODEL_ID: defaults toeleven_flash_v2_5.ELEVENLABS_MODEL: legacy alias forELEVENLABS_MODEL_ID.ELEVENLABS_FORMAT: defaults tomp3;mp3maps to ElevenLabsmp3_44100_128.OPENAI_API_KEY: required whenVOICE_PROVIDER=openai-realtime.OPENAI_REALTIME_VOICE: defaults tomarin.OPENAI_REALTIME_MODEL: defaults togpt-realtime-2.1.OPENAI_REALTIME_FORMAT: defaults topcm16, which maps to 24 kHz mono PCM.OPENAI_REALTIME_INSTRUCTIONS: optional narrator instructions for the Realtime model.VOICE_VOLUME: defaults to1.0.VOICE_SPEED: defaults to1.0.VOICE_OUTPUT_DEVICE: defaults todefault.AUDIO_PLAYER_CMD: optional player command override.AUDIO_STREAM_PLAYER_CMD: optional streaming player command override. Placeholders:{sampleRate},{channels},{encoding}, and{volume}.VOICE_MCP_CONFIG: optional external config file.VOICE_CACHE: defaults totrue.VOICE_CACHE_DIR: defaults to.voice-cache.
Audio Playback
On macOS the server uses afplay. On Linux it uses aplay for WAV and
ffplay for other formats. You can override the command with
AUDIO_PLAYER_CMD.
The mock provider emits WAV audio. ElevenLabs emits MP3 by default.
OpenAI Realtime streaming uses ffplay by default:
ffplay -nodisp -autoexit -loglevel quiet -f s16le -sample_rate 24000 -ch_layout mono -volume 100 -i pipe:0This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceEnables agents to convert text to speech using OpenAI's TTS models with voice selection, delivery instructions, and queue-based audio playback. Supports both blocking and non-blocking modes for flexible audio generation and playback control.Last updated3BSD 3-Clause
- Flicense-qualityDmaintenanceEnables AI agents to generate and play high-quality text-to-speech audio using the Kokoro model, with support for multiple voices, adjustable speaking speed, and audio caching.Last updated
- Flicense-qualityDmaintenanceProvides text-to-speech conversion through a unified MCP interface, supporting both local Kokoro and cloud OpenAI TTS engines with streaming audio, voice selection, and customization via natural language instructions.Last updated7
- Alicense-qualityDmaintenanceEnables AI agents to synthesize natural speech using either platform system voices or premium OpenAI TTS, with automatic engine selection and graceful fallback.Last updated4MIT
Related MCP Connectors
Hosted pay-per-use TTS: 54 neural voices, 9 languages incl. Brazilian Portuguese. $10 free credits.
Voice and chat for AI agents — Discord, Teams, Meet, Slack, Zoom, Telegram, WhatsApp, NC Talk, SIP
AI-manageable audio CDN: upload, transcode, normalize, stream & deliver audio, plus grounded docs.
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/francbonet/voice-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server