Skip to content

languagemodelsdotfun/PythiaMCP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

smallPythiaMCP

Pythia Voice MCP

A voice interface sidecar for LLM clients. Provides text-to-speech output via MCP and speech-to-text input via wake word detection.

Features

  • Text-to-Speech - Local TTS using KittenTTS (ONNX, no cloud API)
  • Speech-to-Text - Local STT using faster-whisper with Silero VAD
  • Wake Word Detection - Trigger dictation with customizable wake word
  • MCP Server - SSE transport for LLM client integration
  • Text Injection - Dictated text injected into active window
  • Barge-In - Interrupt TTS playback by speaking

Requirements

System Dependencies

Debian/Ubuntu:

sudo apt install xdotool portaudio19-dev

Fedora:

sudo dnf install xdotool portaudio-devel

Arch:

sudo pacman -S xdotool portaudio

Python

Python 3.10+ required.

Installation

# Clone or download
cd PythiaMCP-0.1.0

# Create virtual environment
python -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

Usage

# Start with defaults
python main.py

# Custom port
python main.py --port 8000

# Start with dictation enabled
python main.py --dictation

# List audio devices
python main.py --list-devices

# Verbose logging
python main.py -v      # INFO level
python main.py -vv     # DEBUG level

Hotkeys

Key Action
q Quit
d Toggle dictation
s Open settings
i Select input device
o Select output device
v Cycle TTS voice
c Copy MCP config
? Help
Up/Down Adjust TTS speed
Space Skip TTS

MCP Configuration

Add to your LLM client's MCP config:

{
  "mcpServers": {
    "pythia": {
      "url": "http://127.0.0.1:7984/sse"
    }
  }
}

Configuration

Settings are stored in ~/.config/pythia/config.json. Use the Settings modal (s) to configure:

  • Wake word and position
  • Whisper model (tiny.en → large-v3)
  • Silence timeout
  • TTS speed and voice
  • Text injection method
  • Barge-in behavior

Wake Word Usage

  1. Press d to enable dictation
  2. Say your wake word (default: "Computer") followed by your message
  3. Text is transcribed and injected into the active window

Example: "Computer, what is the weather today?" → injects "what is the weather today?"

License

GPL-3.0 - See LICENSE file.

About

A STT and TTS using whispercpp and KittenTTS MCP server for local voice chat with models.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors