mcpField
U
Upstream.so

Upstream.so

远程服务
upstream.so媒体与设计14 周前更新

关于 Upstream.so

Upstream.so 的远程 MCP 服务让 AI 助手管理其云端直播平台的频道,涵盖直播流、媒体、播放队列、日程和多平台转播目标,并遵循公共 API 的验证和账户规则。

主要功能

  1. 01启动、停止和配置直播流
  2. 02管理媒体与播放队列
  3. 03搜索和整理媒体文件夹
  4. 04安排直播开始与结束时间
  5. 05管理多平台转播目标

适用场景

  1. 01运营持续直播频道
  2. 02安排预录内容直播
  3. 03调整直播流中的媒体顺序
  4. 04管理直播流的转播目标

MCP 相关

通过 Streamable HTTP 将 MCP 客户端连接到 `https://studio.upstream.so/mcp`,提供直播流、媒体、队列、日程、文件夹和转播目标管理工具,并使用 OAuth 或 API 密钥认证。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://studio.upstream.so/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Upstream.so — MCP 服务

面向 Upstream.so(云端直播平台)的官方 Model Context Protocol 服务。只需将 AI 助手指向一个 URL,它就能管理你的频道:启动和停止直播、重新排列播放队列、搜索媒体库、规划日程,以及管理多平台直播目的地。

这是一个远程服务——无需安装,无需 npm 包,也无需本地进程。它与公开的 Upstream API 一一对应,因此每个工具都遵循 REST 端点背后的相同验证、所有权规则和速率限制。

  ┌───────────────┐   MCP (Streamable HTTP)   ┌────────────────────┐
  │  your AI       │ ────────────────────────► │ studio.upstream.so │
  │  (Claude, ...) │ ◄──── tool results ────── │        /mcp        │
  └───────────────┘                            └─────────┬──────────┘
                                                         │ same code path
                                                         ▼
                                              ┌────────────────────┐
                                              │  Upstream API v1    │
                                              └────────────────────┘

端点

URLhttps://studio.upstream.so/mcp
传输方式Streamable HTTP
身份验证OAuth(推荐);API 密钥备用

身份验证

如果客户端支持,请使用 OAuth 连接。添加服务 URL,直接在 studio.upstream.so 登录,并查看请求的访问权限。你的 AI 客户端会收到访问令牌,而不是你的 Upstream 密码。你可以在 Profile → Connected apps 中撤销其访问权限。

对于支持自定义请求标头的客户端,仍可在 Profile → API Keys 中使用个人访问令牌。为每个客户端创建专用密钥,并将其存储在客户端的密钥设置中。现有的 API 密钥连接仍可正常使用。

两种方式都会授予你的账户访问受支持 MCP 工具的权限,包括更改或删除数据的操作。OAuth 的 mcp:use 范围并非只读模式。请启用客户端的操作批准提示,并从只读请求开始。

旧版 X-Upstream-Api-Key 标头仍然有效。新的 API 密钥连接应使用 Authorization: Bearer。

连接

ChatGPT
  1. 如果你的账户和工作区允许,请在 Settings → Security and login 中启用 Developer mode。
  2. 打开 Plugins,选择加号按钮,并将连接命名为 Upstream。
  3. 输入 https://studio.upstream.so/mcp。出现提示时,选择 OAuth 身份验证。
  4. 在 Upstream 登录,查看授权页面,并批准连接。
  5. 开始新的对话,并从工具菜单中选择 Upstream。

此方式使用自定义 MCP 连接,无需发布 ChatGPT 应用。有关当前可用性和设置,请参阅 OpenAI 的连接指南。

Claude
  1. 打开 Customize → Connectors,然后选择 + → Add custom connector。
  2. 将其命名为 Upstream,并输入 https://studio.upstream.so/mcp。
  3. 添加连接器,选择 Connect,然后在 Upstream 登录以查看并批准访问权限。
  4. 在对话的 Connectors 菜单中启用 Upstream。

自定义连接器取决于你的套餐。Team 和 Enterprise 的所有者必须先为其组织添加连接器。请参阅 Claude 自定义连接器指南。

Claude Code
claude mcp add --transport http --scope user upstream \
  https://studio.upstream.so/mcp

打开 Claude Code,运行 /mcp,然后选择 Upstream 进行身份验证。在 Upstream 登录并批准访问权限,然后再次运行 /mcp 检查连接。请参阅 Claude Code MCP 指南。

VS Code

在命令面板中运行 MCP: Open User Configuration,并将 Upstream 添加到 mcp.json,保留已配置的其他服务:

{
  "servers": {
    "upstream": {
      "type": "http",
      "url": "https://studio.upstream.so/mcp"
    }
  }
}

从服务配置中启动 Upstream,并按照身份验证提示操作。在 Upstream 登录并批准访问权限。VS Code 会自动检测 OAuth 设置;无需 API 密钥或客户端密钥。请参阅 VS Code MCP 指南。

Kimi Code

将 Upstream 添加到 ~/.kimi-code/mcp.json,并保留已配置的其他服务:

{
  "mcpServers": {
    "upstream": {
      "url": "https://studio.upstream.so/mcp"
    }
  }
}

启动新的 Kimi Code 会话并运行 /mcp-config login upstream。登录 Upstream 并批准访问权限,然后运行 /mcp 检查连接。你也可以通过 /mcp-config 以交互方式添加服务。请参阅 Kimi Code MCP 指南。

将现有连接切换为 OAuth

现有的 API 密钥连接仍可正常使用。若要切换,请从 Upstream 服务配置中移除已保存的 Authorization 请求头或 API 密钥设置,然后重新连接并按照上文中的客户端登录步骤操作。已配置的 API 密钥请求头可能会阻止客户端启动 OAuth。

API 密钥替代方案

不支持 OAuth 的脚本和客户端可以通过 Profile → API Keys 获取专用密钥。使用相同的端点,并在客户端的密钥设置中存储此请求头:

Authorization: Bearer YOUR_UPSTREAM_TOKEN

仅在这些设置中将占位符替换为你的密钥。切勿将真实密钥粘贴到提示词、共享项目配置、支持工单或目录提交内容中。

其他客户端需要远程 Streamable HTTP,以及 OAuth 或自定义请求头。OAuth 回调兼容性取决于客户端。

通过只读调用验证连接:请助手列出你的直播流。

工具

工具与公共 API 使用相同的账户所有权验证和速率限制。

直播流
工具功能说明
list_streams按时间从新到旧列出账户拥有的直播流,并支持分页。
get_stream根据 UUID 获取一个直播流:设置、状态、标签和目标平台。
create_stream创建直播流 — 名称、平台(youtube、twitch、kick、custom、customsrt)和推流密钥。
update_stream部分更新直播流;仅更改提供的字段。
delete_stream永久删除直播流及其配置。
start_stream开始向直播流的平台推流。
stop_stream停止正在运行的直播流。这会中断观众正在观看的直播。

排期是直播流的一部分,而不是单独的工具:create_stream 和 update_stream 都接受 schedule 对象,用于设置开始和结束时间、重复规则,以及具有独立运行和休息时长的连续模式。

播放队列

每个直播流都按类型分别拥有队列:video、audio、audio-secondary、external-videos。

工具功能说明
get_stream_queue获取一个队列中的有序项目。
add_to_stream_queue将媒体 UUID 添加到队列末尾 — 对于 external-videos,则添加 {url, name} 对象。
remove_from_stream_queue移除一个项目。不会删除媒体文件本身。
reorder_stream_queue使用完整的有序 ID 列表替换队列的播放顺序。
媒体库
工具功能说明
list_media列出并搜索媒体库,支持分页。可按类型、名称或文件夹筛选。
get_media获取一个文件,包括其处理状态。
update_media更新名称和音频标签(标题、艺术家、专辑、年份、流派)。
delete_media永久删除文件。引用该文件的任何队列中也会移除它。
create_upload_ticket创建 TUS 上传票据,以便客户端自行上传文件。
revoke_upload_tickets撤销账户的有效上传票据。

新上传的文件在 get_media 返回 is_processing: false 之前都处于处理中状态。只有处理完成后才能将其加入队列。

文件夹
工具功能
list_folders列出文件夹,可按父文件夹筛选。
get_folder按 UUID 获取一个文件夹。
create_folder创建文件夹,可选择在某个父文件夹中创建。
update_folder重命名文件夹,或将其移到另一个父文件夹下。
delete_folder删除文件夹及其子文件夹。文件夹中的文件会移至资料库根目录。
move_files_to_folder将最多 100 个文件移入文件夹,或移回根目录。
多平台推流目标
工具功能
list_destinations列出直播流转推至的其他平台。
add_destination添加推流目标——名称、平台、直播密钥。
update_destination部分更新推流目标。
remove_destination从直播流中移除推流目标。
标签与账户
工具功能
list_tags列出账户的标签。
create_tag创建标签。每个账户中的标签名称必须唯一。
update_tag更新标签的名称、颜色或图标。
delete_tag删除标签。直播流仍可正常运行,只是会失去该标签。
get_account获取已通过身份验证的账户信息:id、名称、电子邮件、套餐和限额。

上传文件

MCP 传输的是 JSON,而不是文件字节,因此 create_upload_ticket 会将上传交回客户端:它会返回一个 TUS 端点和一个有效期为 24 小时的令牌,再由助手自己的 shell 传输文件字节。

条件允许时,同一批次应重复使用同一个票据。创建新票据会续期同一组票据,但不会撤销正在进行的上传。使用 revoke_upload_tickets 使活动票据失效。多个语言的可运行示例见 upstream-upload-examples。

速率限制与错误

工具调用共用 REST API 的限额:每个账户 每分钟 60 个请求。收到 HTTP 429 时,请退避重试。

资源仅属于令牌对应的账户:外部账户的 id 会返回 403,未知 id 会返回 404。具有破坏性的工具带有 MCP 注释,因此会显示确认提示的客户端会在删除或停止内容前征求确认。

参考资料

关于 Upstream

Upstream 在云端运行直播视频,无需 OBS,也无需让自己的设备一直开机:

  • 7×24 小时直播 — 将资料库循环播放,打造永不掉线的频道
  • 预录直播 — 安排已完成的视频进行直播
  • Live Studio — 在浏览器中制作节目,最多支持 10 位嘉宾
  • 多平台推流 — 将一个信号流推送到 YouTube、Twitch、Kick、TikTok 等平台

许可证

MIT — 详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。