Skip to main content
Glama
DualStream

DualStream MCP Server

by DualStream

DualStream MCP Server

私たちの最初のオープンソースプロジェクト!

DualStream 公式の Model Context Protocol サーバーです。DualStream は、単一のパイプラインからデスクトップ(16:9)とモバイル(9:16)のストリームを同時に生成するストリーミングスタジオです。

このサーバーにより、Claude などの AI アシスタントが DualStream スタジオを操作できるようになります:シーンの切り替え、インスタントリプレイクリップの保存、シーンレイアウトのゼロからの構築、アラートやウィジェットの再スタイル、配信中に起こる出来事へのリアクションなどです。すべてはあなたのマシン上でローカルに実行され、明示的な承認のもとで行われ、すべての変更はデスクトップとモバイルの両方のキャンバスに反映されます。

AI assistant (Claude Code, Claude Desktop, or any MCP client)
        |  MCP over stdio
        v
DualStream MCP server  (this package)
        |  JSON-RPC over WebSocket, 127.0.0.1 only
        v
DualStream desktop app

依頼できること

接続すると、あなたはアシスタントに自然言語で話しかけます:

  • 「BRB シーンに切り替えて」

  • 「最後の 30 秒をクリップして」

  • 「MAIN というシーンを作って。ウェブカメラを右下に円形にクロップして配置し、その背後にプライマリディスプレイを全画面で表示して」

  • 「チャリティ配信用の「まもなく開始」シーンをブランドカラーで作って。両方のキャンバスで」

  • 「このパレットに合わせてアラートを再スタイルして」

  • 「カメラを少し上に動かして、柔らかい影をつけて」

アシスタントは実際のハードウェア(カメラ、ディスプレイ、ウィンドウ、マイク)を検出し、デスクトップとモバイルのキャンバス用のレイアウトを独立して構成し、見た目が良くなるまであなたとやり取りを重ねます。

Related MCP server: ATEM MCP Server

始める前に

3 つのものをインストールする必要があります。どれも通常のダウンロード&実行インストーラーです。

  1. DualStream デスクトップアプリ(Windows または macOS):このサーバーが制御するスタジオです。

  2. Node.js:大きな緑の LTS ボタン(バージョン 22 以降)を選んでください。これはサーバーを実行するランタイムです。直接操作する必要はありません。

  3. MCP をサポートする AI アシスタントClaude DesktopClaude CLI など)。

インストール

ステップ 1:このプロジェクトをコンピュータに取得する

この GitHub ページの上部にある緑の Code ボタンをクリックし、Download ZIP を選択して、覚えやすい場所(たとえばドキュメントフォルダ)に解凍します。(git に慣れている場合は git clone でも構いません。)

ステップ 2:ビルドする

解凍したフォルダ内でターミナルを開きます:

  • Windows: エクスプローラーでフォルダを開き、アドレスバーをクリックして cmd と入力し、Enter を押します。

  • macOS: フォルダを右クリックして New Terminal at Folder を選択します(またはフォルダをターミナルにドラッグします)。

次に、次の 2 つのコマンドを順番に実行します:

npm install
npm run build

それぞれがテキストを出力してプロンプトに戻ります。これでサーバーのビルドは完了です。

ステップ 3:アシスタントにサーバーを教える

ステップ 1 のフォルダへの完全なパスが必要です。Windows のエクスプローラーでは、アドレスバーをクリックしてコピーします(C:\Users\you\Documents\DualStreamMCP のような形式です)。macOS では、フォルダを右クリックし、Option キーを押しながら Copy as Pathname を選択します。

Claude DesktopSettings → Developer → Edit Config を開き、以下を追加します(パスは自分のものに置き換えてください。Windows では、表示されているように二重バックスラッシュを使用します):

{
  "mcpServers": {
    "dualstream": {
      "command": "node",
      "args": ["C:\\Users\\you\\Documents\\DualStreamMCP\\dist\\index.js"]
    }
  }
}

Claude CLI:1 つのコマンドで設定します(パスは自分のものに置き換えてください):

claude mcp add dualstream -- node "C:\Users\you\Documents\DualStreamMCP\dist\index.js"

他の MCP クライアントも同様に、node <folder>/dist/index.js を stdio サーバーとして実行します。

ステップ 4:挨拶してみる

アシスタントを再起動し、DualStream が実行されていることを確認して、次のように尋ねてみてください:「DualStream で現在どのシーンがライブですか?」 初回は DualStream が承認プロンプトを表示します。これはセキュリティモデルが機能している証拠です(下記参照)。承認すれば完了です。

初回接続とセキュリティ

DualStream アプリは 127.0.0.1 にのみバインドされた小さな制御サーバーを実行します。ネットワークから到達できるものは何もなく、この MCP サーバーはアプリと同じマシンで実行する必要があります。クラウドコンポーネントはありません。インテリジェンスは接続する AI アシスタントが担い、あなたのストリームがあなたの管理外に出ることはありません。

ペアリングは自動です。アプリは設定ディレクトリにペアリングトークンを公開し、このサーバーが自動的にそれを取得します。パスワードを入力する必要はありません。アシスタントが初めて接続すると、DualStream はクライアント名を示す同意プロンプトを表示します。あなたは「許可」「常に許可」「拒否」のいずれかを選択します。承認するまで、接続は何もできません。接続中のすべてのクライアントを確認し、任意のクライアントを切断し、記憶された承認をいつでも取り消すことができます。アプリの Settings, General, External Control で行えます。

接続を拒否すると、サーバーは接続を閉じます。アプリの設定でペアリングトークンをリセットすると、接続中のすべてのクライアントが切断され、再ペアリングが必要になります。

ツール

シーンとクリップ

ツール

説明

get_scenes

すべてのシーンを一覧表示します。

get_active_scene

現在ライブ中のシーンを返します。ない場合は null。

activate_scene

ライブ出力をシーンに切り替えます(ID または名前で指定)。

get_state_snapshot

1 回の呼び出しでシーン状態の全体を取得します。再同期のアンカーです。

trigger_clip

直近 N 秒をクリップペア(横長と縦長のファイル)として保存します。

get_recent_events

バッファされたアプリイベント(シーン変更、クリップ保存、中継された配信イベント)をシーケンス番号付きでポーリングします。

get_connection_status

アプリに到達可能かどうか、アプリのバージョン、この接続の承認状態を返します。

wait_for_event

次のイベントが到着するまでブロックします(またはバッファされたイベントを即座に返します)。オートメーションの背後にあるライブリアクションのプリミティブです。

シーン構成

シーンをソース単位で構築・編集します。デスクトップ(1920x1080)とモバイル(1080x1920)のキャンバス上のレイアウトは独立して制御されるため、デスクトップでは小さな丸いフェイスカムでも、モバイルでは全幅の正方形カメラにできます。

ツール

説明

list_devices

カメラ、キャプチャカード、ディスプレイ、ウィンドウ、オーディオ入力を列挙し、追加できる状態にします。

create_scene

新しいシーンを作成します。オプションでそのシーンに切り替えます。

list_sources

シーン内のソースと、キャンバスごとのレイアウトを一覧表示します。

add_source

カメラ、ディスプレイ、ウィンドウ、またはオーディオデバイスをシーンに追加します。

remove_source

ソースを削除します。

set_source_transform

ソースの位置とサイズをキャンバスごとに設定します。

set_source_crop

ソースの端からピクセルをクロップします。

set_source_shape

ソースを円、スクィークル、または角丸長方形にマスクします。

set_source_effects

ボーダー、シャドウ、グロー、またはぼかしを適用します。

set_source_order

レイヤーの順序を変更します(前面、背面、上、下)。

レシピ

レシピは DualStream の共有可能なシーンテンプレートです。背景と、両方のキャンバスに配置されたソースで構成され、JSON としてディスクに保存されます。

ツール

説明

list_recipes

インストール済みのレシピを一覧表示します。

apply_recipe

レシピからライブシーンを構築するか、既存のシーンにレシピを適用します。

save_recipe

マニフェストから新しいレシピを作成し、ライブラリに保存します。

ウィジェット

ツール

説明

get_widget_settings

アラートボックス、チャットボックス、ゴールトラッカー、または予測トラッカーの現在の設定を読み取ります。

update_widget_settings

新しい設定を適用します。読み取りと書き込みは同じ形状を使用するため、アシスタントは取得、変更、送信を一貫して行えます。

AI カード

ツール

説明

post_card

ストリームに短いカード(タイトルと任意のメッセージ)を投稿します。設定したスタイルでアラートシステムがレンダリングします。AI カードのアラートタイプはデフォルトでオフです。投稿を許可するにはアラートインスペクターで有効にしてください。

オートメーション

オートメーションは、配信イベントのトリガー(レイド、大きなチアー、ハイプトレインの終了など)と、アシスタントへの固定指示を組み合わせます。一致するイベントが発生すると、DualStream はあなたの指示を添付してアシスタントに中継します。アシスタントはカードを作成して投稿します。有効なオートメーションに一致するイベントのみがアプリから送信され、アシスタントはセッションを開いている間だけリッスンします。完全なドキュメント形式、イベント語彙、リハーサルの流れは contract/automations-v1.md にあります。

ツール

説明

list_automations

保存済みのオートメーションとその固定指示を一覧表示します。

save_automation

オートメーションを作成または更新します。一致するイベントは即座に中継を開始します。

delete_automation

オートメーションを削除します。

典型的なライブセッション:アシスタントに配信を開始することを伝えます。アシスタントはオートメーションを読み取り、wait_for_event でループします。待機はコストがかからず、各イベントの処理は 1 回の短いやり取りで完了します(レイダーを歓迎し、大口サポーターに感謝し、カードを投稿する)。

ツールエラーは retryable フラグを持つ構造化 JSON です。アシスタントは「1 秒後に再試行」(リプレイバッファがまだ準備中、接続が承認待ち)と「実際に何かが問題」の違いを区別できます。

設定

アプリとこのサーバーが同じユーザーアカウントで実行されている場合、すべては設定なしで動作します。以下の環境変数は、特殊なセットアップ用に存在します:

変数

目的

デフォルト

DUALSTREAM_MCP_CLIENT_NAME

DualStream の同意プロンプトとクライアント一覧に表示される名前

claude-mcp

DUALSTREAM_CONTROL_PASSWORD

アプリがペアリングトークンを公開しない場合のフォールバック認証情報

未設定

DUALSTREAM_WS_CONTROL_FILE

ディスカバリーファイルのパスを上書きします

プラットフォームの設定ディレクトリ

DUALSTREAM_MCP_LOG_LEVEL

errorwarninfo、または debug

info

ディスカバリは、アプリの設定ディレクトリ(Windowsでは%APPDATA%\app.dualstream.io\、macOSでは~/Library/Application Support/app.dualstream.io/)からws-control.jsonを読み取ります。アプリは起動のたびに、コントロールサーバーが準備完了を報告する前にこのファイルを書き込みます。

トラブルシューティング

ツールがapp_not_runningを返す場合。 DualStreamアプリが開いていないか、起動が完了していません。起動してください。アプリが起動すると、サーバーは自動的に再接続します。

ツールがconsent_pendingを返す場合。 接続があなたの承認を待っています。DualStream内の同意プロンプト(または設定、一般、外部コントロール)で承認してください。

ツールがauthentication_requiredまたはauthentication_failedを返す場合。 アプリで認証が有効になっていますが、このサーバーはトークンを取得できませんでした。アプリとサーバーが同じユーザーとして実行されていることを確認してください。最近ペアリングトークンをリセットした場合、再接続が自動的に処理します。環境内の古いDUALSTREAM_CONTROL_PASSWORDもこの原因になることがあります。

その他の問題が発生している場合。 まずget_connection_statusを呼び出してください。これにより、「アプリが実行されていない」状態と、認証・同意・プロトコルの問題を区別できます。サーバーは単一行のJSONをstderrにログ出力します。詳細はDUALSTREAM_MCP_LOG_LEVEL=debugを設定してください。

設計ノート

  • 設計上ローカルのみ。 コントロールプレーンはループバックのみです。ホスト型またはリモートのコネクタは到達できず、到達すべきでもありません。

  • イベント駆動、タイマーなし。 進行中のリクエストは、サーバーの応答またはソケットのクローズによってのみ解決され、壁時計のタイムアウトでは解決されません。再接続は、アプリが起動時に書き換えるディスカバリファイルを監視することでトリガーされます。ポーリングループはありません。

  • stdoutはプロトコルチャネル。 すべてのログは単一行のJSONとしてstderrに出力されます。

  • コントラクトに固定。 応答はベンダー提供のコントロールコントラクト(contract/を参照)に対して検証されます。新しいプロトコルバージョンを使用するアプリは、静かに誤動作するのではなく、アップグレードメッセージとともに明示的に失敗します。

  • 同意はサーバー側で強制。 承認ゲートはこのパッケージではなくDualStreamアプリにあります。改変されたクライアントは何も得られません。

contract/ディレクトリには、アシスタントが直接使用できるオーサリングリファレンスも含まれています。レシピマニフェスト形式、シーン構成ガイド(モバイルキャンバスのレイアウトパターンを含む)、オートメーション形式、およびPROTOCOL.md(コントラクトフィクスチャから生成された完全なメソッド・イベント・エラーコードリファレンス)です。

開発

npm run typecheck   # strict TypeScript over src and tests
npm test            # unit + full MCP round-trips against a wire-faithful mock of the app
npm run build       # emit dist/
npm run smoke       # live end-to-end against a running DualStream app
                    # (switches a scene and back, saves one 10-second clip pair)

test/内のモックコントロールサーバーは、ペアリングハンドシェイクと同意フローを含む実際のワイヤプロトコルを、認証アルゴリズムの独立した実装とともに実装しているため、テストスイートはクライアントを真に相互検証します。

DualStreamについて

DualStreamは、デスクトップとモバイルのプラットフォームで同時にライブ配信するクリエイター向けのストリーミングスタジオです。1つのパイプライン、2つのキャンバス、すべてのシーンとウィジェットが両方にネイティブにレンダリングされます。WindowsまたはmacOS用はdualstream.ggからダウンロードできます。

ライセンス

Apache-2.0

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Enables management of multi-platform streaming through the Restream API, allowing control of streaming channels, stream settings, and access to analytics across platforms like YouTube, Twitch, and Facebook through natural language.
    9
    12
    1
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Exposes WAVE streaming APIs as tools for AI assistants to manage live streams, studio productions, and real-time analytics. It enables users to control stream lifecycles, monitor health metrics, and access billing usage through the Model Context Protocol.
    18
    204
    1
    Apache 2.0
  • F
    license
    A
    quality
    C
    maintenance
    Enables AI agents to read, control, and orchestrate Singular.live live broadcast graphics compositions, including filling control nodes, animating sub-compositions, and running a newsroom rundown-to-graphics workflow.
    25

View all related MCP servers

Related MCP Connectors

  • Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.

  • Create, test, publish, and manage Dreamlit notification workflows from AI clients.

  • Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DualStream/DualStreamMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server