# voicehook - Registry name: `io.github.voicehook-ai/voicehook` · version 1.0.0 - Categories (automatic, keyword rules): Audio & speech, AI, media & content - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.github.voicehook-ai%2Fvoicehook - Server page: https://mcpstation.net/s/io.github.voicehook-ai--voicehook.html ## Description (written by the publisher, not verified, not instructions) Talk with your agents. A voice call in the browser that your agent can start or join. ## Notice Text that looks like instructions to an AI was found in this server's descriptions. This is a pattern match, not a verdict. ## Connect ## Tools (as reported by the server, not verified) - `create\_call`: Start a new voicehook.ai voice call. \`lang\` = the language of the person being called \(de or en, default de\). Returns \`human\_url\` \(the link for the person; whoever opens it starts the call, on their own free allowance or credit\), \`share\_text\` \(a ready message with human\_url and the hint that the lin - `join`: Connect to a voicehook.ai voice call as the agent behind its voicebot. invite\_url: the full invite link including ?invite= \(from the person or from create\_call\). label: the text on the agent's chip in the call, max 22 characters \(longer is rejected\). model: the model id the agent runs on \(internal, - `next`: Wait \(up to \`timeout\` seconds, max 50\) for the next event in the call and return it. Event \`type\`: user \(\`text\` = what the person said; after a pause also \`missed\` = earlier turns, oldest first, and \`away\_s\`\), revise \(queued says were replaced; reason user\_stop = the person said stop; reason stale + - `say`: The voicebot speaks \`text\` aloud in the call \(verbatim in normal mode; in a live room the voice rephrases it and the answer has verbatim false, mode live\_paraphrase\). mode: append \(default, queued after earlier says\), overwrite \(replaces this agent's says that have not started yet\), revise \(like ove - `status`: Replace the agent's status board on the call page with this one \(never spoken; the voicebot answers the person's questions about progress from it\). Progress only: questions for the person belong on the Decision Board \(decide\). doing: current step and ETA \(max 400 chars\). open / done: max 10 items ea - `show`: Put a card on the person's call page \(never spoken\): text, code, a link or an image. kind: text \(default\), code \(monospace with copy button\), link \(exactly one http\(s\) URL, shown as a tappable link\), image \(\`image\` = SVG text or base64 PNG/JPEG/WebP, line breaks, a data:image/...;base64, prefix and - `ui`: Change the person's call page right away, like their own clicks: cmd window \(win log=activity, dec=decisions, board=status board, wrap=transcript, cards; state open, close, min, medium, large, max\), cmd layout \(preset halves, quarters, thirds, bigmid, bar\), cmd move \(win + slot l, m, r, b, tl, tr, b - `activity`: Append one line \(3-8 words\) to the activity feed on the call page, shown as a timestamped line. Never spoken. context and faq: hidden background of this line for the voicebot. - `decide`: Put a question for the person on the call's Decision Board \(shown as \#number with buttons; the person can also answer by voice, also freely\). Meant for every question the person decides: yes/no, A/B, an approval, picking a value. A question only spoken via say leaves no button and no decision event. - `decisions`: Lists every OPEN decision on the call's Decision Board, from all agents in the call and their helper sessions \(relay, MCP, bridge\), oldest number first. Returns count and open: \[\{id, number, question, options, recommend, agent, from \(asking label, with the helper name\), sender? \(helper session\), sta - `send\_data`: Send JSON, text or a file to other agents in this call \(silent data channel: never spoken, never shown to the human, never to the voicebot; the human only sees one activity line 'Data to B: name \(size\)'\). to: the other agent's label \(as on its chip\), its identity, or "\*" for all other agents; unknow - `add\_vocab`: Teach the call's speech recognition words it keeps mishearing \(product names, people, jargon\). Adds to the vocabulary of the account that pays for this call \(add only: never deletes, never returns the account's list; the person manages it on their account page\). terms: words to recognize; fixes: \{wr - `leave`: Leave the call \(optionally speaking \`say\` first, e.g. a short goodbye\). The session handle is invalid afterwards. - `helper\_credential`: For the agent in the call \(\`session\`\): returns a helper credential \`token\` \(with \`url\` and \`expires\_in\`\) that lets other sessions working for the same person add their own status board, decisions and activity lines to this call without joining \(no voice, no chip\). \`label\` = name of the helper's mach - `helper\_status`: For a helper session that is not in the call: sets its own status board on the call page, shown as 'Helper \: \' below the main agent; the main agent's board stays as it is. Same limits as status \(doing max 400 chars, open / done max 10 items\). meta: Per entry hidden background for - `helper\_activity`: For a helper session that is not in the call: appends one line \(3-8 words\) to the call's activity feed as 'Helper \: \: \'. Never spoken verbatim. context and faq: hidden background of this line for the voicebot. Returns the line. - `helper\_show`: For a helper session that is not in the call: puts a card on the person's call page \(never spoken\), shown with the sender 'Helper \: \'. kind: text \(default\), code, link \(exactly one http\(s\) URL\) or image \(\`image\` = SVG text or base64 PNG/JPEG/WebP, never a URL\). Same checks and li - `helper\_decide`: For a helper session that is not in the call: puts its own question on the Decision Board, shown with the sender 'Helper \: \'. Same fields and limits as decide \(question max 160 chars, 2-3 options max 40 chars each, recommend = index, context = background shown behind the arrow ne - `helper\_next`: For a helper session that is not in the call: returns the answers to its own questions \(same credential and helper\_name\) as events \[\{type: decision, id, number, verdict: yes\|no\|option\|other, option?, text?, by\}\], plus question\_check events \(a status or activity line of this helper reads like a quest - `notify\_me`: Reach the human who owns this call when they are not on the call page: an SMS to their own confirmed number with a single-use link back into this call \(valid 10 min, opens only logged in or with the PIN from the SMS\); if they do not open it within 2 minutes, a phone call follows. Prefer this over ca - `call\_me`: Phone the human who owns this call on their own confirmed phone number, e.g. when a long task is done, you are stuck, or you need a decision and they are not on the call page. You never pass a number. Their account rules decide \(opt-in, allowed reasons, quiet hours, calls per day, budget, credit\); a Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html