LiveReacting

official

Run 24/7 live streams of pre-recorded videos from the cloud, or schedule and live stream a single recorded video as live, and multistream to YouTube, Facebook, Twitch and any RTMP destination. Use the LiveReacting MCP server to build streams from your video library, schedule broadcasts, change the playlist while live, and check status and analytics from your AI assistant.

What can you do with LiveReacting MCP?

  • Build and start a live stream — Ask your assistant to import videos from Google Drive or URLs, build a looping playlist, and go live on YouTube or Facebook.
  • Schedule broadcasts — Have your assistant schedule a project to go live at specific times within the next 28 days, or cancel existing schedules.
  • Manage live broadcasts — Ask your assistant to switch scenes, sync edits to a running stream, stop a broadcast, or check current stream status.
  • Review broadcast performance — Get past broadcast details like run times and peak viewers, plus YouTube analytics for finished streams.
  • Manage media library — Ask your assistant to import, upload, encode, and check the status of video and audio files in your library.

Hosted MCP Server

npx add-mcp 'https://mcp.livereacting.com/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

MCP server

Let an AI agent run your live streams.

Connect ChatGPT or Claude with your LiveReacting account, or Claude Code, Codex, Cursor and other MCP clients with an API key. The agent builds a stream from a playlist, starts it, schedules it and reads the broadcast history afterwards.

https://mcp.livereacting.com/mcp Copy

Streamable HTTP, POST only, no session. An API key goes in the Authorization header as a Bearer token. ChatGPT and Claude sign in with OAuth instead.

Get an API key Set up your client

  • Included with every paid plan
  • 30 tools, with a read-only mode
  • Nothing to install

This page as Markdown

Setup

Connect your client.

One URL and one Authorization header for every client below. The key is the lr_ key the REST API takes, so a key you already have works here.

If you have no key yet, create one in the Developer section of the LiveReacting Studio. Set it as the LIVEREACTING_API_KEY environment variable and restart your client. VS Code asks for the key instead.

Claude Code Codex CLI Cursor VS Code (GitHub Copilot) Gemini CLI

Claude Code

In .mcp.json at the root of your project. The key stays out of the file, so it is safe to commit.

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

Copy

Codex CLI

In ~/.codex/config.toml.

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

# Then, in your shell profile:
# export LIVEREACTING_API_KEY=lr_...

Copy

Cursor

In ~/.cursor/mcp.json.

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

Copy

Add to Cursor

VS Code (GitHub Copilot)

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

{
  "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}" }
    }
  }
}

Copy

Add to VS Code

Gemini CLI

In ~/.gemini/settings.json.

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

Copy

Any client that supports Streamable HTTP and a Bearer header takes the same URL and the same header.

Test safely first

Add ?read_only=1 to the URL and the client is offered only the tools that read. Nothing the agent calls can change a project or a broadcast.

Tools

What the agent can call.

Every name starts with livereacting_, so one search finds the whole server in a client that loads tools on demand.

ToolWhat it doesAccess
Account The destinations you have already connected.
livereacting_list_destinationsYour connected YouTube, Facebook, Twitch, LinkedIn, X and your own serversRead only
livereacting_validate_destinationsCheck a YouTube, Facebook or Twitch login still works before you rely on it. Custom destinations are not contactedRead only
Editor Projects, scenes and the video and audio playlists inside them.
livereacting_list_projectsYour projects, newest firstRead only
livereacting_get_projectOne project in full: format, duration, destinations and stream statusRead only
livereacting_create_projectCreate an empty project, the first step of building a streamWrites
livereacting_update_projectChange a project's settingsWrites
livereacting_get_scenesThe scenes of a project, with a summary of what is in each oneRead only
livereacting_manage_sceneCreate, rename or delete a sceneDestructive
livereacting_activate_sceneSwitch the scene that goes out on air, including while the stream runsWrites
livereacting_create_scene_with_playlistAdd a scene and fill it with a video playlist in one callWrites
livereacting_add_layerAdd one video playlist, audio playlist or single video to a scene that already existsWrites
livereacting_get_layerRead one playlist and the videos in it, fifty at a timeRead only
livereacting_set_playlistReplace everything in a video or audio playlistDestructive
Streams Going live, scheduling, and watching a broadcast while it runs.
livereacting_start_streamGo live nowDestructive
livereacting_stop_streamEnd the broadcast that is runningDestructive
livereacting_get_stream_statusWhat the stream is doing right now, and the state of each destinationRead only
livereacting_schedule_streamGo live at one or more times in the next 28 daysWrites
livereacting_cancel_schedulesCancel one scheduled broadcast, or every schedule on a projectDestructive
livereacting_sync_streamPush the edits you just made to the stream that is runningWrites
livereacting_list_broadcastsPast broadcasts: when each ran, for how long, and its peak viewersRead only
Media The video library the playlists are built from.
livereacting_list_mediaThe files and folders in your libraryRead only
livereacting_get_media_fileOne file, with its technical detail when you ask for itRead only
livereacting_import_mediaBring in one file from a Google Drive, Dropbox or YouTube URLWrites
livereacting_import_from_urlBring in one video, audio or image file from a direct link on a public siteWrites
livereacting_get_import_statusHow far an import has got, and whether the file can be streamed yetRead only
livereacting_upload_fileStart an upload from your computer. The agent sends the file with the commands it gets backWrites
livereacting_complete_uploadFinish the upload and add the file to your libraryWrites
livereacting_encode_mediaQueue files for encoding so they can be streamedWrites
livereacting_get_encode_statusHow far the encoding has gotRead only
Analytics The numbers a finished broadcast produced.
livereacting_get_stream_analyticsYouTube's broadcast numbers on every paid plan, and per-video playlist numbers by requestRead only

Each tool's input schema comes from tools/list once you connect, and its description says what to call next and how long to wait between polls. Read them there; do not infer them from the names above.

Add ?toolsets= with any of account, editor, streams, media and analytics, comma-separated, and the client is offered only those groups. The server does the filtering, so any client can use it, and it refuses a name it does not recognize.

Example prompts

What you ask for, and what the agent does.

Say what the stream should do, in plain words. The agent picks the tools from the table above and calls them in the order the job needs.

  • "Here are three Google Drive video links. Build a 24/7 live stream on my YouTube channel from them and start it."

    It imports the three files, waits until they can be streamed, fills a looping playlist and goes live.

  • "Schedule last week's webinar recording to go out live on Friday at 3pm."

    It finds the recording in your library, builds a project that plays it once, and schedules that one start time.

  • "We are live. Switch to the interval scene."

    It activates the interval scene and pushes the change to the running broadcast. The stream stays live.

  • "How did last week's broadcasts do?"

    It goes through your projects, lists the broadcasts each one ran with their peak viewers, then reads YouTube's numbers for them.

Limits

What to decide before you connect an agent.

  • Paid plans only

    The Free plan and a paused subscription do not include API access. With an API key, every request is refused with 403 API_ACCESS_REQUIRES_PAID_PLAN. Through ChatGPT or Claude the account can connect, and each tool call returns that error until the plan includes API access.

  • The key acts as your account

    Anything the key can reach, the agent can reach. Create it in the Developer section of the Studio, and revoke it there the moment you want the agent to stop.

  • Give the agent fewer tools

    Add ?read_only=1 for the tools that read, or ?toolsets=streams,media for the groups you name. The server refuses an unrecognized value rather than ignoring it.

  • What it cannot do yet

    It cannot import a YouTube playlist, or build a text, image or interactive overlay. You build those in the Studio, and the agent can still run a stream that has them.

Rules the agent should know

  • Stay under 150 tool calls a minute. Counted per account, and the initialize and tools/list handshake is free. A single call over the limit comes back as HTTP 200 with a tool error that says how long to wait, so the model reads it rather than a client retrying a 429 on its own. A batch is refused with a real 429, and a batch may carry at most 20 messages.
  • set_playlist replaces the whole list. It is not an append. To add one video, read every page of get_layer first, then send the complete list back.
  • Check before you retry a write. After a timeout, ask get_stream_status, or the list tool for what you were creating, whether the write went through before you call it again. A second create_project makes a second project, and a second add_layer adds a second layer.
  • The access labels are hints, not locks. Every tool that writes or deletes carries the annotation, and a client can use it to ask you before calling. The protocol does not make it ask, so check your client's own setting.
  • A 24/7 stream needs somewhere that allows one. Facebook caps a Facebook-only stream at eight hours, so a 24/7 one needs YouTube, your own server, or a second destination beside Facebook.
  • Protocol revisions 2024-10-07 through 2025-11-25. A client pinned to 2026-07-28 cannot connect, and that is the first thing to check when one will not.

Questions

Can the agent delete something?

Yes. It can delete a scene, replace a whole playlist, stop a broadcast and cancel a schedule, and the table above marks each of those tools Destructive. With ?read_only=1 on the URL the server offers none of them.

Does it work with ChatGPT and Claude?

Yes. In ChatGPT, open Plugins, choose Add and then Create MCP App, and enter the server URL above. In Claude, open Customize, then Connectors, choose Add custom connector, and enter the same URL. Both then ask you to sign in to your LiveReacting account. Claude Code, Codex CLI, Cursor, VS Code and Gemini CLI connect with an API key, and each has a configuration on this page.

Can the agent upload a video from my computer?

Yes, when the agent can run commands on your computer. It asks LiveReacting for upload links, sends the file with curl, and the file joins your library. Each file can be as large as your plan allows. An agent without a terminal can import one file at a time from a direct public link, or from Google Drive, Dropbox or YouTube.

Where is the full reference?

Every tool, every input, every response field and every error code is in the MCP reference. The REST API it sits on is documented beside it.

Start with a free account.

Build your stream in the studio on the Free plan, which does not expire. Move to any paid plan when you are ready to hand it to an agent, and the API key comes with it.

Create a free account

  • No credit card
  • 4.8 from 633 reviews

Want the numbers first? See plans and pricing

[{"@context":"https://schema.org","@type":"WebPage","name":"LiveReacting MCP server | Live streaming for AI agents","url":"https://www.livereacting.com/mcp","inLanguage":"en","description":"Connect ChatGPT, Claude Code or Cursor to LiveReacting. The agent builds a stream from a playlist, starts it and schedules it. Included with every paid plan.","about":{"@type":"SoftwareApplication","name":"LiveReacting MCP server","applicationCategory":"DeveloperApplication","operatingSystem":"Web","url":"https://www.livereacting.com/mcp"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.livereacting.com/"},{"@type":"ListItem","position":2,"name":"API","item":"https://www.livereacting.com/api"},{"@type":"ListItem","position":3,"name":"MCP server","item":"https://www.livereacting.com/mcp"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Can the agent delete something?","acceptedAnswer":{"@type":"Answer","text":"Yes. It can delete a scene, replace a whole playlist, stop a broadcast and cancel a schedule, and the table above marks each of those tools Destructive. With ?read_only=1 on the URL the server offers none of them."}},{"@type":"Question","name":"Does it work with ChatGPT and Claude?","acceptedAnswer":{"@type":"Answer","text":"Yes. In ChatGPT, open Plugins, choose Add and then Create MCP App, and enter the server URL above. In Claude, open Customize, then Connectors, choose Add custom connector, and enter the same URL. Both then ask you to sign in to your LiveReacting account. Claude Code, Codex CLI, Cursor, VS Code and Gemini CLI connect with an API key, and each has a configuration on this page."}},{"@type":"Question","name":"Can the agent upload a video from my computer?","acceptedAnswer":{"@type":"Answer","text":"Yes, when the agent can run commands on your computer. It asks LiveReacting for upload links, sends the file with curl, and the file joins your library. Each file can be as large as your plan allows. An agent without a terminal can import one file at a time from a direct public link, or from Google Drive, Dropbox or YouTube."}},{"@type":"Question","name":"Where is the full reference?","acceptedAnswer":{"@type":"Answer","text":"Every tool, every input, every response field and every error code is in the MCP reference. The REST API it sits on is documented beside it."}}]}]