WAVE MCP Server
OfficialThe WAVE MCP server exposes WAVE streaming APIs as MCP tools for AI coding assistants, enabling management across 5 domains:
Stream Management
List, create, start, and stop streams (with status filtering and pagination)
Create streams with protocol (
webrtc,srt,rtmp,hls), region, recording, and description optionsMonitor real-time stream health: bitrate, frame rate, and latency
Studio / Productions
List and create multi-camera studio productions (with layout options:
single,split,pip,grid,custom)Switch live program output between camera sources with transition effects (
cut,mix,wipe,dve)Control PTZ cameras: pan, tilt, zoom, focus, and recall/store presets
Show, hide, or update HTML5 graphics overlays on a production
Analytics
Get current viewer counts and optional geographic/device demographics per stream or account-wide
Retrieve detailed stream performance metrics (bitrate, latency, quality scores, error rates) over configurable time periods and granularity
Billing & Usage
View current subscription plan, billing cycle, and feature entitlements
Check billing-period consumption (streaming minutes, storage, bandwidth) with summary or detailed breakdowns
Production Tools
Create clips from recorded streams by time range, with optional export to TikTok, YouTube Shorts, Instagram Reels, or Twitter
Mark highlights in a live stream for later clipping (with optional AI confidence score)
Moderate live chat messages: block, flag, or allow with an optional reason
Start real-time captions/transcription using Deepgram, AssemblyAI, or Cohere
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WAVE MCP ServerCheck the health and viewer count of my active stream"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@wave-av/mcp-server
WAVE is media infrastructure for the agentic internet: one call shape moves live and on-demand media across every transport, and both kinds of user, people and agents, discover it, call it, and pay for it per call. This package is how an agent discovers and calls that call shape over MCP. The hosted server answers at https://mcp.wave.online/mcp, the agent card is published at https://gateway.wave.online/.well-known/agent-card.json, and the skills index at https://gateway.wave.online/.well-known/wave-skills.json. npx @wave-av/mcp-server runs a WAVE MCP server locally over stdio for Claude Code, Cursor, and Windsurf.
Live → · docs · npm · repo · Docs · Status
Quick start
npx @wave-av/mcp-server{
"mcpServers": {
"wave": {
"command": "npx",
"args": ["-y", "@wave-av/mcp-server"],
"env": {
"WAVE_API_KEY": "wave_live_..."
}
}
}
}Related MCP server: ASTRA MCP Server
Setup
1. Get an API key
# Via CLI
wave auth login
# Or create at https://console.wave.online/dashboard#keys2. Configure your AI tool
Add to your .mcp.json (Claude Code, Cursor, Windsurf, etc.) — see the Quick start config above.
Available tools — Streams
Tool | Description |
| List streams with pagination and status filtering (idle/live/ended) |
| Create a new stream (protocol, recording, privacy) |
| Start a stream |
| Stop an active stream |
| Get a stream's current status document |
| Get analytics for a single stream over a date range |
| Mark a moment in a stream as a highlight for later clipping |
Available tools — Studio
Tool | Description |
| List multi-camera productions |
| Create a new multi-camera production |
| Switch the program/preview bus to a camera index in a production |
| Show or hide a graphics overlay in a production |
| Send a control command (iris/focus/zoom/white balance/gain/shutter/recording/audio level/presets) to a managed camera |
| Moderate a chat message in a live stream (block/flag/allow) |
| Transcribe an audio clip and optionally run a fast-LLM step over the transcript |
| Create a clip from a recording |
Available tools — Analytics
Tool | Description |
| Get account-wide viewer engagement analytics over a date range |
Available tools — Billing
Tool | Description |
| Get the current billing account (plan, subscription state) |
| Get billed usage for a date range |
Resources
Access WAVE entities directly via the wave:// URI scheme:
wave://streams/{id}- Stream configuration and statuswave://productions/{id}- Studio production details
Environment variables
Variable | Required | Default | Description |
| Yes | - | Your WAVE API key |
| No |
| API origin. Tool paths are |
In-process (Claude Agent SDK) mode
For consumers already running inside a Claude Agent SDK
session, the same tools are available in-process — skipping the stdio subprocess
hop (~50 ms vs ~500 ms cold start). The tool list is shared with the stdio
server (src/tools/index.ts), so the two transports never drift.
@anthropic-ai/claude-agent-sdk is an optional peer dependency: stdio users
never need it. Install it only for this mode:
npm install @wave-av/mcp-server @anthropic-ai/claude-agent-sdkimport { query } from "@anthropic-ai/claude-agent-sdk";
import { createWaveSdkMcpServer } from "@wave-av/mcp-server/sdk-server";
const wave = await createWaveSdkMcpServer();
for await (const message of query({
prompt: "List my active streams",
options: { mcpServers: { wave }, env: { WAVE_API_KEY: process.env.WAVE_API_KEY } },
})) {
// handle messages
}Setup for other AI tools
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"wave": {
"command": "npx",
"args": ["-y", "@wave-av/mcp-server"],
"env": { "WAVE_API_KEY": "wave_live_..." }
}
}
}Windsurf
Add to Windsurf MCP settings with the same configuration.
Troubleshooting
Server not starting
Verify your API key is set:
echo $WAVE_API_KEYTools not appearing
Restart your AI tool after adding the MCP configuration. Most tools require a restart to detect new MCP servers.
Connection errors
The MCP server uses stdio transport (no network listener). If you see connection errors, check that npx can run successfully:
npx @wave-av/mcp-server --versionTesting the server
Send a JSON-RPC initialize request to verify:
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | npx @wave-av/mcp-serverRelated packages
@wave-av/sdk — TypeScript SDK (34 API modules)
@wave-av/adk — Agent Developer Kit
@wave-av/cli — Command-line interface
@wave-av/create-app — Scaffold a new project
OpenAPI spec — Full API specification
Development
cd packages/mcp-server
pnpm install
pnpm run build
pnpm run dev # Watch mode
pnpm run type-checkLicense
MIT
Capabilities
Capability | Status |
Control a PTZ camera (pan, tilt, zoom, focus, preset recall/store). | |
Create a clip from a recorded stream, optionally exporting to social platforms. | |
Create a new multi-camera studio production. | |
Create a new stream (protocol, recording, region options). | |
Get real-time stream health metrics (bitrate, frame rate, latency). | |
Get detailed stream performance metrics (bitrate, latency, quality, error rates). | |
Get current subscription plan, billing cycle, and feature entitlements. | |
Get current billing-period usage (streaming minutes, storage, bandwidth). | |
Get current viewer count and viewer demographics for a stream or account-wide. | |
List all studio productions in the WAVE account. | |
List all streams in the WAVE account with pagination and status filtering. | |
Mark a moment in a stream as a highlight for later clipping. | |
Moderate a chat message in a live stream (block, flag, or allow). | |
Show, hide, or update an HTML5 graphics overlay on a production. | |
Start real-time captions/transcription on a stream. | |
Start a stream by ID, transitioning it to the active state. | |
Stop an active stream by ID. | |
Switch the live program output to a different camera/source in a Cloud Switcher session. |
For AI agents
Exposes the MCP tool wave-mcp-server over stdio.
The receipts
Every claim below is checked by npm run verify against the live repo or endpoint — a non-pass verdict fails the gate.
Claim | How it's verified |
Documentation surface is docs.wave.online/mcp | resolved by grepping |
Published npm package name is @wave-av/mcp-server | resolved by grepping |
wave_control_camera tool defined in src/tools/production.ts | resolved by grepping |
Exposes 18 MCP tools | resolved by grepping |
wave_create_clip tool defined in src/tools/production.ts | resolved by grepping |
wave_create_production tool defined in src/tools/studio.ts | resolved by grepping |
wave_create_stream tool defined in src/tools/streams.ts | resolved by grepping |
wave_get_viewers tool defined in src/tools/analytics.ts | resolved by grepping |
wave_list_productions tool defined in src/tools/studio.ts | resolved by grepping |
wave_list_streams tool defined in src/tools/streams.ts | resolved by grepping |
wave_mark_highlight tool defined in src/tools/streams.ts | resolved by grepping |
wave_moderate_chat tool defined in src/tools/production.ts | resolved by grepping |
wave_show_graphic tool defined in src/tools/production.ts | resolved by grepping |
wave_start_captions tool defined in src/tools/production.ts | resolved by grepping |
wave_start_stream tool defined in src/tools/streams.ts | resolved by grepping |
wave_stop_stream tool defined in src/tools/streams.ts | resolved by grepping |
wave_get_stream_health tool defined in src/tools/streams.ts | resolved by grepping |
wave_get_stream_metrics tool defined in src/tools/streams.ts | resolved by grepping |
wave_get_subscription tool defined in src/tools/billing.ts | resolved by grepping |
wave_switch_camera tool defined in src/tools/production.ts | resolved by grepping |
wave_get_usage tool defined in src/tools/billing.ts | resolved by grepping |
Server connects via stdio transport (no network listener) | resolved by grepping |
Topics
wave · mcp · model-context-protocol · ai · streaming · tools
Built by WAVE Online, LLC · wave.online · Docs · LinkedIn
Available Tools
18 toolswave_control_cameraB
Control a PTZ camera (pan, tilt, zoom, focus, recall preset)
| Name | Required | Description | Default |
|---|---|---|---|
| camera_id | Yes | The camera ID | |
| action | Yes | Camera control action | |
| pan | No | Pan speed (-1 to 1) | |
| tilt | No | Tilt speed (-1 to 1) | |
| zoom | No | Zoom speed (-1 to 1) | |
| preset_id | No | Preset ID for recall/store |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits (e.g., continuous movement, side effects). It only lists actions without explaining behavior like speed ranges or that 'move' combines pan/tilt, leaving important gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that front-loads purpose. It is concise but could briefly mention parameter usage without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters and no output schema, the description is too brief. It omits return behavior, side effects, and parameter relationships, making it incomplete for an agent to fully understand the tool's operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description lists actions already in the enum but adds no new meaning beyond the schema, such as explaining that pan/tilt are continuous speed values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: controlling a PTZ camera with specific actions (pan, tilt, zoom, focus, recall preset). This distinguishes it from sibling tools like wave_switch_camera, which likely handles camera selection rather than control.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives (e.g., wave_switch_camera). The description does not specify prerequisites or exclusions, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_create_clipB
Create a clip from a recorded stream, optionally exporting to social platforms
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | Yes | The stream ID to clip from | |
| start_time | Yes | Clip start time in seconds | |
| end_time | Yes | Clip end time in seconds | |
| title | No | Clip title | |
| export_to | No | Social platforms to auto-export to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It describes a mutation but lacks details on side effects, permissions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundant information; very concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations or output schema, the description is too brief. It fails to explain what the tool returns, error conditions, or complexities like time range validation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter explanations are already complete. The description adds context about exporting to social platforms, but does not enhance individual parameter meanings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create) and the resource (clip from a recorded stream), and mentions the optional export feature, distinguishing it from related tools like wave_mark_highlight.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the stream must be recorded, but does not provide explicit prerequisites, when-not-to-use advice, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_create_productionB
Create a new studio production with multi-camera support
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Production title | |
| description | No | Production description | |
| layout | No | Initial layout mode (default: single) | |
| stream_ids | No | Stream IDs to include as sources in the production | |
| record | No | Enable recording for this production (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose side effects, authorization needs, or limitations. It does not mention that creating a production may start recording (if 'record' is true) or that it requires a title. No behavioral traits beyond 'create' are shared.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently communicates the core action. However, it could be slightly expanded to include essential usage context without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description does not explain what the tool returns (e.g., production ID). It also lacks information about the multi-camera feature prerequisites or other configuration details, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already describes all parameters. The description adds no additional meaning beyond what is in the schema. For example, 'multi-camera support' hints at 'stream_ids' but is not explicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new studio production with multi-camera support' clearly states the verb (create), resource (studio production), and a distinguishing capability (multi-camera support). It effectively differentiates from siblings like 'wave_create_clip' and 'wave_create_stream'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention that 'wave_list_productions' is for listing or that 'wave_create_clip' is for creating clips. The agent must infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_create_streamC
Create a new stream in your WAVE account
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Stream title | |
| description | No | Stream description | |
| protocol | No | Streaming protocol (default: webrtc) | |
| record | No | Enable recording for this stream (default: false) | |
| region | No | Preferred ingest region (e.g., us-east-1, eu-west-1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It only states 'create a new stream', lacking details on side effects, idempotency, permissions, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is concise and directly to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not explain return values, success indicators, or failure modes. For a creation tool with 5 parameters, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented in the schema. The description adds no extra meaning beyond what the schema provides, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new stream', which is a specific verb+resource. However, it does not distinguish from sibling tools like wave_start_stream, leaving some ambiguity about the exact function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as wave_create_clip or wave_start_stream. The agent receives no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_get_stream_healthA
Get real-time health metrics for a stream including bitrate, frame rate, and latency
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | Yes | The UUID of the stream to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It indicates a read operation returning metrics, but does not disclose details like authentication requirements, rate limits, or behavior on invalid stream IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the tool's purpose and key output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is mostly complete. It could mention error handling or real-time update frequency, but is sufficient for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter well-described. The description adds value by listing specific metrics returned (bitrate, frame rate, latency), which is beyond the schema's parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets real-time health metrics (bitrate, frame rate, latency) for a stream. It distinguishes from siblings by focusing on health metrics, but does not explicitly differentiate from similar tools like wave_get_stream_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing stream health metrics, but provides no explicit guidance on when to use this tool versus alternatives (e.g., wave_get_stream_metrics) or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_get_stream_metricsB
Get detailed performance metrics for a stream including bitrate, latency, quality scores, and error rates
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | Yes | The UUID of the stream | |
| period | No | Time period for metrics aggregation (default: 24h) | |
| granularity | No | Data point granularity (default: 5m) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It only states what metrics are returned but does not disclose whether the operation is read-only, any side effects, permission requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is concise and front-loaded with the main action. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 3 parameters, no output schema, and the description is too brief. It does not explain return structure, error handling, or aggregation behavior, leaving significant gaps for an agent to understand the tool fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear descriptions for each parameter. The tool description adds context about the types of metrics but does not significantly enhance understanding of the parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets performance metrics for a stream, listing specific examples like bitrate, latency, quality scores, and error rates. This distinguishes it from sibling tool 'wave_get_stream_health' which likely focuses on health status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like wave_get_stream_health or wave_list_streams. No mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_get_subscriptionA
Get current subscription details including plan, billing cycle, and feature entitlements
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'Get' which implies a read-only operation with no side effects. The description is adequate but does not explicitly mention safety or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly communicates the tool's purpose without any unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description provides sufficient context by stating what information is retrieved. It fully covers the expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description cannot add semantic meaning beyond the schema. According to guidelines, 0 parameters yields a baseline score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves current subscription details, listing specific attributes (plan, billing cycle, feature entitlements). It uses a specific verb+resource pattern and is clearly distinct from sibling tools like wave_control_camera or wave_create_clip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. Since the tool has no parameters and siblings are distinctly different, usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_get_usageA
Get current billing period usage including streaming minutes, storage, and bandwidth consumption
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Billing period to query (default: current) | |
| breakdown | No | Level of usage detail (default: summary) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full responsibility. It correctly indicates a read-only operation (retrieves usage data) but does not disclose any behavioral traits such as authentication requirements, rate limits, or side effects. The description is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise, front-loaded with the action ('Get current billing period usage'), and free of fluff. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 optional parameters and no output schema, the description provides sufficient context about what data the tool returns (usage including streaming minutes, storage, bandwidth). It does not detail response format or pagination, but for a simple retrieval tool this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters (period, breakdown) having enum descriptions. The description lists only the high-level metrics (streaming minutes, storage, bandwidth) but adds no meaning beyond the schema. Baseline score of 3 is appropriate when schema already documents parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves current billing period usage, specifying three concrete metrics (streaming minutes, storage, bandwidth). This verb-resource combination uniquely distinguishes it from sibling tools like wave_get_subscription (subscription details) and wave_get_stream_metrics (stream-level metrics).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for billing period queries but provides no explicit guidance on when to use this tool vs. alternatives like wave_get_subscription or wave_get_stream_metrics. No when-not-to-use or prerequisite information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_get_viewersA
Get current viewer count and viewer demographics for a stream or across all streams
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | No | Stream ID to get viewers for. Omit for account-wide totals. | |
| include_demographics | No | Include geographic and device breakdown (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits beyond the operation itself. It does not state whether the tool is read-only, requires authentication, or has rate limits. For a simple read operation, some transparency is still expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It front-loads the core action ('Get current viewer count and viewer demographics') and immediately specifies scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema and no output schema, the description covers the main functionality but lacks details on return format or behavior for invalid inputs. It is adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions for both parameters. The description adds value by clarifying the effect of omitting stream_id (account-wide totals) and the meaning of the include_demographics parameter, exceeding the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('viewer count and viewer demographics'), and explicitly states the scope ('for a stream or across all streams'). This clearly differentiates from sibling tools like wave_get_stream_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage contexts (single stream vs. all streams) but does not provide explicit guidance on when not to use this tool or mention alternatives. Sibling tools like wave_get_stream_metrics exist but are not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_list_productionsA
List all studio productions in your WAVE account
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of productions to return (1-100, default 25) | |
| offset | No | Number of productions to skip for pagination (default 0) | |
| status | No | Filter by production status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states a high-level purpose and does not disclose behavioral traits such as pagination behavior, authentication requirements, or rate limits. The schema shows parameters for pagination but the description does not mention this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words, conveying the tool's purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description minimally covers the tool's purpose but does not explain what the returned list contains or provide context on production semantics. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add any additional meaning beyond what the schema already provides for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all studio productions in your WAVE account', using a specific verb (list) and resource (studio productions), and distinguishes from sibling tools like wave_create_production and wave_list_streams.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for listing productions, but does not provide explicit guidance on when to use it versus alternatives like wave_list_streams. No exclusions or when-not advice is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_list_streamsA
List all streams in your WAVE account with pagination support
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of streams to return (1-100, default 25) | |
| offset | No | Number of streams to skip for pagination (default 0) | |
| status | No | Filter by stream status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description only mentions listing with pagination. Lacks disclosure of read-only nature, authentication needs, rate limits, or any side effects beyond what's obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundancy. Every word earns its place: 'List all streams in your WAVE account with pagination support' is maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations. Description covers core function but omits return format, total count, or error handling. Adequate but not rich for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions (limit, offset, status). Description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists all streams in a WAVE account with pagination. Uses specific verb+resource (list streams) and distinguishes from sibling tools like wave_create_stream and wave_start_stream.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage context (listing streams with pagination) but does not explicitly exclude alternatives like wave_get_stream_health or provide when-not scenarios. Still clear enough for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_mark_highlightB
Mark a moment in a stream as a highlight for later clipping
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | Yes | The stream ID | |
| label | No | Label for the highlight | |
| confidence | No | Confidence score (0-1, for AI-detected highlights) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided to indicate read-only or destructive behavior. The description implies a mutation (marking a highlight) but does not disclose side effects, undoability, or whether the stream must be active. The full burden falls on the description, which is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no fluff. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic action but lacks context on error conditions, prerequisites (e.g., stream must be active), and how the highlight relates to later clipping. Given the simple schema and no output schema, it is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with descriptions (100% coverage). The description adds no additional meaning beyond 'Mark a moment', so it meets the baseline of 3 but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (mark), resource (a moment in a stream), and purpose (as a highlight for later clipping). It distinguishes the tool from siblings like wave_create_clip, which creates a clip directly, and wave_start_stream, which initiates a stream.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't specify that the stream must be live or that this is a prerequisite for clipping. Siblings include wave_create_clip, but the relationship is not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_moderate_chatB
Moderate a chat message in a live stream (block, flag, or allow)
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | Yes | The stream ID | |
| message_id | Yes | The chat message ID to moderate | |
| action | Yes | Moderation action | |
| reason | No | Reason for moderation action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond the basic action. For a moderation tool, critical information is missing: whether the action is reversible, if it notifies the user, permission requirements, or the effect on the chat. With no annotations provided, the description should cover these aspects, but it does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the main action. It avoids unnecessary words. However, it could be slightly expanded to include usage notes without significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does not mention the return value or success/failure behavior. For a tool with 4 parameters and no output schema, more context is needed, such as whether the message is returned or if the action is immediate. The current description is insufficient for an AI agent to fully understand the tool's effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so each parameter's meaning is already clear from the schema. The description adds no additional semantics beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: moderate a chat message with specific actions (block, flag, allow). This distinguishes it from sibling tools like wave_start_stream or wave_control_camera, which are about streaming operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, such as needing the stream to be active, or when to choose one action over another. The description simply states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_show_graphicC
Show or hide an HTML5 graphics overlay on a production
| Name | Required | Description | Default |
|---|---|---|---|
| production_id | Yes | The production ID | |
| graphic_id | Yes | The graphic template ID | |
| action | Yes | Action to perform | |
| data | No | Data bindings for the graphic template |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must cover behavior. It only states 'show or hide' but fails to mention the 'update' action. It does not explain side effects, persistence, or visibility scope. The behavioral traits beyond the schema are not disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence, but it fails to mention the 'update' action, making it inaccurate. Conciseness is only valuable if accurate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters including a nested object and no output schema, the description is too sparse. It does not explain return values, error conditions, or the lifecycle of the overlay.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so the parameters are already documented. The description adds no new semantic information beyond the schema, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool controls an HTML5 graphics overlay on a production. It distinguishes from sibling tools which handle other aspects like cameras or streams. However, it omits the 'update' action present in the schema, making it slightly incomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, typical use cases, or when other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_start_captionsC
Start real-time captions/transcription on a stream
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | Yes | The stream ID | |
| language | No | ISO 639-1 language code (default: en) | |
| provider | No | Transcription provider (default: deepgram) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It only states the action without explaining side effects, state changes, requirements, or errors. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the key action, but it is too brief. It could include more detail without being verbose. Conciseness is acceptable but not optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It does not explain return values, error conditions, or what happens when captions are already active. For a state-changing tool, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for all parameters, so the baseline is 3. The description does not add any additional meaning beyond what is already in the schema, so it neither helps nor hinders.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Start') and the resource ('real-time captions/transcription on a stream'). It distinguishes from sibling tools like wave_start_stream and wave_create_stream, but does not explicitly differentiate them, so purpose clarity is strong but not perfect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as when to start captions vs. a transcript, or prerequisites like requiring the stream to be active. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_start_streamA
Start a stream by its ID, transitioning it to the active state
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | Yes | The UUID of the stream to start |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only discloses the transition to active state but omits side effects, error conditions, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 12-word sentence with no redundancy, efficiently conveying the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description is adequate but could benefit from notes on success/error outcomes, especially since no output schema is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter, providing a clear description. The tool description adds no extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool starts a stream by its ID and transitions it to active state. It distinguishes from siblings like wave_stop_stream (stop) and wave_create_stream (create).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used after stream creation but does not provide explicit when-to-use, prerequisites like stream existence or state, nor when to avoid using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_stop_streamB
Stop an active stream by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | Yes | The UUID of the stream to stop |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose side effects (e.g., viewers disconnected, recording stops) and permissions. Only states the action without behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded, but could include more context without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-param tool, the description omits return value or post-condition. Lacks completeness for an agent to understand full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for stream_id. The tool description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (stop) and resource (active stream) with the required identifier (ID), distinguishing it from siblings like wave_start_stream.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool, prerequisites (e.g., stream must be active), or alternatives. Lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_switch_cameraB
Switch the live program output to a different camera/source in a Cloud Switcher session
| Name | Required | Description | Default |
|---|---|---|---|
| switcher_id | Yes | The Cloud Switcher session ID | |
| source_id | Yes | The source to switch to (e.g., cam_1, screen_share) | |
| transition | No | Transition type (default: cut) | |
| duration_ms | No | Transition duration in ms (default: 0 for cut) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, yet description lacks behavioral details such as whether the session must be active, side effects on recordings, or error conditions. The description is too brief for a mutating action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. However, it could be slightly more informative while remaining concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description should provide more context about return behavior, error states, and prerequisites. It does not mention that the source_id must be valid or that transitions are optional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so baseline is 3. The description adds no extra semantic beyond 'switch to a different camera/source' which is already implied by the tool name and schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (switch), the resource (live program output), and the context (Cloud Switcher session). It distinguishes from sibling tools like wave_control_camera (camera adjustments) and wave_show_graphic (graphics overlays).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as wave_control_camera or wave_show_graphic. No mention of prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
18 tool updates
v0.1.5- First observed
wave_control_camera - First observed
wave_create_clip - First observed
wave_create_production - First observed
wave_create_stream - First observed
wave_get_stream_health - First observed
wave_get_stream_metrics - First observed
wave_get_subscription - First observed
wave_get_usage - First observed
wave_get_viewers - First observed
wave_list_productions - First observed
wave_list_streams - First observed
wave_mark_highlight - First observed
wave_moderate_chat - First observed
wave_show_graphic - First observed
wave_start_captions - First observed
wave_start_stream - First observed
wave_stop_stream - First observed
wave_switch_camera
TDQS
Most tools have clearly distinct purposes (e.g., camera control, clip creation, production creation, stream lifecycle). However, wave_get_stream_health and wave_get_stream_metrics overlap significantly in their descriptions, both covering bitrate, latency, and frame rate, which could cause confusion.
All tools follow a consistent wave_verb_noun pattern in snake_case (e.g., wave_control_camera, wave_create_clip, wave_get_stream_health). No mixing of conventions or stylistic deviations.
With 18 tools, the count is slightly above the typical well-scoped range (3-15) but appropriate for a streaming platform that covers creation, management, monitoring, and advanced features like captions and graphics. No tools feel superfluous.
The tool set covers core stream lifecycle (create, start, stop, list), productions, and monitoring. However, notable gaps exist: no update or delete for streams or productions, and no tool for managing subscription beyond retrieval. These gaps may force workarounds.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
16 AI-native tools with dual SSE + streamable-http transport. Free tier available.
- sleipnirOAuthtv.sleipnir
Multistream to Twitch, YouTube and Kick; generate OBS overlays from a plain-English prompt.
Query your Twitch streams, events, supporters, raids & rankings from an AI assistant via OAuth.
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables 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.9121MIT
- AlicenseCqualityCmaintenanceEnables AI assistants to query and control a bio-hybrid neuromorphic simulation pipeline, including SNN engine, consciousness proxies, and neuroplatform telemetry, via the Model Context Protocol.50MIT

APIVerve MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceProvides access to 249+ production-ready APIs through the Model Context Protocol, enabling AI assistants to fetch weather, news, geocoding, validation, and more data.22MIT- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to control YouTube Live Streaming, including creating broadcasts, managing chat, and monitoring stream health via MCP tools.27MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/wave-av/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server