speak
Integrates with ElevenLabs' eleven_flash_v2_5 voice to provide high-quality text-to-speech synthesis for the MCP server.
Uses OpenAI's gpt-4o-mini-tts model for text-to-speech synthesis, enabling the MCP server to speak scripts with natural-sounding neural voices.
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., "@speakread that back to me"
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.
speak
Ask Claude to read its answer out loud.
Not a text-to-speech dump of the raw reply. You say "read that back to me simply" and Claude rewrites what it said as a short spoken script, then plays it. The script never appears in chat. It is a conversation between you and the model, with the text kept out of your way.
Works in Claude Code today. The playback half is a plain MCP server, so it also drops into Claude Desktop, Cursor, or any MCP client.
What you get
speakMCP server with toolsspeak,stop,pause,resume,back,skip,add_pronunciation,list_pronunciations,list_voices,set_defaultFloating overlay on macOS while Claude speaks: a small pill above every window with a live waveform, back one sentence, skip one sentence, pause and resume from the exact point, stop
/speakskill for Claude Code, with styles:simple(default),brief,decisions,full,eli5Auto-speak: a
Stophook that reads abriefscript after every answer, off by defaultspeakCLI:echo "hello" | speakRaycast script commands:
Speakreads the selected text as written,Speak Simplyrewrites it withclaude -pas a short spoken summary first,Speak Translatedtranslates it first (English by default; type another language as the command's argument, or setSPEAK_TRANSLATE_LANGUAGEto change the default). A non-English translation is read with a matching installed macOS voice, best available first (Premium, then Enhanced, then compact); English keeps your normal voice untouched. Download the Premium voice for a language in System Settings > Accessibility > Read & Speak > System Voice > Manage Voices to get the good one.Speak Stopstops. They copy the selection with a simulated Cmd+C, so Raycast needs Accessibility permission.
Related MCP server: MCP Audio Server
Engines
Engine | Cost | Needs | Notes |
| free | macOS | Default. Download a Premium or Enhanced voice in System Settings > Accessibility > Spoken Content for good quality. Set a Siri voice as system default and bare |
| free | network | Microsoft neural voices via |
| free |
| Local neural TTS, runs on CPU. |
| paid |
|
|
| free tier |
|
|
Picking a voice on macOS
The default say engine uses your Mac's system voice, so set it up once in macOS and every reading uses it:
Open System Settings > Accessibility > Read & Speak (Spoken Content on older versions).
Under System Voice, pick a voice. Apple ships a large library per language; the Premium and Enhanced ones download on demand and sound far better than the compact defaults. Siri voices can be chosen here too.
Set the speaking rate to taste.
Pronunciations
Tell Claude in chat:
"pronounce fancyapp as fan-see-app from now on"
"what pronunciations have you saved"
They live in ~/.config/speak/pronunciations.json (override the folder with SPEAK_CONFIG_DIR), matched whole-word and case-insensitive, and applied to every reading:
{
"fancyapp": "fan-see-app",
"OAuth": "oh auth"
}Links and emails are read as spoken: https://example.com/login becomes "example dot com slash login", jane@example.de becomes "jane at example dot d e". Short endings like de, io, co.uk are spelled letter by letter, since "de" read as a word comes out as "duh".
Words with two readings ("live", "read", "lead") cannot be fixed by a word list. The skill tells Claude to respell them in the script so the voice cannot guess wrong: "lyive" for live as in alive, "red" for read in the past tense, "led" for the metal. The skill carries a table of the usual offenders and checks the script against it before speaking.
Leave SPEAK_VOICE unset to follow the system voice, or set it to a voice name from say -v ? to override for Claude only.
First available engine wins unless you set SPEAK_ENGINE. SPEAK_VOICE sets the voice. Both can be changed per session with the set_default tool ("switch to the edge engine").
Install
Set RAYCAST_SCRIPTS_DIR to a directory already added in Raycast (Settings > Extensions > Script Commands) and the commands are linked into it. Without it, add raycast/ from this repo there once by hand.
RAYCAST_SCRIPTS_DIR=~/raycast-scripts ./install.shNeeds Node 20+, jq, and Claude Code.
git clone https://github.com/CareyScott/speak
cd speak
./install.shThis builds the server and the macOS overlay helper (needs swiftc from the Xcode command line tools), registers the MCP server at user scope, links the skill into ~/.claude/skills, adds the Stop hook to ~/.claude/settings.json, and links speak and speak-auto into ~/.local/bin.
Restart Claude Code.
Use
Talk to Claude:
"read that back to me"
"say it simply"
"what do you need from me, out loud"
"/speak decisions"
"stop"
Auto-speak after every answer:
speak-auto on # brief style
speak-auto on decisions # only the questions for you
speak-auto offWhile it speaks, use the overlay or just say it:
"pause", "resume", "go back a sentence", "skip that", "stop"
Pause holds the exact position. Resume continues from it. Back replays the previous sentence. Skip jumps to the next. Nothing is spoken about pausing or resuming; it just does it.
Pick an engine or voice:
export SPEAK_ENGINE=edge
export SPEAK_VOICE=en-IE-ConnorNeuralOr in chat: "list the say voices", "use Jamie from now on".
How it works
The skill tells Claude how to write for the ear: short sentences, lead with the point, describe code instead of reading it, end with the decision it needs from you. Claude calls the speak tool with that script.
The server strips any leftover markdown, splits the script into sentences, and synthesises the next sentence while the current one plays.
On macOS a small Swift helper (overlay/main.swift) owns playback with AVAudioPlayer and draws the overlay: an always-on-top, non-activating panel that never steals focus. Node sends it one sentence file at a time over JSON lines on stdin and it reports finished, back, or stop on stdout. Pause and resume happen inside the helper, so the position is exact. Back and skip tell the server which sentence to play next. Elsewhere the server falls back to afplay or ffplay with no overlay.
Auto-speak is a Claude Code Stop hook. When the flag file ~/.config/speak/auto exists, the hook blocks the stop once and asks Claude to speak a script in the style named in the file. The stop_hook_active guard stops it looping.
Development
npm run dev # run the server with tsx
npm test # vitest
npm run typecheckMIT.
This 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
- AlicenseNot gradedqualityFmaintenanceEnables Claude and other AI assistants to interact with your computer's audio system, allowing for recording from microphones and playing audio through speakers.9MIT
- AlicenseNot gradedqualityDmaintenanceEnables text-to-speech conversion with smart language detection (using Google TTS for Chinese) and audio file playback with playback controls for Claude Desktop.3MIT
- AlicenseNot gradedqualityBmaintenanceEnables text-to-speech conversion using OpenAI's TTS API, with inline audio playback and history within MCP hosts like Claude.4BSD 2-Clause "Simplified"
- FlicenseAqualityCmaintenanceEnables Claude to speak responses out loud using ElevenLabs text-to-speech API, with tools to list voices and convert text to speech.2
Related MCP Connectors
Generate AI images, video, speech, music and presentations from Claude, ChatGPT and Cursor.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
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/CareyScott/speak'
If you have feedback or need assistance with the MCP directory API, please join our Discord server