glados-voice-mcp
A warm, shared GLaDOS text-to-speech server for agents, exposed as an MCP tool. It builds on nimaid/GLaDOS-TTS, included unmodified as a git submodule.
Using an AI agent? Point it at this repository and ask it to follow
AGENTS.md; it contains every step to install, register and verify the server.
- Fast: about 100 ms to first audio once the models are loaded; text is split into sentences and the first one plays while the rest is still being synthesized.
- Lazy and shared: the MCP process is a thin proxy. The first
speakstarts one shared daemon (127.0.0.1:18765) that loads the models, serves every agent on one audio device, and exits after 10 minutes without requests or speech. - In character: the persona is part of the tool description and
speakrejects calls within_character=false. The server cannot verify the style of the text itself. - One voice at a time: if a message is loading or playing,
speakreturnsBUSY ... Retry in about N secondsso agents never talk over each other.speakwith empty text cuts speech for everyone.
Install
No clone or project directory is needed: uv installs the glados-voice-mcp package from PyPI. Pick exactly one onnxruntime extra: cpu or cuda (NVIDIA, CUDA 13 wheels).
# 1. Build the environment and download the models once (about 125 MB, stored in your user data dir)
uvx --from "glados-voice-mcp[cpu]@latest" glados-voice download-models
# 2. Try it (plays audio)
uvx --from "glados-voice-mcp[cpu]@latest" glados-voice say "Hello, test subject."
Prefer a persistent command? uv tool install "glados-voice-mcp[cpu]" or pipx install "glados-voice-mcp[cpu]" puts glados-voice-mcp on your PATH. To develop, clone with git clone --recurse-submodules https://github.com/bkmeneguello/glados-voice-mcp and run uv pip install ".[cpu]" in a venv.
Register the MCP server
claude mcp add glados-voice -- uvx --from "glados-voice-mcp[cpu]@latest" glados-voice-mcp
For other clients use the command uvx with the arguments --from "glados-voice-mcp[cpu]@latest" glados-voice-mcp; AGENTS.md has Codex, Gemini and JSON examples.
Tool: speak(text, in_character, wait=false). Empty text stops the current speech.
Configuration (environment variables)
| Variable | Default | Meaning |
|---|---|---|
GLADOS_IDLE_SECONDS |
600 |
Idle time before the daemon exits and unloads the models |
GLADOS_PORT |
18765 |
Localhost port of the shared daemon |
GLADOS_BACKEND |
cpu |
cpu (lowest latency for sentences), cuda, or auto (CPU for short chunks, CUDA for long) |
GLADOS_MODELS_DIR |
OS user data dir | Model files, e.g. %LOCALAPPDATA%\glados-voice\models on Windows, ~/.local/share/glados-voice/models on Linux |
The daemon log is glados_voice_daemon.log in the system temp directory. The daemon accepts requests from any local process and has no authentication, but it rejects browser requests (Origin header, non-JSON Content-Type, foreign Host).
Python use
from glados_voice import VoiceEngine
engine = VoiceEngine().start() # loads in the background
engine.speak("Hello. This is a test.")
engine.wait_idle()
Credits and license
The code is MIT, see LICENSE and NOTICE.md for third-party notices.
- Voice models: they come from dnhkng/GlaDOS and are downloaded at first use. They are not stored or distributed in this repository and are not covered by its MIT license. The voice imitates a character and recordings owned by Valve Corporation, so it is for personal, non-commercial fan use only.
- Unofficial: GLaDOS and Portal belong to Valve Corporation; this project is not affiliated with or endorsed by Valve.
cudaextra: it installs proprietary NVIDIA libraries from PyPI under NVIDIA's license terms. Thecpuextra does not.
Metadata
Release files for glados-voice-mcp 0.1.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 | Actions |
|---|---|---|---|---|
| glados_voice_mcp-0.1.0.tar.gz | 2.3 MB | With provenance | Details for glados_voice_mcp-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| glados_voice_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for glados_voice_mcp-0.1.0-py3-none-any.whl |
Total release size: 4.6 MB
Release files / glados_voice_mcp-0.1.0.tar.gz
| Download URL | glados_voice_mcp-0.1.0.tar.gz |
|---|---|
| Size | 2.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
88e095ecbfbd14e034839c1a81b31c5b688047922280c57982abf17a89b4e97e
|
|
BLAKE2b-256 checksum How to use checksums |
319396bd7c0b41de3dcdaf892f8c85a69b6463b3fc7168a2e8c9750e457b6c38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logRelease files / glados_voice_mcp-0.1.0-py3-none-any.whl
| Download URL | glados_voice_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 2.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fe350d5b724ae9469efac8d7ca0bfbee75df10312a249449580dd0374cb64f12
|
|
BLAKE2b-256 checksum How to use checksums |
28222caa7615e64bbb44390eb7ade11581ebd6961d1e541f97f359a05fd0f7f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logSecurity for glados-voice-mcp 0.1.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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for glados_voice_mcp-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logA 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.