stt -linux
Local speech-to-text MCP server for Tmux on Linux (for use not only with Claude Code)
claude mcp add --transport stdio marcindulak-stt-mcp-server-linux docker run -i --name stt-mcp-server-linux stt-mcp-server-linux
How to use
This MCP server provides local speech-to-text capabilities for Linux by running inside a Docker container. The server exposes a transcribe tool via the MCP protocol, which can inject transcribed text into Claude Code running in a Tmux session. It uses the Right Ctrl key as a push-to-talk trigger, reading keyboard events from /dev/input and recording audio from /dev/snd. The server is Linux-only due to the dependency on host devices and is designed to operate in a self-contained Docker environment for easy isolation and reproducibility. You can either run the server inside Docker for an isolated setup or use the standalone mode in a Tmux session without MCP in a pinch, but the MCP flow provides the full integration with Claude Code for automatic transcription into Claude’s input stream.
How to install
Prerequisites:
- Docker Engine or Docker Desktop installed on a Linux machine.
- Git for cloning the repository.
- TMUX installed on the host (for integrating with Claude Code and standalone mode).
Installation steps:
-
Clone the repository and navigate into it: git clone https://github.com/marcindulak/stt-mcp-server-linux cd stt-mcp-server-linux
-
Build the Docker image for the MCP server: bash scripts/build_docker_image.sh
-
Download the Whisper model (tiny) to the expected directory inside the container: bash scripts/download_whisper_model.sh
-
Run the MCP server container: docker run -i --name stt-mcp-server-linux stt-mcp-server-linux
-
(Optional) If you want to test standalone mode, you can run the container with appropriate environment and then start the standalone service inside a Tmux session as documented in the repo README.
Additional notes
Notes and tips:
- The MCP server creates the directory ~/.stt-mcp-server-linux on first run. This is used to persist models and configuration across restarts.
- If you encounter initialization delays, check container logs with: docker logs stt-mcp-server-linux to verify the server is waiting for the Right Ctrl press and that transcription is active.
- Standalone mode is useful for testing without Claude Code, but MCP mode is required for automatic text injection into Claude’s input stream.
- The Right Ctrl push-to-talk workflow relies on accessing /dev/input keyboard devices and /dev/snd for the microphone. Ensure proper permissions and that the host devices are accessible to the container.
- When using Docker, make sure to expose or mount any necessary host devices if you modify the docker run options (e.g., --device /dev/input:/dev/input:ro and similar) depending on your environment.
Related MCP Servers
mcp-claude-code
MCP implementation of Claude Code capabilities and more
Zammad
A Model Context Protocol (MCP) server for Zammad integration, enabling AI assistants to interact with tickets, users, and organizations.
3dsmax
3dsmax mcp server for Claude and other AI agents.
openapi -proxy
An MCP server that provides tools for exploring large OpenAPI schemas
voice-status-report
A Model Context Protocol (MCP) server that provides voice status updates using OpenAI's text-to-speech API.
zotero -lite
Zotero MCP Lite: Fast, Customizable & Light Zotero MCP server for AI research assistants