Skip to main content
Glama
wave-av

WAVE MCP Server

Official
by wave-av

@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.

kind domain lang visibility phase

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#keys

2. 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

wave_list_streams

List streams with pagination and status filtering (idle/live/ended)

wave_create_stream

Create a new stream (protocol, recording, privacy)

wave_start_stream

Start a stream

wave_stop_stream

Stop an active stream

wave_get_stream_health

Get a stream's current status document

wave_get_stream_metrics

Get analytics for a single stream over a date range

wave_mark_highlight

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

Available tools — Studio

Tool

Description

wave_list_productions

List multi-camera productions

wave_create_production

Create a new multi-camera production

wave_switch_camera

Switch the program/preview bus to a camera index in a production

wave_show_graphic

Show or hide a graphics overlay in a production

wave_control_camera

Send a control command (iris/focus/zoom/white balance/gain/shutter/recording/audio level/presets) to a managed camera

wave_moderate_chat

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

wave_start_captions

Transcribe an audio clip and optionally run a fast-LLM step over the transcript

wave_create_clip

Create a clip from a recording

Available tools — Analytics

Tool

Description

wave_get_viewers

Get account-wide viewer engagement analytics over a date range

Available tools — Billing

Tool

Description

wave_get_subscription

Get the current billing account (plan, subscription state)

wave_get_usage

Get billed usage for a date range

Resources

Access WAVE entities directly via the wave:// URI scheme:

  • wave://streams/{id} - Stream configuration and status

  • wave://productions/{id} - Studio production details

Environment variables

Variable

Required

Default

Description

WAVE_API_KEY

Yes

-

Your WAVE API key

WAVE_BASE_URL

No

https://api.wave.online

API origin. Tool paths are /v1/* on the WAVE gateway.

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-sdk
import { 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_KEY

Tools 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 --version

Testing 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-server

Development

cd packages/mcp-server
pnpm install
pnpm run build
pnpm run dev       # Watch mode
pnpm run type-check

License

MIT

Capabilities

Capability

Status

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

preview

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

preview

Create a new multi-camera studio production.

preview

Create a new stream (protocol, recording, region options).

preview

Get real-time stream health metrics (bitrate, frame rate, latency).

preview

Get detailed stream performance metrics (bitrate, latency, quality, error rates).

preview

Get current subscription plan, billing cycle, and feature entitlements.

preview

Get current billing-period usage (streaming minutes, storage, bandwidth).

preview

Get current viewer count and viewer demographics for a stream or account-wide.

preview

List all studio productions in the WAVE account.

preview

List all streams in the WAVE account with pagination and status filtering.

preview

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

preview

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

preview

Show, hide, or update an HTML5 graphics overlay on a production.

preview

Start real-time captions/transcription on a stream.

preview

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

preview

Stop an active stream by ID.

preview

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

preview

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 package.json

Published npm package name is @wave-av/mcp-server

resolved by grepping package.json

wave_control_camera tool defined in src/tools/production.ts

resolved by grepping src/tools/production.ts

Exposes 18 MCP tools

resolved by grepping capabilities.json

wave_create_clip tool defined in src/tools/production.ts

resolved by grepping src/tools/production.ts

wave_create_production tool defined in src/tools/studio.ts

resolved by grepping src/tools/studio.ts

wave_create_stream tool defined in src/tools/streams.ts

resolved by grepping src/tools/streams.ts

wave_get_viewers tool defined in src/tools/analytics.ts

resolved by grepping src/tools/analytics.ts

wave_list_productions tool defined in src/tools/studio.ts

resolved by grepping src/tools/studio.ts

wave_list_streams tool defined in src/tools/streams.ts

resolved by grepping src/tools/streams.ts

wave_mark_highlight tool defined in src/tools/streams.ts

resolved by grepping src/tools/streams.ts

wave_moderate_chat tool defined in src/tools/production.ts

resolved by grepping src/tools/production.ts

wave_show_graphic tool defined in src/tools/production.ts

resolved by grepping src/tools/production.ts

wave_start_captions tool defined in src/tools/production.ts

resolved by grepping src/tools/production.ts

wave_start_stream tool defined in src/tools/streams.ts

resolved by grepping src/tools/streams.ts

wave_stop_stream tool defined in src/tools/streams.ts

resolved by grepping src/tools/streams.ts

wave_get_stream_health tool defined in src/tools/streams.ts

resolved by grepping src/tools/streams.ts

wave_get_stream_metrics tool defined in src/tools/streams.ts

resolved by grepping src/tools/streams.ts

wave_get_subscription tool defined in src/tools/billing.ts

resolved by grepping src/tools/billing.ts

wave_switch_camera tool defined in src/tools/production.ts

resolved by grepping src/tools/production.ts

wave_get_usage tool defined in src/tools/billing.ts

resolved by grepping src/tools/billing.ts

Server connects via stdio transport (no network listener)

resolved by grepping src/server.ts

Topics

wave · mcp · model-context-protocol · ai · streaming · tools


Built by WAVE Online, LLC · wave.online · Docs · LinkedIn

Available Tools

18 tools
wave_control_cameraB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
camera_idYesThe camera ID
actionYesCamera control action
panNoPan speed (-1 to 1)
tiltNoTilt speed (-1 to 1)
zoomNoZoom speed (-1 to 1)
preset_idNoPreset ID for recall/store

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stream_idYesThe stream ID to clip from
start_timeYesClip start time in seconds
end_timeYesClip end time in seconds
titleNoClip title
export_toNoSocial platforms to auto-export to

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesProduction title
descriptionNoProduction description
layoutNoInitial layout mode (default: single)
stream_idsNoStream IDs to include as sources in the production
recordNoEnable recording for this production (default: false)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesStream title
descriptionNoStream description
protocolNoStreaming protocol (default: webrtc)
recordNoEnable recording for this stream (default: false)
regionNoPreferred ingest region (e.g., us-east-1, eu-west-1)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stream_idYesThe UUID of the stream to check

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stream_idYesThe UUID of the stream
periodNoTime period for metrics aggregation (default: 24h)
granularityNoData point granularity (default: 5m)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoBilling period to query (default: current)
breakdownNoLevel of usage detail (default: summary)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stream_idNoStream ID to get viewers for. Omit for account-wide totals.
include_demographicsNoInclude geographic and device breakdown (default: false)

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of productions to return (1-100, default 25)
offsetNoNumber of productions to skip for pagination (default 0)
statusNoFilter by production status

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of streams to return (1-100, default 25)
offsetNoNumber of streams to skip for pagination (default 0)
statusNoFilter by stream status

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stream_idYesThe stream ID
labelNoLabel for the highlight
confidenceNoConfidence score (0-1, for AI-detected highlights)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
stream_idYesThe stream ID
message_idYesThe chat message ID to moderate
actionYesModeration action
reasonNoReason for moderation action

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
production_idYesThe production ID
graphic_idYesThe graphic template ID
actionYesAction to perform
dataNoData bindings for the graphic template

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stream_idYesThe stream ID
languageNoISO 639-1 language code (default: en)
providerNoTranscription provider (default: deepgram)

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stream_idYesThe UUID of the stream to start

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stream_idYesThe UUID of the stream to stop

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
switcher_idYesThe Cloud Switcher session ID
source_idYesThe source to switch to (e.g., cam_1, screen_share)
transitionNoTransition type (default: cut)
duration_msNoTransition duration in ms (default: 0 for cut)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 18 tool updatesv0.1.5
    • First observedwave_control_camera
    • First observedwave_create_clip
    • First observedwave_create_production
    • First observedwave_create_stream
    • First observedwave_get_stream_health
    • First observedwave_get_stream_metrics
    • First observedwave_get_subscription
    • First observedwave_get_usage
    • First observedwave_get_viewers
    • First observedwave_list_productions
    • First observedwave_list_streams
    • First observedwave_mark_highlight
    • First observedwave_moderate_chat
    • First observedwave_show_graphic
    • First observedwave_start_captions
    • First observedwave_start_stream
    • First observedwave_stop_stream
    • First observedwave_switch_camera

TDQS

B3.4/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness3/5

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

ActivityActive
ResponsivenessUnresponsive

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

Related MCP Servers

Latest Blog Posts

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