Skip to main content
Glama

cast-mcp

Servidor MCP HTTP independiente para reproducir audiolibros desde una biblioteca del sistema de archivos en altavoces Google Cast.

El servicio expone tanto herramientas MCP para agentes como endpoints HTTP simples para dispositivos físicos. Los audiolibros se leen desde ./media por defecto y se transmiten a los altavoces mediante URL de sesión firmadas respaldadas por ffmpeg.

También incluye TTS totalmente local para mensajes hablados cortos. Docker usa Piper por defecto con la voz en_GB-jenny_dioco-medium y recurre a espeak-ng si Piper falla.

Configuración Local

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 monta ./media como /media:ro y ./data como /data.

Estructura de la Biblioteca

Consulta MEDIA.md para obtener instrucciones detalladas sobre dónde colocar los archivos de audiolibros y qué formatos son compatibles.

Cada carpeta dentro de ./media se trata como un libro:

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

metadata.json opcional:

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

Las extensiones de entrada compatibles actualmente son .mp3, .m4a, .m4b, .aac, .wav, .flac y .ogg. Las transmisiones se transcodifican a MP3.

Endpoints

  • 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=...

Los endpoints de control requieren Authorization: Bearer <CONTROL_AUTH_TOKEN> cuando están configurados. MCP usa MCP_AUTH_TOKEN.

Configuración MCP de OpenCode

{
  "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