Skip to main content
Glama
DualStream

DualStream MCP Server

by DualStream

DualStream MCP Server

Unser erstes Open-Source-Projekt! Der offizielle Model Context Protocol-Server für DualStream, das Streaming-Studio, das Desktop- (16:9) und Mobile-Streams (9:16) gleichzeitig aus einer einzigen Pipeline produziert.

Dieser Server ermöglicht es KI-Assistenten wie Claude, dein DualStream-Studio zu bedienen: Szenen wechseln, Instant-Replay-Clips speichern, komplette Szenenlayouts von Grund auf erstellen, deine Alerts und Widgets neu gestalten und auf das reagieren, was im Stream passiert. Alles läuft lokal auf deinem Rechner, mit deiner ausdrücklichen Zustimmung, und jede Änderung wird auf deinen Desktop- und Mobile-Canvases gerendert.

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

Was du erfragen kannst

Sobald die Verbindung steht, sprichst du in natürlicher Sprache mit deinem Assistenten:

  • „Wechsle zu meiner BRB-Szene"

  • „Schneide die letzten 30 Sekunden als Clip"

  • „Erstelle eine Szene namens MAIN mit meiner Webcam unten rechts, kreisförmig beschnitten, und meinem primären Display als Vollbild dahinter"

  • „Erstelle mir eine Gleich-geht's-los-Szene für einen Charity-Stream in meinen Markenfarben, auf beiden Canvases"

  • „Gestalte meine Alerts passend zu dieser Palette neu"

  • „Bewege die Kamera ein Stück nach oben und gib ihr einen weichen Schatten"

Der Assistent erkennt deine tatsächliche Hardware (Kameras, Capture Cards, Displays, Fenster, Mikrofone), erstellt Layouts für die Desktop- und Mobile-Canvases unabhängig voneinander und arbeitet mit dir iterativ, bis es richtig aussieht.

Related MCP server: ATEM MCP Server

Bevor du loslegst

Du brauchst drei installierte Dinge. Jedes ist ein normaler Download-und-Installieren-Installer:

  1. Die DualStream-Desktop-App (Windows oder macOS): das Studio, das dieser Server steuert.

  2. Node.js: Wähle den großen grünen LTS-Button (Version 22 oder neuer). Das ist die Laufzeitumgebung, die den Server ausführt; du wirst nicht direkt mit ihr interagieren.

  3. Einen KI-Assistenten, der MCP unterstützt, wie Claude Desktop oder die Claude CLI.

Installation

Schritt 1: Dieses Projekt auf deinen Computer holen

Klicke oben auf dieser GitHub-Seite auf den grünen Code-Button und wähle Download ZIP, dann entpacke es an einen Ort, den du dir merkst, zum Beispiel in deinen Dokumente-Ordner. (Wenn du dich mit git auskennst, funktioniert git clone auch.)

Schritt 2: Es bauen

Öffne ein Terminal im entpackten Ordner:

  • Windows: Öffne den Ordner im Datei-Explorer, klicke auf die Adressleiste, tippe cmd und drücke Enter.

  • macOS: Klicke mit der rechten Maustaste auf den Ordner und wähle Neues Terminal im Ordner (oder ziehe den Ordner auf das Terminal).

Dann führe diese beiden Befehle nacheinander aus:

npm install
npm run build

Jeder gibt etwas Text aus und kehrt zur Eingabeaufforderung zurück. Das war's; der Server ist gebaut.

Schritt 3: Deinem Assistenten davon erzählen

Du brauchst den vollständigen Pfad zum Ordner aus Schritt 1. Im Windows-Datei-Explorer klickst du auf die Adressleiste und kopierst ihn (er sieht aus wie C:\Users\du\Documents\DualStreamMCP). Auf macOS klickst du mit der rechten Maustaste auf den Ordner, hältst die Option-Taste gedrückt und wählst Als Pfadname kopieren.

Claude Desktop: Öffne Einstellungen → Entwickler → Konfiguration bearbeiten und füge Folgendes hinzu (ersetze den Pfad durch deinen; unter Windows verwende doppelte Backslashes wie gezeigt):

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

Claude CLI: ein Befehl (ersetze den Pfad durch deinen):

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

Jeder andere MCP-Client funktioniert genauso: Führe node <Ordner>/dist/index.js als stdio-Server aus.

Schritt 4: Hallo sagen

Starte deinen Assistenten neu, stelle sicher, dass DualStream läuft, und frage: „Auf welcher Szene bin ich gerade live in DualStream?" Beim ersten Mal zeigt DualStream einen Genehmigungsdialog an; das ist das Sicherheitsmodell in Aktion (siehe unten). Genehmige es, und du bist fertig.

Erste Verbindung und Sicherheit

Die DualStream-App führt einen kleinen Steuerungsserver aus, der nur an 127.0.0.1 gebunden ist. Es ist nichts aus dem Netzwerk erreichbar, und dieser MCP-Server muss auf demselben Rechner wie die App laufen. Es gibt keine Cloud-Komponente: Die Intelligenz ist der KI-Assistent, den du verbindest, und dein Stream verlässt nie deine Kontrolle.

Das Pairing ist automatisch. Die App veröffentlicht ein Pairing-Token in ihrem Konfigurationsverzeichnis, und dieser Server nimmt es selbst auf; du musst nie ein Passwort eingeben. Wenn sich ein Assistent zum ersten Mal verbindet, zeigt DualStream einen Zustimmungsdialog an, der den Client benennt. Du wählst Erlauben, Immer erlauben oder Ablehnen. Bis du zustimmst, kann die Verbindung nichts tun. Du kannst jeden verbundenen Client sehen, jeden davon trennen und gespeicherte Genehmigungen jederzeit unter Einstellungen, Allgemein, Externe Steuerung in der App widerrufen.

Wenn du eine Verbindung ablehnst, schließt der Server sie. Wenn du das Pairing-Token in den Einstellungen der App zurücksetzt, werden alle verbundenen Clients getrennt und müssen sich erneut paaren.

Tools

Szenen und Clips

Tool

Beschreibung

get_scenes

Alle Szenen auflisten.

get_active_scene

Die aktuell live Szene oder null.

activate_scene

Wechselt die Live-Ausgabe zu einer Szene, per ID oder Name.

get_state_snapshot

Vollständiger Szenenzustand in einem Aufruf; der Resync-Anker.

trigger_clip

Speichert die letzten N Sekunden als Clip-Paar (eine horizontale und eine vertikale Datei).

get_recent_events

Abrufen gepufferter App-Ereignisse (Szenenwechsel, gespeicherte Clips, weitergeleitete Stream-Ereignisse) mit Sequenznummern.

get_connection_status

Ob die App erreichbar ist, App-Version und der Genehmigungsstatus dieser Verbindung.

wait_for_event

Blockiert, bis das nächste Ereignis eintrifft (oder gibt gepufferte sofort zurück). Die Live-Reaktions-Primitive hinter Automatisierungen.

Szenenkomposition

Erstelle und bearbeite Szenen Quelle für Quelle. Layouts auf den Desktop- (1920x1080) und Mobile-Canvases (1080x1920) werden unabhängig gesteuert, sodass eine kleine runde Facecam auf dem Desktop eine breite quadratische Kamera auf dem Mobile sein kann.

Tool

Beschreibung

list_devices

Kameras, Capture-Cards, Displays, Fenster und Audio-Eingänge auflisten, bereit zum Hinzufügen.

create_scene

Neue Szene erstellen, optional mit Wechsel zu ihr.

list_sources

Die Quellen in einer Szene mit ihrem Layout pro Canvas.

add_source

Kamera, Display, Fenster oder Audio-Gerät zu einer Szene hinzufügen.

remove_source

Eine Quelle entfernen.

set_source_transform

Position und Größe einer Quelle, pro Canvas.

set_source_crop

Pixel von den Rändern einer Quelle abschneiden.

set_source_shape

Eine Quelle zu einem Kreis, Squircle oder abgerundeten Rechteck maskieren.

set_source_effects

Rahmen, Schatten, Glow oder Weichzeichner anwenden.

set_source_order

Ebenenreihenfolge ändern (nach vorne, nach hinten, nach oben, nach unten).

Rezepte

Rezepte sind DualStreams teilbare Szenenvorlagen: ein Hintergrund plus positionierte Quellen für beide Canvases, als JSON auf der Festplatte gespeichert.

Tool

Beschreibung

list_recipes

Installierte Rezepte auflisten.

apply_recipe

Live-Szene aus einem Rezept erstellen oder in eine bestehende Szene einfügen.

save_recipe

Ein brandneues Rezept aus einem Manifest erstellen und in deiner Bibliothek speichern.

Widgets

Tool

Beschreibung

get_widget_settings

Aktuelle Einstellungen des Alert-Box, Chat-Box, Ziel-Trackers oder Prediction-Trackers lesen.

update_widget_settings

Neue Einstellungen anwenden. Lese- und Schreibvorgänge verwenden dieselbe Form, sodass ein Assistent abrufen, ändern und zurücksenden kann.

AI Card

Tool

Beschreibung

post_card

Eine kurze Karte auf den Stream posten (ein Titel und eine optionale Nachricht), gerendert vom Alert-System mit dem von dir konfigurierten Stil. Der AI-Card-Alert-Typ ist standardmäßig deaktiviert; aktiviere ihn im Alert-Inspektor, um das Posten zu erlauben.

Automatisierungen

Automatisierungen kombinieren einen Stream-Ereignis-Trigger (einen Raid, einen großen Cheer, ein Hype-Train-Ende) mit einer dauerhaften Anweisung für deinen Assistenten. Wenn ein passendes Ereignis eintritt, leitet DualStream es mit deiner Anweisung an den Assistenten weiter; der Assistent erstellt und postet die Karte. Nur Ereignisse, die einer aktivierten Automatisierung entsprechen, verlassen die App, und der Assistent hört nur zu, während du eine Sitzung offen hast. Das vollständige Dokumentformat, das Ereignisvokabular und der Ablauf für die Probe sind in contract/automations-v1.md beschrieben.

Tool

Beschreibung

list_automations

Deine gespeicherten Automatisierungen und ihre dauerhaften Anweisungen.

save_automation

Automatisierung erstellen oder aktualisieren; passende Ereignisse werden sofort weitergeleitet.

delete_automation

Automatisierung entfernen.

Eine typische Live-Sitzung: Sag deinem Assistenten, dass du live gehst; er liest deine Automatisierungen und schleift dann in wait_for_event; das Warten kostet nichts, und jedes behandelte Ereignis ist ein kurzer Austausch (die Raider begrüßen, den Wal danken, die Karte posten).

Tool-Fehler sind strukturiertes JSON mit einem retryable-Flag, damit Assistenten den Unterschied zwischen „Versuche es in einer Sekunde noch einmal" (Replay-Puffer wärmt sich noch auf, Verbindung wartet auf deine Genehmigung) und „Etwas ist tatsächlich falsch" kennen.

Konfiguration

Alles funktioniert ohne Konfiguration, wenn die App und dieser Server unter demselben Benutzerkonto laufen. Diese Umgebungsvariablen existieren für ungewöhnliche Einrichtungen:

Variable

Zweck

Standard

DUALSTREAM_MCP_CLIENT_NAME

Der Name, der im Zustimmungsdialog und in der Client-Liste von DualStream angezeigt wird

claude-mcp

DUALSTREAM_CONTROL_PASSWORD

Fallback-Anmeldedaten, wenn die App kein Pairing-Token veröffentlicht

nicht gesetzt

DUALSTREAM_WS_CONTROL_FILE

Pfad der Discovery-Datei überschreiben

Plattform-Konfigurationsverzeichnis

DUALSTREAM_MCP_LOG_LEVEL

error, warn, info oder debug

info

Discovery liest ws-control.json aus dem Konfigurationsverzeichnis der App (%APPDATA%\app.dualstream.io\ unter Windows, ~/Library/Application Support/app.dualstream.io/ unter macOS). Die App schreibt diese Datei bei jedem Start, bevor der Control-Server seine Bereitschaft meldet.

Fehlerbehebung

Tools geben app_not_running zurück. Die DualStream-App ist nicht geöffnet oder hat den Start noch nicht abgeschlossen. Starten Sie die App; der Server verbindet sich von selbst neu, sobald die App läuft.

Tools geben consent_pending zurück. Die Verbindung wartet auf Sie. Bestätigen Sie die Verbindung in der Zustimmungsaufforderung in DualStream (oder unter Einstellungen, Allgemein, Externe Steuerung).

Tools geben authentication_required oder authentication_failed zurück. Die App hat Authentifizierung aktiviert, aber dieser Server konnte das Token nicht abrufen. Stellen Sie sicher, dass die App und der Server unter demselben Benutzer ausgeführt werden. Wenn Sie kürzlich das Pairing-Token zurückgesetzt haben, übernimmt die Wiederverbindung das automatisch; ein veraltetes DUALSTREAM_CONTROL_PASSWORD in Ihrer Umgebung kann dies ebenfalls verursachen.

Sonst stimmt etwas nicht. Rufen Sie zuerst get_connection_status auf; es unterscheidet „app not running“ von Authentifizierungs-, Zustimmungs- und Protokollproblemen. Der Server protokolliert einzeiliges JSON auf stderr; setzen Sie DUALSTREAM_MCP_LOG_LEVEL=debug, um Details zu erhalten.

Designhinweise

  • Bewusst lokal. Die Steuerungsebene ist ausschließlich auf Loopback beschränkt. Ein gehosteter oder entfernter Connector kann sie nicht erreichen – und sollte es auch nie.

  • Ereignisgesteuert, keine Timer. Laufende Anfragen werden nur durch eine Serverantwort oder das Schließen des Sockets abgeschlossen, niemals durch ein Timeout auf Basis der Wanduhrzeit. Die Wiederverbindung wird durch die Überwachung der Discovery-Datei ausgelöst, die die App beim Start neu schreibt; es gibt keine Polling-Schleifen.

  • stdout ist der Protokollkanal. Die gesamte Protokollierung erfolgt als einzeiliges JSON auf stderr.

  • An den Vertrag gebunden. Antworten werden gegen den mitgelieferten Control-Vertrag validiert (siehe contract/); eine App, die eine neuere Protokollversion spricht, schlägt lautstark mit einer Upgrade-Meldung fehl, anstatt sich stillschweigend falsch zu verhalten.

  • Zustimmung wird serverseitig erzwungen. Das Genehmigungs-Gate befindet sich in der DualStream-App, nicht in diesem Paket; ein modifizierter Client hat nichts davon.

Das Verzeichnis contract/ enthält außerdem Authoring-Referenzen, die ein Assistent direkt verwenden kann: das Rezept-Manifest-Format, den Leitfaden zur Szenenkomposition (einschließlich Layoutmustern für das mobile Canvas), das Automationsformat und PROTOCOL.md: eine vollständige Referenz zu Methoden, Ereignissen und Fehlercodes, die aus der Vertrags-Fixture generiert wurde.

Entwicklung

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)

Der Mock-Control-Server in test/ implementiert das echte Wire-Protokoll, einschließlich des Pairing-Handshakes und des Zustimmungsablaufs, mit einer unabhängigen Implementierung des Authentifizierungsalgorithmus, sodass die Testsuite den Client wirklich gegenprüft.

Über DualStream

DualStream ist ein Streaming-Studio für Creator, die gleichzeitig auf Desktop- und Mobilplattformen live gehen: eine Pipeline, zwei Canvases, jede Szene und jedes Widget nativ für beide gerendert. Laden Sie es für Windows oder macOS unter dualstream.gg herunter.

Lizenz

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