Skip to main content
Glama

cast-mcp

Eigenständiger HTTP-MCP-Server zum Übertragen von Hörbüchern aus einer Dateisystem-Bibliothek auf Google-Cast-Lautsprecher.

Der Dienst stellt sowohl MCP-Tools für Agenten als auch einfache HTTP-Endpunkte für physische Geräte bereit. Hörbücher werden standardmäßig aus ./media gelesen und über signierte Sitzungs-URLs, die auf ffmpeg basieren, an Lautsprecher gestreamt.

Er enthält außerdem vollständig lokale TTS für kurze gesprochene Nachrichten. Docker verwendet standardmäßig Piper mit der Stimme en_GB-jenny_dioco-medium und fällt auf espeak-ng zurück, wenn Piper fehlschlägt.

Lokale Einrichtung

bun install
cp .env.example .env
mkdir -p media data
bun run start

Related MCP server: mcp-librivox

Docker

cp .env.example .env
mkdir -p media data
docker compose up -d --build

Docker mountet ./media als /media:ro und ./data als /data.

Bibliotheksstruktur

Siehe MEDIA.md für detaillierte Anweisungen, wo Hörbuchdateien abgelegt werden sollen und welche Formate unterstützt werden.

Jeder Ordner unter ./media wird als ein Buch behandelt:

media/
  the-hobbit/
    metadata.json
    001.mp3
    002.mp3

Optionale metadata.json:

{
  "id": "the-hobbit",
  "title": "The Hobbit",
  "author": "J.R.R. Tolkien"
}

Derzeit unterstützte Eingabeerweiterungen sind .mp3, .m4a, .m4b, .aac, .wav, .flac und .ogg. Streams werden in MP3 transcodiert.

Endpunkte

  • GET /health

  • POST /mcp

  • GET /books

  • POST /scan

  • GET /speakers

  • POST /play

  • POST /say

  • POST /stop

  • GET /status/:speakerId

  • GET /media/stream?sessionId=...&sig=...

  • GET /tts/:id?sig=...

Steuerungs-Endpunkte erfordern Authorization: Bearer <CONTROL_AUTH_TOKEN>, wenn konfiguriert. MCP verwendet MCP_AUTH_TOKEN.

OpenCode-MCP-Konfiguration

{
  "mcp": {
    "cast-audio": {
      "type": "remote",
      "url": "http://127.0.0.1:4130/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:CAST_MCP_TOKEN}"
      }
    }
  }
}

Related MCP Connectors

Related MCP Servers