Dacast MCP Live Stream Server Server

offiziell

Der Dacast MCP Live Stream Server verbindet Ihre KI-Werkzeuge mit den Live-Streaming- und Video-Hosting-APIs von Dacast, sodass Sie Live-Streams, Playlists, Thumbnails und Simulcasts mit einfachen natürlichsprachlichen Eingaben erstellen und verwalten können.

Dokumentation

Dacast MCP Server

Dieses Repository stellt einen Model Context Protocol (MCP)-Server bereit, der die Dacast-Videoplattform-API als eine Reihe strukturierter MCP-Tools verfügbar macht. Es ermöglicht MCP-kompatiblen Clients (wie Claude Desktop), Dacast-Ressourcen – Kanäle, Playlists, Bilder, Simulcast-Ziele und mehr – über natürliche Sprache zu verwalten.


Funktionen

  • StdIO-basierter MCP-Server

    • Kommuniziert über das Model Context Protocol via Standard-Ein-/Ausgabe.
    • Konzipiert, um von einem MCP-Client-Prozess gestartet und als Kindprozess ausgeführt zu werden.
  • Dacast-API-Integration

    • Kanalverwaltung: Erstellen, Auflisten, Abrufen, Aktualisieren.
    • Playlist-Verwaltung: Erstellen, Auflisten, Abrufen, Aktualisieren, Playlist-Inhalte festlegen.
    • Bildverwaltung: Thumbnails und Splash-Bilder.
    • Simulcast-Zielverwaltung: Erstellen, Abrufen, Löschen.

Installation

Voraussetzungen

  • Go: Go 1.24+ (frühere Versionen könnten funktionieren, sind aber nicht garantiert).
  • Dacast-Konto und API-Schlüssel: erforderlich, um authentifizierte Operationen durchzuführen.

MCP-Client-Konfiguration

Eine JSON-basierte MCP-Client-Konfiguration könnte wie folgt aussehen:

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

Architekturüberblick

Allgemeiner Entwurf

Der Server ist eine einzelne Go-Binärdatei, die:

  1. Einen MCP-StdIO-Server startet.
  2. Eine Reihe von Tools registriert, gruppiert nach Dacast-Domäne (Kanäle, Playlists, Bilder, Simulcast).
  3. Für jede eingehende MCP-call_tool-Anfrage:
    • Bindet und validiert die Tool-Argumente.
    • Erstellt eine HTTP-Anfrage an den entsprechenden Dacast-REST-Endpunkt unter Verwendung des internen ApiClient.
    • Leitet die Anfrage mit den entsprechenden Authentifizierungs-Headern an Dacast weiter.
    • Gibt die JSON-Antwort (und optional eine transformierte, strukturierte Form) an den MCP-Client zurück.

Wichtige Pakete:

  • main.go – Einstiegspunkt, der den MCP-Server initialisiert und Tools registriert.
  • pkg/apiclient/ – Minimaler HTTP-Client-Wrapper um die Dacast-REST-API.
  • pkg/tools/ – Tool-Implementierungen, gruppiert nach Domäne:
    • channel/ – Kanalbezogene Operationen.
    • playlist/ – Playlist-bezogene Operationen.
    • images/ – Thumbnail- und Splash-Bild-Operationen.
    • simulcast/ – Simulcast-Ziel-Operationen.
  • pkg/tools/toolscommon/ – Gemeinsam genutzte Typen, Handler und Hilfsprogramme zum Erstellen von Tools.

Tools → Dacast-API-Zuordnung

Jedes Tool unter pkg/tools/ entspricht einem oder mehreren Dacast-API-Endpunkten.

  • Kanäle (pkg/tools/channel/)

    • create_channel.go – Einen neuen Kanal erstellen.
    • get_channel.go – Kanaldetails abrufen.
    • update_channel.go – Einen bestehenden Kanal aktualisieren.
    • list_channel.go – Alle oder gefilterte Kanäle auflisten.
  • Playlists (pkg/tools/playlist/)

    • create_playlist.go – Eine neue Playlist erstellen.
    • get_playlist.go – Playlist-Details abrufen.
    • update_playlist.go – Eine bestehende Playlist aktualisieren.
    • list_playlist.go – Playlists auflisten.
    • set_playlist_content.go – Playlist-Inhalte festlegen oder aktualisieren.
  • Bilder (pkg/tools/images/)

    • thumbnail.go – Kanal-/Asset-Thumbnails verwalten.
    • splash.go – Splash-Bilder verwalten.
  • Simulcast (pkg/tools/simulcast/)

    • create_simulcast_destination.go – Ein Simulcast-Ziel erstellen.
    • get_simulcast_destination.go – Ein Simulcast-Ziel abrufen.
    • delete_simulcast_destination.go – Ein Simulcast-Ziel löschen.

Lizenz

Dieses Projekt ist unter den Bedingungen lizenziert, die in der LICENSE-Datei in diesem Repository beschrieben sind. Bitte lesen Sie diese Datei für den vollständigen Text.