Skip to main content
Glama
DualStream

DualStream MCP Server

by DualStream

DualStream MCP Server

Наш первый проект с открытым исходным кодом! Официальный сервер Model Context Protocol для DualStream — студии стриминга, которая одновременно создаёт потоки для десктопа (16:9) и мобильных устройств (9:16) из единого конвейера.

Этот сервер позволяет ИИ-ассистентам, таким как Claude, управлять вашей студией 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

Перед началом работы

Вам понадобятся три установленных компонента. Каждый — обычный установщик «скачай и запусти»:

  1. Приложение DualStream (Windows или macOS): студия, которой управляет этот сервер.

  2. Node.js: выберите большую зелёную кнопку LTS (версия 22 или новее). Это среда выполнения, в которой работает сервер; напрямую вы с ней взаимодействовать не будете.

  3. ИИ-ассистент, поддерживающий MCP, например Claude Desktop или Claude CLI.

Установка

Шаг 1: Скачайте этот проект на свой компьютер

Нажмите зелёную кнопку Code в верхней части этой страницы GitHub и выберите Download ZIP, затем распакуйте архив в место, которое вы запомните, например в папку «Документы». (Если вы знакомы с git, подойдёт и git clone.)

Шаг 2: Соберите проект

Откройте терминал в распакованной папке:

  • Windows: откройте папку в проводнике, щёлкните по адресной строке, введите cmd и нажмите Enter.

  • macOS: щёлкните правой кнопкой мыши по папке и выберите New Terminal at Folder (или перетащите папку на значок Terminal).

Затем выполните эти две команды одну за другой:

npm install
npm run build

Каждая выводит текст и возвращает приглашение. Всё, сервер собран.

Шаг 3: Сообщите о нём своему ассистенту

Вам понадобится полный путь к папке из шага 1. В проводнике Windows щёлкните по адресной строке и скопируйте его (выглядит как C:\Users\you\Documents\DualStreamMCP). На macOS щёлкните правой кнопкой мыши по папке, удерживая Option, и выберите Copy as Pathname.

Claude Desktop: откройте Settings → Developer → Edit Config и добавьте следующее (замените путь на свой; в Windows используйте двойные обратные слэши, как показано):

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

Claude CLI: одна команда (замените путь на свой):

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-сервер должен работать на той же машине, что и приложение. Облачных компонентов нет: интеллект — это тот ИИ-ассистент, которого вы подключаете, а ваш стрим никогда не выходит из-под вашего контроля.

Сопряжение автоматическое. Приложение публикует токен сопряжения в своём каталоге конфигурации, и этот сервер подхватывает его сам; вам никогда не нужно вводить пароль. При первом подключении ассистента DualStream показывает запрос на согласие с указанием имени клиента. Вы выбираете «Разрешить», «Всегда разрешать» или «Запретить». Пока вы не одобрите, подключение не может ничего делать. Вы можете видеть каждого подключённого клиента, отключать любого из них и отзывать сохранённые разрешения в любой момент в разделе Settings, General, External Control приложения.

Если вы запрещаете подключение, сервер закрывает его. Если вы сбросите токен сопряжения в настройках приложения, все подключённые клиенты будут отключены и должны будут сопрягаться заново.

Инструменты

Сцены и клипы

Инструмент

Описание

get_scenes

Список всех сцен.

get_active_scene

Текущая активная сцена или null.

activate_scene

Переключить живой выход на сцену по id или имени.

get_state_snapshot

Полное состояние сцены одним вызовом; якорь для повторной синхронизации.

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 Card

Инструмент

Описание

post_card

Опубликовать короткую карточку в стриме (заголовок и необязательное сообщение), отображаемую системой алертов с настроенным вами стилем. Тип алерта AI Card по умолчанию выключен; включите его в инспекторе алертов, чтобы разрешить публикацию.

Автоматизации

Автоматизации связывают триггер события стрима (рейд, крупный донат, завершение хайп-поезда) с постоянной инструкцией для вашего ассистента. Когда происходит подходящее событие, DualStream передаёт его ассистенту вместе с вашей инструкцией; ассистент составляет и публикует карточку. Только события, соответствующие включённой автоматизации, когда-либо покидают приложение, и ассистент слушает только пока у вас открыта сессия. Полный формат документа, словарь событий и процесс репетиции описаны в contract/automations-v1.md.

Инструмент

Описание

list_automations

Ваши сохранённые автоматизации и их постоянные инструкции.

save_automation

Создать или обновить автоматизацию; подходящие события начинают передаваться немедленно.

delete_automation

Удалить автоматизацию.

Типичная живая сессия: сообщите ассистенту, что вы выходите в эфир; он читает ваши автоматизации, затем зацикливается на wait_for_event; ожидание ничего не стоит, и каждое обработанное событие — это один короткий обмен (поприветствовать рейдеров, поблагодарить кита, опубликовать карточку).

Ошибки инструментов — это структурированный JSON с флагом retryable, поэтому ассистенты понимают разницу между «попробуй ещё через секунду» (буфер повторов ещё прогревается, подключение ждёт вашего одобрения) и «что-то действительно не так».

Конфигурация

Всё работает без какой-либо настройки, когда приложение и этот сервер запущены под одной учётной записью пользователя. Эти переменные окружения существуют для нестандартных ситуаций:

Переменная

Назначение

По умолчанию

DUALSTREAM_MCP_CLIENT_NAME

Имя, отображаемое в запросе согласия и списке клиентов DualStream

claude-mcp

DUALSTREAM_CONTROL_PASSWORD

Запасные учётные данные, если приложение не публикует токен сопряжения

не задано

DUALSTREAM_WS_CONTROL_FILE

Переопределить путь к файлу обнаружения

каталог конфигурации платформы

DUALSTREAM_MCP_LOG_LEVEL

error, warn, info или debug

info

Discovery читает ws-control.json из каталога конфигурации приложения (%APPDATA%\app.dualstream.io\ в Windows, ~/Library/Application Support/app.dualstream.io/ в macOS). Приложение записывает этот файл при каждом запуске, до того как сервер управления сообщит о готовности.

Устранение неполадок

Инструменты возвращают app_not_running. Приложение DualStream не открыто или ещё не завершило запуск. Запустите его; сервер переподключится сам, как только приложение поднимется.

Инструменты возвращают consent_pending. Соединение ожидает вашего подтверждения. Одобрите его в окне запроса согласия внутри DualStream (или в разделе Settings, General, External Control).

Инструменты возвращают authentication_required или authentication_failed. В приложении включена аутентификация, но этот сервер не смог получить токен. Убедитесь, что приложение и сервер запущены от имени одного пользователя. Если вы недавно сбросили парный токен, переподключение обработает это автоматически; устаревший DUALSTREAM_CONTROL_PASSWORD в вашем окружении также может вызывать эту ошибку.

Что-то ещё не так. Сначала вызовите get_connection_status; он различает «приложение не запущено», проблемы аутентификации, согласия и протокола. Сервер пишет однострочный JSON в stderr; установите DUALSTREAM_MCP_LOG_LEVEL=debug для подробностей.

Заметки по дизайну

  • Локальность по замыслу. Плоскость управления работает только через loopback. Удалённый или размещённый на хостинге коннектор не может до неё добраться — и не должен.

  • Событийная модель, без таймеров. Выполняющиеся запросы завершаются только по ответу сервера или закрытию сокета, никогда по таймауту настенных часов. Переподключение запускается наблюдением за файлом discovery, который приложение перезаписывает при старте; никаких циклов опроса.

  • stdout — это канал протокола. Вся запись журнала идёт в stderr в виде однострочного JSON.

  • Привязка к контракту. Ответы проверяются по вендоренному контракту управления (см. 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 — это стриминговое студийное приложение для авторов, которые выходят в эфир одновременно на десктопных и мобильных платформах: один конвейер, два холста, каждая сцена и каждый виджет отрисовываются нативно для обеих. Скачайте его для 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