Skip to main content
Glama

cast-mcp

ファイルシステムのライブラリからGoogle Castスピーカーへオーディオブックをキャストするための、スタンドアロンHTTP MCPサーバーです。

このサービスは、エージェント向けのMCPツールと、物理デバイス向けのプレーンなHTTPエンドポイントの両方を公開します。オーディオブックはデフォルトで./mediaから読み込まれ、ffmpegをバックエンドにした署名付きセッションURLを通じてスピーカーにストリーミングされます。

また、短い音声メッセージ用の完全ローカル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配下の各フォルダは1冊の本として扱われます:

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を使用します。

OpenCode MCP設定

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