MCP server that makes AI agents speak a brief summary of every response
Project description
mcp-speak-when-done
An MCP server that makes AI agents speak a brief summary of every response out loud.
When installed, the agent sees a speak_when_done tool with instructions to call it at the end of every response with a 1-3 sentence spoken summary.
Install
uvx mcp-speak-when-done
Claude Desktop / Claude Code
Add to your MCP configuration:
{
"mcpServers": {
"speak-when-done": {
"command": "uvx",
"args": ["mcp-speak-when-done"],
"env": {
"OPENAI_API_KEY": "your-api-key"
}
}
}
}
Works with any OpenAI-compatible TTS API. The provider is auto-detected from your API key:
| Key prefix | Provider | Default model | Default voice |
|---|---|---|---|
gsk_ |
Groq | canopylabs/orpheus-v1-english | troy |
| (other) | OpenAI | tts-1 | alloy |
Requirements
One audio player must be installed: ffplay (from ffmpeg), mplayer, or vlc.
Configuration
All settings are optional environment variables:
| Variable | Description | Default |
|---|---|---|
OPENAI_API_KEY |
API key (required) | — |
SPEECH_VOICE |
Voice name | auto-detected from key |
SPEECH_SPEED |
Speech speed | 1.0 |
SPEECH_MODEL |
TTS model | auto-detected from key |
SPEECH_API_URL |
API endpoint | auto-detected from key |
SPEECH_MAX_RETRIES |
Retry count | 3 |
SPEECH_TIMEOUT |
Request timeout (s) | 30 |
Remote Use (SSH + SSE)
If you run Claude on a remote server but want audio on your local machine:
1. On your local machine (has speakers + API key):
OPENAI_API_KEY="your-key" mcp-speak-when-done --transport sse
This starts an SSE server on port 8000 (override with FASTMCP_PORT).
2. SSH tunnel from the remote server to your local machine:
ssh -R 8000:localhost:8000 remote-server
3. On the remote server, configure Claude with proxy mode:
{
"mcpServers": {
"speak-when-done": {
"command": "uvx",
"args": ["mcp-speak-when-done"],
"env": {
"SPEECH_PROXY_URL": "http://localhost:8000/sse"
}
}
}
}
No API key needed on the remote side. If your local machine is off, the tool silently returns success — Claude keeps working normally.
| Variable | Description | Default |
|---|---|---|
SPEECH_PROXY_URL |
SSE server URL | — (unset = direct mode) |
SPEECH_PROXY_TIMEOUT |
Proxy timeout (s) | 10 |
License
GPL-3.0-or-later
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_speak_when_done-1.0.0.tar.gz.
File metadata
- Download URL: mcp_speak_when_done-1.0.0.tar.gz
- Upload date:
- Size: 17.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c59c7f9c85c0d13b7a9f578d80d443c2d9178225352bc4ee777b7feacc85f0a6
|
|
| MD5 |
eef89ac74f8a038b7d9f21aa42b10431
|
|
| BLAKE2b-256 |
f211d4dcde5a3e2a6192d21115d2ff943dc5d4b03d475ffd47f42e7641cdc08e
|
File details
Details for the file mcp_speak_when_done-1.0.0-py3-none-any.whl.
File metadata
- Download URL: mcp_speak_when_done-1.0.0-py3-none-any.whl
- Upload date:
- Size: 18.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77d902b6759b6427f4e82fc98035b77d2d88b4cd5beb5df8c697f6f0ee9e76b0
|
|
| MD5 |
c5aeaf39943783e6eb115ad244141e91
|
|
| BLAKE2b-256 |
6a59e15f8943283308610b09aa2477a3b20afc34a6bf24f3d75df61b450872f2
|