Modularer Model Context Protocol (MCP) Server für plattformübergreifenden Audio-Hardware-Zugriff. Ermöglicht KI-Assistenten wie Claude Desktop die Steuerung von Audiogeräten, Aufnahme, Wiedergabe, Analyse, Text-Vorlesen und Spracherkennung .
Bereich
Beschreibung
Geräte-Verwaltung
Ein-/Ausgabegeräte auflisten & auswählen
Aufnahme
Einzelaufnahmen und kontinuierliche Aufnahme mit Ringpuffer
Wiedergabe
Audio abspielen mit Steuerung (Pause, Stop, Seek)
Lautstärke
Plattformübergreifend (Windows pycaw, macOS osascript, Linux pactl)
Echtzeit-Streaming
WebSocket-basiertes Audio-Streaming
Analyse
Spektralanalyse (FFT, Mel/MFCC), Pegelanalyse, VAD
Text-Vorlesen
Webseiten, PDFs, Textdateien via TTS vorlesen (NEU v0.2)
Spracherkennung
Audiodateien & Mikrofon transkribieren, Sprachbefehle (NEU v0.2)
Plugins
BirdSound, Soundscape, Ambient Guide, ProAudio, MIDI, Reader, Speech
Sicherheit
Capability-basierte Berechtigungen, Consent-System, Audit-Log
Python 3.11+ (getestet bis 3.14)
ffmpeg — für Audio-Konvertierung
PortAudio — für Echtzeit-Audio-I/O (wird über sounddevice mitgeliefert)
git clone https://github.com/donapart/Audio-mcp.git
cd Audio-mcp
2. Automatische Installation (empfohlen)
# Windows (PowerShell)
.\setup.ps1
# macOS / Linux
chmod +x setup.sh && ./setup.sh
Das Setup-Skript:
Erstellt ein virtuelles Environment (.venv)
Installiert alle Basis- und Dev-Abhängigkeiten
Prüft System-Abhängigkeiten (ffmpeg, PortAudio)
Verifiziert die Installation
# Virtuelles Environment erstellen
python -m venv .venv
# Aktivieren
.\. venv\S cripts\A ctivate.ps1 # Windows PowerShell
source .venv/bin/activate # macOS / Linux
# Basis + Entwicklung
pip install -e " .[dev]"
4. Optionale Features installieren
# Text-Vorlesen (TTS + Webseiten + PDFs)
pip install -e " .[edge-tts,reader]"
# Spracherkennung (STT)
pip install -e " .[stt]"
# Alles auf einmal
pip install -e " .[edge-tts,reader,stt,analysis,streaming,windows]"
Vollständige Übersicht aller optionalen Pakete: → INSTALLATION.md
Verfügbare optionale Pakete
Extra
Pakete
Beschreibung
edge-tts
edge-tts, pydub
Microsoft Edge TTS (empfohlen für Python 3.12+)
tts
Coqui TTS
Lokale TTS mit XTTS v2 (nur Python ≤3.11)
stt
SpeechRecognition
Spracherkennung (Google Cloud)
stt-whisper
faster-whisper
Lokale Whisper-Transkription
stt-vosk
Vosk
Offline-Spracherkennung
reader
trafilatura, bs4, pymupdf
Webseiten- & PDF-Textextraktion
reader-minimal
beautifulsoup4
Nur Webseiten-Extraktion
analysis
librosa
Erweiterte Audio-Analyse
visualization
matplotlib
Spektrogramm-Visualisierung
streaming
websockets
WebSocket-Audio-Streaming
proaudio
pyloudnorm, pedalboard
Professionelles Audio-Metering
midi
mido, python-rtmidi
MIDI-Geräte-Steuerung
birdsound
BirdNET
Vogelstimmen-Erkennung — Birds
vad
webrtcvad
Voice Activity Detection
windows
pycaw
Windows-Lautstärkeregelung
Stdio-Transport (für Claude Desktop)
audio-mcp
# oder
python -m audio_mcp.server
Streamable HTTP Transport
audio-mcp --transport streamable-http --port 8765
Claude Desktop Konfiguration
Die Datei claude_desktop_config.json ergänzen:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers" : {
"audio" : {
"command" : " D:/Projekte/Audio-mcp/.venv/Scripts/python" ,
"args" : [" -m" , " audio_mcp.server" ],
"env" : {
"AUDIO_MCP_CONFIG" : " D:/Projekte/Audio-mcp/config/default.yaml"
}
}
}
}
Oder mit dem Konfigurationsskript:
.\scripts\setup_claude_config.ps1
Tool
Beschreibung
list_audio_devices
Alle Audio-Ein-/Ausgabegeräte anzeigen
record_audio
Audio aufnehmen (Dauer, Format, Gerät wählbar)
play_audio
Audiodatei abspielen
stop_playback
Wiedergabe stoppen
set_volume / get_volume
Systemlautstärke steuern
generate_tone
Künstlichen Ton erzeugen
generate_noise
Rauschen erzeugen (Weiß, Rosa, Braun)
generate_binaural
Binaural-Beats erzeugen
Tool
Beschreibung
analyze_spectrum
FFT / Mel-Spektrogramm / MFCC
analyze_levels
RMS, Peak, LUFS Pegelanalyse
detect_voice_activity
Sprachaktivitäts-Erkennung
compare_audio
Audio-Similarity-Vergleich
Tool
Beschreibung
read_aloud
Webseite, PDF oder Text vorlesen
extract_text
Text aus Quelle extrahieren (ohne Sprache)
speak_text
Beliebigen Text als Audio synthetisieren
read_webpage
Webseite vorlesen (Shortcut)
read_pdf
PDF-Datei vorlesen (Shortcut)
list_tts_voices
Verfügbare TTS-Stimmen auflisten
Tool
Beschreibung
transcribe_audio
Audiodatei → Text
transcribe_microphone
Mikrofonaufnahme → Text
listen_for_command
Auf Sprachbefehl lauschen (mit Stille-Erkennung)
list_stt_backends
Verfügbare STT-Backends anzeigen
# Build
docker build -t audio-mcp-server .
# Run (HTTP-Transport)
docker run -p 8765:8765 audio-mcp-server
# Mit Audio-Gerät (Linux)
docker run -p 8765:8765 --device /dev/snd audio-mcp-server
Datei
Beschreibung
config/default.yaml
Server-Einstellungen, Audio-Defaults, Plugin-Aktivierung
config/permissions.yaml
Capability-basierte Berechtigungen
config/plugins/*.yaml
Plugin-spezifische Konfiguration
Variable
Beschreibung
Standard
AUDIO_MCP_CONFIG
Pfad zur Konfigurations-YAML
config/default.yaml
AUDIO_MCP_STORAGE_DIR
Audio-Speicherverzeichnis
System-Temp
# Alle Tests
pytest
# Mit Coverage
pytest --cov=audio_mcp --cov-report=html
# Nur bestimmte Module
pytest tests/test_core/
pytest tests/test_plugins/test_reader/
pytest tests/test_plugins/test_speech/
ruff check src/ tests/ # Linting
ruff format src/ tests/ # Formatierung
mypy src/audio_mcp/ # Type-Checking
python scripts/test_audio_devices.py
Audio-mcp/
├── config/ # Konfigurationsdateien
│ ├── default.yaml # Server & Plugin-Einstellungen
│ ├── permissions.yaml # Berechtigungen
│ └── plugins/ # Plugin-spezifische Configs
├── docs/ # Dokumentation
│ ├── analysis.md
│ └── plugins/
│ ├── reader.md # Reader-Plugin Doku
│ ├── speech.md # Speech-Plugin Doku
│ └── ...
├── scripts/ # Installations- & Hilfs-Skripte
├── src/audio_mcp/
│ ├── __init__.py # Version: 0.2.0
│ ├── app.py # FastMCP-Instanz & Lifespan
│ ├── server.py # Einstiegspunkt & CLI
│ ├── models.py # Pydantic-Modelle
│ ├── core/ # Geräte, Aufnahme, Wiedergabe, Volume, Stream
│ │ ├── tts_service.py # Gemeinsamer TTS-Service (edge-tts/Coqui)
│ │ ├── stt_service.py # STT-Service (Whisper/SR/Vosk)
│ │ └── ...
│ ├── analysis/ # Spektrum, Pegel, VAD, Embeddings
│ ├── plugins/
│ │ ├── reader/ # Text-Vorlesen (NEU v0.2)
│ │ ├── speech/ # Spracherkennung (NEU v0.2)
│ │ ├── birdsound/ # Vogelstimmen-Erkennung (BirdNET)
│ │ ├── soundscape/ # Umgebungsklang-Analyse
│ │ ├── ambient_guide/ # Umgebungs-Analyse & Audio-Guide
│ │ ├── proaudio/ # Professionelles Metering
│ │ └── midi/ # MIDI-Steuerung
│ ├── security/ # Permissions, Consent, Audit
│ ├── tools/ # MCP-Tool-Registrierung
│ └── utils/ # Config, File-Manager, Helpers
├── tests/ # pytest-Testsuite
├── CHANGELOG.md # Versionshistorie
├── INSTALLATION.md # Installationsanleitung
├── Dockerfile # Multi-Stage Docker Build
├── setup.ps1 # Windows Setup-Skript
├── setup.sh # Linux/macOS Setup-Skript
└── pyproject.toml # Build-Konfiguration (hatchling)
Entwickelt von Dano Schönwald — github.com/donapart
Wenn dir dieses Projekt gefällt, kannst du mich gerne unterstützen:
MIT