
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.
概览
让助手构建视频播放列表,启动、定时、监控和停止 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 读取密钥,而不必写入配置文件。
安装
在 SourceWeft 中
- 打开 控制台中的 LiveReacting,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
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.
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:
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:
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):
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:
Gemini CLI
Install the extension. Gemini CLI asks for the key once and keeps it in the system keychain:
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:
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
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
editor
streams
media
analytics
Selecting fewer tools
Both are query parameters on the URL, so no client support is needed.
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_filereturns signed part URLs and ready curl commands; the agent sends the bytes itself, then callscomplete_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- v1.2.0最新Oct 2, 2026

