Local MCP server for macOS that captures microphone + system audio into explicit sessions and exposes raw WAV audio (stereo L=mic, R=system) to AI agents.
Audio-mcp has well-structured tool definitions with clear naming (verb_noun pattern), comprehensive descriptions (avg 150+ chars), and complete input schemas using Zod. All 7 tools are explicitly registered with descriptions and typed parameters. However, output schemas are not formally documented in the tool definitions, responses are returned as JSON but the structure is not declared in the tool metadata. Error handling uses custom AudioMcpError codes but lacks recovery guidance (e.g., 'SESSION_ALREADY_ACTIVE' is mentioned but no suggestion for what to do next). Parameter descriptions are good but some lack format/constraint details (e.g., 'label' has no length limit stated). No tool annotations (readOnlyHint, destructiveHint) despite clear risk classifications in the metadata.
Permanently delete a session's audio file and metadata. Refuses active sessions.
Return a base64-encoded WAV slice of a recorded session. Max 300 seconds per call; chunk larger ranges yourself.
Return metadata for a single session.
List available microphone input devices on this machine.
List all recorded sessions, newest first.
Start a new audio capture session. Captures mic, system output, or both into a single WAV. For capture='both' the file is stereo with L=mic and R=system audio. Fails with SESSION_ALREADY_ACTIVE if a session is already running.
Stop the active capture session and finalize the WAV file.
Output schemas not documented in tool definitions. Responses are returned as structured JSON but the tool metadata does not declare what fields agents should expect. This forces LLMs to infer structure from examples rather than relying on formal schema.
Error responses lack recovery guidance. AudioMcpError codes (SESSION_ALREADY_ACTIVE, etc.) are defined but error messages do not suggest next steps. E.g., 'SESSION_ALREADY_ACTIVE' should suggest 'Stop the active session first with stop_session().'
Tool annotations missing. Tools have clear risk classifications (WRITE, READ_ONLY, DESTRUCTIVE) in metadata but are not exposed via MCP tool annotations (readOnlyHint, destructiveHint). This prevents clients from applying appropriate UI/UX warnings.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2025-06-18+ | v2 |
Parameter constraints not fully documented. 'label' parameter has no stated length limit; 'start_second' and 'end_second' have minimum=0 but no maximum stated. Format constraints should be in descriptions, not just JSON Schema.
List tools lack pagination guidance. list_sessions and list_audio_sources return all results without limit or offset parameters. If many sessions accumulate, response size could blow context windows. Should document max result count or add pagination.