Dacast MCP Live Stream Server Server

官方

Dacast MCP Live Stream Server 将您的AI工具连接到Dacast的直播和视频托管API,使您能够通过简单的自然语言提示创建和管理直播流、播放列表、缩略图以及同步转播。

文档

Dacast MCP 服务器

本仓库提供了一个 模型上下文协议(MCP)服务器,将 Dacast 视频平台 API 以一组结构化的 MCP 工具形式暴露出来。它允许兼容 MCP 的客户端(如 Claude Desktop)通过自然语言管理 Dacast 资源——频道、播放列表、图片、联播目标等。


功能特性

  • 基于 StdIO 的 MCP 服务器

    • 通过标准输入/输出使用 模型上下文协议 进行通信。
    • 设计为由 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/ 下的每个工具对应一个或多个 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 文件描述的条款进行许可。请查阅该文件以获取完整文本。