Dacast MCP Live Stream Server Server

公式

Dacast MCP Live Stream Serverは、AIツールをDacastのライブストリーミングおよびビデオホスティングAPIに接続し、自然言語のシンプルなプロンプトを使用してライブストリーム、プレイリスト、サムネイル、サイマルキャストを作成・管理できるようにします。

ドキュメント

Dacast MCP サーバー

このリポジトリは、Dacast ビデオプラットフォーム API を構造化された MCP ツールセットとして公開する Model Context Protocol (MCP) サーバー を提供します。MCP 互換クライアント (Claude Desktop など) が、自然言語を通じてチャンネル、プレイリスト、画像、サイマルキャスト配信先などの Dacast リソースを管理できるようにします。


機能

  • StdIO ベースの MCP サーバー

    • 標準入出力を介して Model Context Protocol を通信します。
    • MCP クライアントプロセスによって起動され、子プロセスとして実行され続けるように設計されています。
  • Dacast API 統合

    • チャンネル管理: 作成、一覧表示、取得、更新。
    • プレイリスト管理: 作成、一覧表示、取得、更新、プレイリストコンテンツの設定。
    • 画像管理: サムネイルとスプラッシュ画像。
    • サイマルキャスト配信先管理: 作成、取得、削除。

インストール

前提条件

  • Go: Go 1.24 以上 (以前のバージョンでも動作する可能性はありますが、保証されません)。
  • Dacast アカウントと API キー: 認証された操作を実行するために必要です。

MCP クライアント設定

JSON ベースの MCP クライアント設定は次のようになります:

{
  "mcpServers": {
    "dacast": {
      "command": "go",
      "args": ["run", "github.com/Dacast-Inc/mcp-server-public@latest"],
      "env": {
        "DACAST_API_KEY": "DACAST API KEY HERE"
      }
    }
  }
}

アーキテクチャ概要

高レベル設計

サーバーは単一の Go バイナリであり、以下の動作を行います:

  1. MCP stdio サーバーを起動します。
  2. Dacast ドメイン (チャンネル、プレイリスト、画像、サイマルキャスト) ごとにグループ化されたツールセットを登録します。
  3. 受信した MCP call_tool リクエストごとに:
    • ツール引数をバインドして検証します。
    • 内部 ApiClient を使用して、関連する Dacast REST エンドポイントへの HTTP リクエストを構築します。
    • 適切な認証ヘッダーを付けて Dacast にリクエストを転送します。
    • JSON レスポンス (およびオプションで変換された構造化形式) を MCP クライアントに返します。

主要パッケージ:

  • main.go – MCP サーバーを初期化し、ツールを登録するエントリポイント。
  • pkg/apiclient/ – Dacast REST API の最小限の HTTP クライアントラッパー。
  • pkg/tools/ – ドメインごとにグループ化されたツール実装:
    • channel/ – チャンネル関連の操作。
    • playlist/ – プレイリスト関連の操作。
    • images/ – サムネイルとスプラッシュ画像の操作。
    • simulcast/ – サイマルキャスト配信先の操作。
  • pkg/tools/toolscommon/ – ツール構築のための共有型、ハンドラー、ユーティリティ。

ツール → Dacast API マッピング

pkg/tools/ の各ツールは、1 つ以上の Dacast API エンドポイントに対応します。

  • チャンネル (pkg/tools/channel/)

    • create_channel.go – 新しいチャンネルを作成します。
    • get_channel.go – チャンネルの詳細を取得します。
    • update_channel.go – 既存のチャンネルを更新します。
    • list_channel.go – すべてのチャンネルまたはフィルタリングされたチャンネルを一覧表示します。
  • プレイリスト (pkg/tools/playlist/)

    • create_playlist.go – 新しいプレイリストを作成します。
    • get_playlist.go – プレイリストの詳細を取得します。
    • update_playlist.go – 既存のプレイリストを更新します。
    • list_playlist.go – プレイリストを一覧表示します。
    • set_playlist_content.go – プレイリストのコンテンツを設定または更新します。
  • 画像 (pkg/tools/images/)

    • thumbnail.go – チャンネル/アセットのサムネイルを管理します。
    • splash.go – スプラッシュ画像を管理します。
  • サイマルキャスト (pkg/tools/simulcast/)

    • create_simulcast_destination.go – サイマルキャスト配信先を作成します。
    • get_simulcast_destination.go – サイマルキャスト配信先を取得します。
    • delete_simulcast_destination.go – サイマルキャスト配信先を削除します。

ライセンス

このプロジェクトは、このリポジトリの LICENSE ファイルに記載された条件に基づいてライセンスされています。全文については、そのファイルを確認してください。