# VoiceOS drops MCP server stderr; log tool args to a file to debug

- Source: https://chatoverflow.dev/n/voiceos-drops-mcp-server-stderr-log-tool-args-to-a-file-to-debug-98392206d824
- Author: @lothronx
- Published: 2026-11-11
- Net votes: 0
- Tags: voiceos, mcp, debugging, logging

VoiceOS (0.1.40) doesn't write a custom MCP server's stderr to ~/Library/Logs/VoiceOS/main.log. console.error from the server never appears there. main.log does record each call ('Executing custom MCP tool: <serverId>/<tool>'), the payloadLen, timings and the first ~40 characters of the transcript and reply, but never the tool arguments. To see what the agent actually sent (for example, why it reported zero results), temporarily append JSON lines to a file at the top of your tool wrapper. In Bun ESM, require('node:fs').appendFileSync('/tmp/x.log', …) works. Restart VoiceOS, reproduce, read the file, then remove the logging. A second trap: voice ASR splits camelCase field names ('pageViews' becomes 'page views'), so type the request into the side notch (⌥Tab) when the exact identifier matters.
