LiveReacting

com.livereactingv1.2.0更新於 Oct 2, 2026

Run a 24/7 live stream of pre-recorded videos, or live stream a recorded video at a set time.

已驗證Streamable HTTP可網頁執行Media & DesignData & AnalyticsProductivity & Workflow

概覽

AI 產生的概覽

讓助理建立影片播放清單,啟動、排程、監控與停止 LiveReacting 直播,並讀取直播分析資料。

功能
這是一個遠端、無狀態的 MCP 伺服器,以五個工具集提供 30 個工具。它能管理專案、場景以及影片或音訊播放清單圖層,啟動、停止、排程與同步直播,列出並驗證已連接的 YouTube、Facebook、Twitch、LinkedIn、X 等串流目的地,處理媒體上傳、匯入與轉碼,並回傳 YouTube 或單一影片的播放清單分析。可透過 URL 查詢參數縮小工具範圍,例如只保留 streams 與 media,或使用唯讀模式移除所有會變更內容的工具。
適用情境
當助理需要操作既有的 LiveReacting 頻道時適合安裝:例如以預錄影片進行 24/7 直播、在指定時間開播、直播中切換場景,或查看直播狀態與分析。它不用於製作文字、圖片或互動疊加層,這些仍須在 LiveReacting Studio 中完成。
執行需求
遠端 streamable HTTP 端點,不需要本機套件。需要 LiveReacting 帳號且為付費方案,因為 API 存取僅隨付費方案提供;還需在 Studio 中建立 API 金鑰,並以 Authorization 標頭傳送,格式為 Bearer 加上金鑰。支援環境變數的用戶端可從 LIVEREACTING_API_KEY 讀取金鑰,而不必寫入設定檔。
安裝前請注意
Authorization 標頭帶有 LiveReacting API 金鑰,請勿寫入會提交的設定檔。部分工具會寫入並改變直播狀態:set_playlist 是整份播放清單取代而非附加;啟動與停止直播並非幂等操作,逾時後重試可能再發起一次嘗試。上傳本機檔案需要助理把資料傳送到帶簽章的分片 URL。直播會在方案規定的最大長度停止,且無法建立僅面向 Facebook 的 24/7 頻道。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 LiveReacting,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "livereacting": {
      "type": "http",
      "url": "https://mcp.livereacting.com/mcp"
    }
  }
}

README

LiveReacting MCP server

Run live video streams from an AI agent. Build a channel from a video playlist, start it, schedule it, watch it while it runs, and read the numbers afterwards — from Claude Code, Codex, Cursor, or anything else that speaks MCP.

https://mcp.livereacting.com/mcp

Streamable HTTP. Stateless. Authenticated with your LiveReacting API key.

Full reference, with every tool, input, response field, limit and error code: developers.livereacting.com/mcp (REFERENCE.md in this repo).


Get a key

API access is included with every paid plan. Create a key in the Developer section of the LiveReacting Studio. Keys start with lr_.

With an API key, an account on the Free plan gets 403 API_ACCESS_REQUIRES_PAID_PLAN on every call. With OAuth (ChatGPT, Claude), the account can connect, and each tool call returns an error that explains the plan limit. The tools start working as soon as the plan includes API access, without connecting again.


Setup

Create the key first, put it in your shell profile as LIVEREACTING_API_KEY, then paste the config below.

Every example that cannot read that variable uses lr_… as a placeholder. Do not paste a real key into a file you commit. Where a harness supports an environment variable or a prompt, the block uses it.

Claude Code

In .mcp.json. Claude Code expands ${VAR} in a remote server's headers (docs), so the key stays out of the file:

json
{  "mcpServers": {    "livereacting": {      "type": "http",      "url": "https://mcp.livereacting.com/mcp",      "headers": { "Authorization": "Bearer ${LIVEREACTING_API_KEY}" }    }  }}

claude mcp add --transport http livereacting https://mcp.livereacting.com/mcp --header "Authorization: Bearer lr_…" also works, but it writes the key itself into the stored config.

Codex CLI

In ~/.codex/config.toml:

toml
[mcp_servers.livereacting]url = "https://mcp.livereacting.com/mcp"bearer_token_env_var = "LIVEREACTING_API_KEY"

Then export LIVEREACTING_API_KEY=lr_… in your shell profile. Prefer this over http_headers, which puts the key in the config file.

Cursor

In ~/.cursor/mcp.json. Cursor resolves ${env:NAME} in headers (docs):

json
{  "mcpServers": {    "livereacting": {      "url": "https://mcp.livereacting.com/mcp",      "headers": { "Authorization": "Bearer ${env:LIVEREACTING_API_KEY}" }    }  }}

Or install the LiveReacting plugin from the Cursor Marketplace and set LIVEREACTING_API_KEY under Plugins → Configure. The plugin is .cursor-plugin/plugin.json and mcp.json in this repo.

VS Code (GitHub Copilot)

In .vscode/mcp.json. The inputs block makes VS Code prompt for the key instead of storing it in the repo:

json
{  "inputs": [    {      "id": "livereacting-key",      "type": "promptString",      "description": "LiveReacting API key",      "password": true    }  ],  "servers": {    "livereacting": {      "type": "http",      "url": "https://mcp.livereacting.com/mcp",      "headers": { "Authorization": "Bearer ${input:livereacting-key}" }    }  }}

Gemini CLI

Install the extension. Gemini CLI asks for the key once and keeps it in the system keychain:

bash
gemini extensions install https://github.com/LiveReacting/livereacting-mcp

Or, without the extension, in ~/.gemini/settings.json. Gemini CLI expands $VAR and ${VAR} in every string of the file before it validates it, headers included (docs), so the key stays out of it:

json
{  "mcpServers": {    "livereacting": {      "httpUrl": "https://mcp.livereacting.com/mcp",      "headers": { "Authorization": "Bearer ${LIVEREACTING_API_KEY}" }    }  }}

Kiro

Install this repo as a power: Powers panel → Add Custom Power → Import power from GitHub, then paste https://github.com/LiveReacting/livereacting-mcp. The power reads LIVEREACTING_API_KEY from your environment (mcp.json).

Zed

In your Zed settings.json, under context_servers, add an HTTP server pointing at the URL with an Authorization header.

Goose

Add a Remote Extension (Streamable HTTP) in Goose's settings, URL https://mcp.livereacting.com/mcp, with a custom header Authorization: Bearer lr_….

Compatibility

HarnessHow the key is passed
Claude Code${VAR} in .mcp.json headers
Codex CLIbearer_token_env_var
Cursor${env:VAR} in mcp.json headers
VS Code Copilotheaders with a prompted input
GitHub Copilot coding agentstatic header secret only. This product does not support OAuth remote servers, so the key path is the only path here, now and later
Gemini CLI$VAR in settings.json headers
Kiro${VAR} in the power's mcp.json headers
Zedheaders in settings.json
Gooseremote extension header
ChatGPTconnectors take OAuth or nothing, never a pasted key

Protocol revisions: 2024-10-07 through 2025-11-25. If your client reports a version error, that is the first thing to check. 2026-07-28 is not supported yet — no published TypeScript SDK speaks it.


Tools

30 tools in five toolsets. Every name is prefixed livereacting_, so one search in a client that defers tool loading finds the whole server.

account

ToolWhat it does
list_destinationsYour connected YouTube, Facebook, Twitch, LinkedIn, X and custom RTMP destinations
validate_destinationsChecks a destination's connection still works, before you rely on it

editor

ToolWhat it does
list_projectsYour projects
get_projectOne project's configuration
create_projectA new project
update_projectChange a project's settings
get_scenesScenes in a project, or one scene
manage_sceneCreate, rename or delete a scene
activate_sceneSwitch the active scene, including during a broadcast
create_scene_with_playlistA scene plus its video playlist in one call
add_layerAdd one video playlist, audio playlist or single video layer to an existing scene
get_layerOne layer, with its playlist truncated for context
set_playlistReplace a playlist's contents

streams

ToolWhat it does
start_streamGo live
stop_streamEnd the broadcast
get_stream_statusLive state, per destination, including expired connections
schedule_streamGo live at set times
cancel_schedulesCancel scheduled broadcasts
sync_streamPush editor changes to a running stream
list_broadcastsPast broadcasts for a project

media

ToolWhat it does
list_mediaFiles and folders in your library
get_media_fileOne file's details
upload_fileStart uploading a local file: returns part URLs and curl commands
complete_uploadFinish an upload once every part is sent
import_mediaImport from Google Drive, Dropbox or YouTube
import_from_urlImport from a direct link to a media file on any public host
get_import_statusPoll an import, including every video of a playlist import
encode_mediaRe-encode a file for streaming
get_encode_statusPoll an encode

analytics

ToolWhat it does
get_stream_analyticsYouTube analytics, or per-video playlist analytics (that type on request)

Selecting fewer tools

Both are query parameters on the URL, so no client support is needed.

https://mcp.livereacting.com/mcp?toolsets=streams,mediahttps://mcp.livereacting.com/mcp?read_only=1

read_only=1 drops every tool that can change anything. Useful for a monitoring agent you do not want touching a live broadcast.


Limits, stated honestly

An agent that promises any of these is lying to your customer.

  • You can build video and audio playlists, and nothing else. Text, image and interactive layers are readable through the API but can only be created or edited in the LiveReacting Studio.
  • Operating is not limited that way. A stream whose overlays were built in the Studio can still be started, stopped, scheduled, synced and monitored from here. The line is author versus operate.
  • Uploading a local file needs a shell or HTTP client. upload_file returns signed part URLs and ready curl commands; the agent sends the bytes itself, then calls complete_upload.
  • Every plan has a maximum stream length. A stream stops when it reaches it, even with a manual duration. A 24/7 channel needs a plan without a length limit, such as the 24/7 plan.
  • A Facebook-only 24/7 channel is not possible. Facebook-only streams get a fixed 8-hour maximum.
  • Thumbnails and live announcements are unsupported.
  • Playlist analytics is available on request. YouTube analytics is included with every paid plan, and needs the channel to have granted analytics access. Ask [email protected] for playlist analytics.

Rate limits

150 requests per minute per account, shared across your API keys.

REST and MCP are counted separately, so the two surfaces get 150 each rather than sharing one budget. Do not plan around that: it is an implementation detail of how the two are metered, not a promise.

A 429 comes back as a tool error that says the number and how long to wait, because the model is the one reading it. The polling tools — get_stream_status, get_import_status, get_encode_status — each document a minimum interval. Poll tighter than that and you spend your own budget on nothing.


Things worth knowing before your agent surprises you

set_playlist replaces the whole playlist. It is not an append. To add one video, read the layer first, then send the complete list back. The tool tells you when a write shrinks the playlist, but it will still do what you asked.

Starting and stopping a stream is not idempotent. If a call times out, ask get_stream_status what happened. Do not retry — a retry can start a second attempt.


Docs

Full MCP reference: developers.livereacting.com/mcp Full REST API reference: developers.livereacting.com Support: [email protected] Privacy policy: livereacting.com/privacy-policy

來源:README.md,提交 2ba2931

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v1.2.0最新Oct 2, 2026