Filters ambient acoustic background noise and computes SNR for voice agents using spectral gating and acoustic processing.
Single tool with critical definition gaps. Tool name 'filter_acoustic_noise' lacks action verb clarity (should be 'suppress_acoustic_noise' or 'detect_voice_activity'). Description is adequate (89 chars, within 10-1024 range) but lacks WHEN to use it and what the output means. Input schema is present but incomplete: 'frame_amplitudes' parameter has a description but no explicit type constraint in the schema object shown, the schema appears to declare type:array with items:number, which is correct, but the MCP server code does NOT validate or enforce this. Output schema is completely undocumented, LLMs cannot plan downstream calls without knowing the structure of 'processing_id', 'frame_rms_energy', 'spectral_gate_verdict', etc. No error handling guidance. No parameter constraints (min/max for array length). Tool is read-only but lacks explicit idempotentHint annotation.
Filters ambient acoustic background noise and computes SNR for voice agents.
Tool name lacks action verb. 'filter_acoustic_noise' is ambiguous, does it filter, suppress, detect, or gate? Should be 'suppress_acoustic_noise' or 'detect_voice_activity' to clarify intent.
Output schema completely undocumented. LLMs cannot infer the structure of response fields (processing_id, frame_rms_energy, spectral_gate_verdict, attenuation_applied_db). Must document all return fields with types and descriptions.
Input parameter 'frame_amplitudes' lacks constraints. No min/max array length, no guidance on valid amplitude range (0.0 - 1.0?). Description mentions default but does not explain when to override it.
Tool description does not explain WHEN to call it or what the output means. 'Filters ambient acoustic background noise and computes SNR' is incomplete, does not say 'returns voice activity verdict' or 'use before speech recognition'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
No error handling guidance. What happens if frame_amplitudes is empty, contains NaN, or has negative values? No recovery hints for LLMs.