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
Metadata
Release files for mcp-speak-when-done 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| mcp_speak_when_done-1.0.0.tar.gz | 17.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_speak_when_done-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.4 kB
Release files / mcp_speak_when_done-1.0.0.tar.gz
| Download URL | mcp_speak_when_done-1.0.0.tar.gz |
|---|---|
| Size | 17.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c59c7f9c85c0d13b7a9f578d80d443c2d9178225352bc4ee777b7feacc85f0a6
|
|
BLAKE2b-256 checksum How to use checksums |
f211d4dcde5a3e2a6192d21115d2ff943dc5d4b03d475ffd47f42e7641cdc08e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.17
|
Release files / mcp_speak_when_done-1.0.0-py3-none-any.whl
| Download URL | mcp_speak_when_done-1.0.0-py3-none-any.whl |
|---|---|
| Size | 18.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
77d902b6759b6427f4e82fc98035b77d2d88b4cd5beb5df8c697f6f0ee9e76b0
|
|
BLAKE2b-256 checksum How to use checksums |
6a59e15f8943283308610b09aa2477a3b20afc34a6bf24f3d75df61b450872f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.17
|
Security for mcp-speak-when-done 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.