Skip to main content
Glama

cast-mcp

Автономный HTTP MCP-сервер для трансляции аудиокниг из файловой библиотеки на колонки Google Cast.

Сервис предоставляет как MCP-инструменты для агентов, так и обычные HTTP-эндпоинты для физических устройств. Аудиокниги по умолчанию читаются из ./media и транслируются на колонки через подписанные URL сессий на основе ffmpeg.

Также включает полностью локальный TTS для коротких голосовых сообщений. В Docker по умолчанию используется Piper с голосом en_GB-jenny_dioco-medium, а при сбое Piper выполняется откат на espeak-ng.

Локальная настройка

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 монтирует ./media как /media:ro и ./data как /data.

Структура библиотеки

Подробные инструкции о том, куда помещать файлы аудиокниг и какие форматы поддерживаются, см. в MEDIA.md.

Каждая папка в ./media рассматривается как одна книга:

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

Необязательный metadata.json:

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

Поддерживаемые расширения входных файлов: .mp3, .m4a, .m4b, .aac, .wav, .flac и .ogg. Потоки транскодируются в MP3.

Эндпоинты

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

При настройке контрольные эндпоинты требуют Authorization: Bearer <CONTROL_AUTH_TOKEN>. MCP использует MCP_AUTH_TOKEN.

Конфигурация MCP для 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