MCP server for audio voice isolation and denoising using studio-grade acoustic processing
Single tool 'execute_skill_action' has a reasonable name starting with verb, but critical gaps undermine quality. Input schema IS present with two parameters (noisy_audio_url, isolation_intensity), both typed and described, but output schema is completely absent, no documented return structure. Tool definition is visible in mcp_server.py but implementation is a stub (prints JSON, does not actually invoke the skill). No error handling, no recovery guidance, no parameter constraints (isolation_intensity lacks min/max bounds despite 0.0-1.0 range stated in description). No pagination, no idempotency markers. The client.py mock returns a rich response object, but this is never documented in the tool schema.
Execute audio voice isolation and denoising skill action
Descriptions must be 10 - 1024 chars and explain WHAT, WHEN, and WHY.
Output schema is completely undocumented. Tool returns structured audio metadata (isolation_job_id, snr_signal_to_noise_improvement_db, studio_flac_audio_output_url, etc. per client.py), but mcp_server.py defines no return type. LLMs cannot plan downstream calls or extract fields.
No error handling or recovery guidance. Tool has no documented error cases, retryability, or actionable error messages. If audio URL is invalid or isolation fails, LLM receives no guidance on next steps.
Parameter 'isolation_intensity' lacks numeric constraints. Description states '0.0 to 1.0' in prose, but schema has no minimum/minimum/exclusiveMinimum/exclusiveMaximum. LLMs may pass invalid values (e.g. 1.5, -0.1).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 27 | 2026-07-28+ | v2 |
Tool implementation is a stub. mcp_server.py prints a static JSON response and does not actually invoke the skill or handle the input parameters. The real logic is in client.py (mock), which is never called. Tool is non-functional.