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 アシスタントを 1 つの URL に接続するだけで、チャンネルの操作、配信の開始と停止、再生キューの並べ替え、メディアライブラリの検索、スケジュールの作成、マルチストリーム配信先の管理ができます。
これはリモートサーバーです。インストールも、npm パッケージも、ローカルプロセスも必要ありません。公開されている Upstream API と 1 対 1 で対応しているため、各ツールは 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 から削除できます。
カスタムリクエストヘッダーに対応するクライアントでは、Personal Access Token を引き続き Profile → API Keys から利用できます。クライアントごとに専用のキーを作成し、クライアントのシークレット設定に保存してください。既存の API キー接続も引き続き利用できます。
どちらの方法でも、データを変更または削除する操作を含め、アカウントで利用可能な MCP ツールにアクセスできます。OAuth の mcp:use スコープは読み取り専用モードではありません。クライアントの承認確認を有効にし、まずは読み取り専用のリクエストから始めてください。
従来の
X-Upstream-Api-Keyヘッダーも引き続き使用できます。新しい API キー接続では、Authorization: Bearerを送信してください。
接続
ChatGPT
- アカウントとワークスペースで許可されている場合は、Settings → Security and login で開発者モードを有効にします。
- 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 を実行し、すでに設定されているほかのサーバーはそのままにして、mcp.json に Upstream を追加します。
{
"servers": {
"upstream": {
"type": "http",
"url": "https://studio.upstream.so/mcp"
}
}
}
サーバー設定から Upstream を起動し、認証プロンプトに従います。Upstream にサインインしてアクセスを承認してください。VS Code が OAuth 設定を自動で検出するため、API キーやクライアントシークレットは不要です。VS Code の MCP ガイドをご覧ください。
Kimi Code
他の設定済みサーバーがある場合はそのまま残し、~/.kimi-code/mcp.json に Upstream を追加します。
{
"mcpServers": {
"upstream": {
"url": "https://studio.upstream.so/mcp"
}
}
}
新しい Kimi Code セッションを開始し、/mcp-config login upstream を実行します。Upstream にサインインしてアクセスを承認したら、/mcp を実行して接続を確認します。/mcp-config を使ってサーバーを対話形式で追加することもできます。Kimi Code MCP guide をご覧ください。
既存の接続を 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 | 1 つのキューに含まれる項目を順番どおりに取得します。 |
add_to_stream_queue | メディア UUID をキューに追加します。external-videos の場合は {url, name} オブジェクトを追加します。 |
remove_from_stream_queue | 1 つの項目を削除します。メディアファイル自体は削除されません。 |
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 時間有効なトークンを返し、アシスタント自身のシェルがバイトデータを転送します。
可能な場合は、バッチごとに 1 つのチケットを再利用してください。新しいチケットを発行すると、進行中のアップロードを取り消さずに、同じグループのチケットが更新されます。アクティブなチケットを無効にするには revoke_upload_tickets を使用してください。複数の言語で実行可能な例は、upstream-upload-examples にあります。
レート制限とエラー
ツールの呼び出しには、アカウントごとに REST API の 60 リクエスト/分 の上限が適用されます。HTTP 429 が返された場合は、リクエスト間隔を空けてください。
リソースにアクセスできるのは、トークンのアカウントに属するものだけです。他のアカウントの ID を指定すると 403 が返され、存在しない ID を指定すると 404 が返されます。破壊的な操作を行うツールには MCP アノテーションが付いているため、確認画面を表示するクライアントでは、削除や停止の前に確認が求められます。
リファレンス
Upstream について
Upstream では、OBS や電源を入れたままにしておく自分のマシンを使わずに、ライブ動画をクラウドで配信できます。
- 24 時間 365 日のライブ配信 — ライブラリーを、途切れることのないチャンネルとしてループ再生します
- 録画済み動画のライブ配信 — 完成した動画をライブ配信するようスケジュールします
- Live Studio — 最大 10 人のゲストに対応したブラウザーでの映像制作
- マルチストリーミング — YouTube、Twitch、Kick、TikTok などに 1 つの映像を配信します
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。