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.
npx @wave-av/mcp-server{
"mcpServers": {
"wave": {
"command": "npx",
"args": ["-y", "@wave-av/mcp-server"],
"env": {
"WAVE_API_KEY": "wave_live_..."
}
}
}
}# Via CLI
wave auth login
# Or create at https://wave.online/settings/api-keysAdd to your .mcp.json (Claude Code, Cursor, Windsurf, etc.) — see the Quick start config above.
| Tool | Description |
|---|---|
wave_list_streams |
List all streams with pagination and status filtering |
wave_create_stream |
Create a new stream with protocol and privacy options |
wave_start_stream |
Start streaming on an existing stream |
wave_stop_stream |
Stop an active stream |
wave_get_stream_health |
Get real-time health metrics for a stream |
| Tool | Description |
|---|---|
wave_list_productions |
List studio production sessions |
wave_create_production |
Create a new multi-camera production |
| Tool | Description |
|---|---|
wave_get_viewers |
Get current viewer count and breakdown |
wave_get_stream_metrics |
Get detailed stream performance metrics |
| Tool | Description |
|---|---|
wave_get_subscription |
Get current subscription plan and status |
wave_get_usage |
Get current period usage and limits |
Access WAVE entities directly via the wave:// URI scheme:
wave://streams/{id}- Stream configuration and statuswave://productions/{id}- Studio production details
| Variable | Required | Default | Description |
|---|---|---|---|
WAVE_API_KEY |
Yes | - | Your WAVE API key |
WAVE_BASE_URL |
No | https://api.wave.online |
API base URL |
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
}Add to .cursor/mcp.json:
{
"mcpServers": {
"wave": {
"command": "npx",
"args": ["-y", "@wave-av/mcp-server"],
"env": { "WAVE_API_KEY": "wave_live_..." }
}
}
}Add to Windsurf MCP settings with the same configuration.
Verify your API key is set:
echo $WAVE_API_KEYRestart your AI tool after adding the MCP configuration. Most tools require a restart to detect new MCP servers.
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 --versionSend 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- @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
cd packages/mcp-server
pnpm install
pnpm run build
pnpm run dev # Watch mode
pnpm run type-checkMIT
Exposes the MCP tool wave-mcp-server over stdio.
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/production.ts | resolved by grepping src/tools/production.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/analytics.ts | resolved by grepping src/tools/analytics.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 |
wave · mcp · model-context-protocol · ai · streaming · tools
Built by WAVE Online, LLC · wave.online · Docs · LinkedIn