The MCP tool
Hotato exposes exactly one MCP tool: score, read back failures, propose a fix. Same JSON as the CLI, honest scope inline.
Run the server
Optional MCP extra; CLI stays dependency-free. Zero-install:
uvx --from "hotato[mcp]" hotato-mcp # or, if installed python -m hotato.mcp_server
Runs over stdio, one tool: voice_eval_run. Fully local; nothing leaves the machine.
Point a client at it
Register the stdio command; same shape everywhere:
# mcp client config (shape; keys vary by client) "hotato": { "command": "uvx", "args": ["--from", "hotato[mcp]", "hotato-mcp"] }
The one tool: voice_eval_run
Two modes: single recording or bundled battery.
| Parameter | Purpose |
|---|---|
stereo | Two-channel WAV (caller/agent). |
caller, agent | Mono WAVs, vs stereo. |
suite | barge-in: bundled self-test. |
stack | livekit | pipecat | vapi | generic: tunes config-fix knob names. |
expect | yield: agent stops. hold: backchannel. |
onset_sec | Required for mono; optional for stereo. |
caller_channel, agent_channel | Default 0, 1. |
max_talk_over_sec, max_time_to_yield_sec | Optional pass/fail bounds. |
Honest scope, stated to the agent
Measures barge-in, turn-taking, overlap, backchannel timing, and states what it doesn't: no accuracy percentage, no speaker identification, diarization, transcription, or emotion detection. Agent sees the ceiling, not the number.
Server source: mcp_server.py.