WAVE MCP server has 24 tools across 7 modules (streams, studio, analytics, billing, production, voice, design, wave-ask). Tool definitions are centralized in src/tools/index.ts and properly registered via allTools array. However, source code provided is incomplete, only package.json, server.ts, sdk-server.ts, and index.ts are visible. Actual tool schemas, descriptions, and handlers in src/tools/*.ts files are NOT shown, making it impossible to verify parameter types, descriptions, output schemas, or error handling. Per HARD SCORING RULE: 'If you cannot see the actual tool definition in the source (only inferred): cap that tool's overall at 50.' Since tool implementations are inferred from file paths and names only, all 24 tools are capped at 50. The visible code shows good architectural patterns (single source of truth, dual transport support, startup validation) but provides zero evidence of schema quality, description completeness, or parameter documentation.
Tool implementations not visible in provided source code. Only file paths and tool names are shown; actual schemas, descriptions, parameter types, and handlers are absent. Cannot verify compliance with pattern:tool-description, pattern:constrained-input, or pattern:response-shaper.
No parameter descriptions visible. Cannot verify that parameters like 'status', 'type', 'id' are disambiguated for LLM understanding.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
No output schemas documented in visible code. Cannot verify that list tools return pagination (limit, offset, total_count), that create/update tools return created/modified resource IDs, or that responses include chaining IDs for downstream tool calls.
Destructive tools (stream_delete, studio_delete, production_delete) lack visible confirmation or dry-run support. Cannot verify pattern:confirmation-request implementation.
No error handling or recovery guidance visible. Cannot verify that tools return actionable error messages (e.g., 'User not found. Try search_users()') vs raw error codes.