关于 Upstream.so
Upstream.so 的远程 MCP 服务让 AI 助手管理其云端直播平台的频道,涵盖直播流、媒体、播放队列、日程和多平台转播目标,并遵循公共 API 的验证和账户规则。
主要功能
- 01启动、停止和配置直播流
- 02管理媒体与播放队列
- 03搜索和整理媒体文件夹
- 04安排直播开始与结束时间
- 05管理多平台转播目标
适用场景
- 01运营持续直播频道
- 02安排预录内容直播
- 03调整直播流中的媒体顺序
- 04管理直播流的转播目标
MCP 相关
通过 Streamable HTTP 将 MCP 客户端连接到 `https://studio.upstream.so/mcp`,提供直播流、媒体、队列、日程、文件夹和转播目标管理工具,并使用 OAuth 或 API 密钥认证。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://studio.upstream.so/mcpclaude mcp add --transport http so-upstream-upstream https://studio.upstream.so/mcp{"mcpServers":{"so-upstream-upstream":{"type":"http","url":"https://studio.upstream.so/mcp"}}}在 Cursor 中打开{"servers":{"so-upstream-upstream":{"type":"http","url":"https://studio.upstream.so/mcp"}}}在 VS Code 中打开{"mcpServers":{"so-upstream-upstream":{"type":"http","url":"https://studio.upstream.so/mcp"}}}{"mcpServers":{"so-upstream-upstream":{"serverUrl":"https://studio.upstream.so/mcp"}}}命令在终端中运行;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 │
└────────────────────┘
端点
| URL | https://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
- 如果你的账户和工作区允许,请在 Settings → Security and login 中启用 Developer mode。
- 打开 Plugins,选择加号按钮,并将连接命名为 Upstream。
- 输入
https://studio.upstream.so/mcp。出现提示时,选择 OAuth 身份验证。 - 在 Upstream 登录,查看授权页面,并批准连接。
- 开始新的对话,并从工具菜单中选择 Upstream。
此方式使用自定义 MCP 连接,无需发布 ChatGPT 应用。有关当前可用性和设置,请参阅 OpenAI 的连接指南。
Claude
- 打开 Customize → Connectors,然后选择 + → Add custom connector。
- 将其命名为 Upstream,并输入
https://studio.upstream.so/mcp。 - 添加连接器,选择 Connect,然后在 Upstream 登录以查看并批准访问权限。
- 在对话的 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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。