The WAVE MCP server gives an agent — Claude, Cursor, or anything else that speaks MCP — 18 tools for running live video: creating and starting streams, switching cameras, cutting clips, reading viewer numbers and usage. This catalogue is generated by asking the published server for its own tool list, so it always matches the version you install.

See the MCP server page for connecting a client and issuing a key.

Install

npx -y @wave-av/mcp-server

Current release 0.2.0.

Streams

wave_list_streams

List all streams in your WAVE account with pagination support

ParameterTypeRequiredDescription
limitintegernoMaximum number of streams to return (1-100, default 25)
offsetintegernoNumber of streams to skip for pagination (default 0)
status"active" · "idle" · "error" · "all"noFilter by stream status

wave_create_stream

Create a new stream in your WAVE account

ParameterTypeRequiredDescription
titlestringyesStream title
descriptionstringnoStream description
protocol"webrtc" · "srt" · "rtmp" · "hls"noStreaming protocol (default: webrtc)
recordbooleannoEnable recording for this stream (default: false)
regionstringnoPreferred ingest region (e.g., us-east-1, eu-west-1)

wave_start_stream

Start a stream by its ID, transitioning it to the active state

ParameterTypeRequiredDescription
stream_idstringyesThe UUID of the stream to start

wave_stop_stream

Stop an active stream by its ID

ParameterTypeRequiredDescription
stream_idstringyesThe UUID of the stream to stop

wave_get_stream_health

Get real-time health metrics for a stream including bitrate, frame rate, and latency

ParameterTypeRequiredDescription
stream_idstringyesThe UUID of the stream to check

wave_get_stream_metrics

Get detailed performance metrics for a stream including bitrate, latency, quality scores, and error rates

ParameterTypeRequiredDescription
stream_idstringyesThe UUID of the stream
period"1h" · "6h" · "24h" · "7d" · "30d"noTime period for metrics aggregation (default: 24h)
granularity"1m" · "5m" · "1h" · "1d"noData point granularity (default: 5m)

Productions and live control

wave_list_productions

List all studio productions in your WAVE account

ParameterTypeRequiredDescription
limitintegernoMaximum number of productions to return (1-100, default 25)
offsetintegernoNumber of productions to skip for pagination (default 0)
status"draft" · "live" · "ended" · "all"noFilter by production status

wave_create_production

Create a new studio production with multi-camera support

ParameterTypeRequiredDescription
titlestringyesProduction title
descriptionstringnoProduction description
layout"single" · "split" · "pip" · "grid" · "custom"noInitial layout mode (default: single)
stream_idsstring[]noStream IDs to include as sources in the production
recordbooleannoEnable recording for this production (default: false)

wave_switch_camera

Switch the live program output to a different camera/source in a Cloud Switcher session

ParameterTypeRequiredDescription
switcher_idstringyesThe Cloud Switcher session ID
source_idstringyesThe source to switch to (e.g., cam_1, screen_share)
transition"cut" · "mix" · "wipe" · "dve"noTransition type (default: cut)
duration_msintegernoTransition duration in ms (default: 0 for cut)

wave_create_clip

Create a clip from a recorded stream, optionally exporting to social platforms

ParameterTypeRequiredDescription
stream_idstringyesThe stream ID to clip from
start_timenumberyesClip start time in seconds
end_timenumberyesClip end time in seconds
titlestringnoClip title
export_to"tiktok" · "youtube_shorts" · "instagram_reels" · "twitter"[]noSocial platforms to auto-export to

wave_show_graphic

Show or hide an HTML5 graphics overlay on a production

ParameterTypeRequiredDescription
production_idstringyesThe production ID
graphic_idstringyesThe graphic template ID
action"show" · "hide" · "update"yesAction to perform
dataobjectnoData bindings for the graphic template

wave_control_camera

Control a PTZ camera (pan, tilt, zoom, focus, recall preset)

ParameterTypeRequiredDescription
camera_idstringyesThe camera ID
action"move" · "zoom" · "focus" · "recall_preset" · "store_preset"yesCamera control action
pannumbernoPan speed (-1 to 1)
tiltnumbernoTilt speed (-1 to 1)
zoomnumbernoZoom speed (-1 to 1)
preset_idstringnoPreset ID for recall/store

wave_mark_highlight

Mark a moment in a stream as a highlight for later clipping

ParameterTypeRequiredDescription
stream_idstringyesThe stream ID
labelstringnoLabel for the highlight
confidencenumbernoConfidence score (0-1, for AI-detected highlights)

Audience and performance

wave_get_viewers

Get current viewer count and viewer demographics for a stream or across all streams

ParameterTypeRequiredDescription
stream_idstringnoStream ID to get viewers for. Omit for account-wide totals.
include_demographicsbooleannoInclude geographic and device breakdown (default: false)

Captions and moderation

wave_moderate_chat

Moderate a chat message in a live stream (block, flag, or allow)

ParameterTypeRequiredDescription
stream_idstringyesThe stream ID
message_idstringyesThe chat message ID to moderate
action"block" · "flag" · "allow"yesModeration action
reasonstringnoReason for moderation action

wave_start_captions

Start real-time captions/transcription on a stream

ParameterTypeRequiredDescription
stream_idstringyesThe stream ID
languagestringnoISO 639-1 language code (default: en)
provider"deepgram" · "assemblyai" · "cohere"noTranscription provider (default: deepgram)

Account

wave_get_subscription

Get current subscription details including plan, billing cycle, and feature entitlements

Takes no parameters.

wave_get_usage

Get current billing period usage including streaming minutes, storage, and bandwidth consumption

ParameterTypeRequiredDescription
period"current" · "previous"noBilling period to query (default: current)
breakdown"summary" · "daily" · "by_stream"noLevel of usage detail (default: summary)