All servers · Audio & speech
voicehook
io.github.voicehook-ai/voicehook · v1.0.0
New (7 days)Has write/delete toolsInstruction-like text in descriptionsTools changed (7 days)
Measured by MCP Station
| Last check | Reachable |
|---|---|
| Checked at | — |
| Check success 7 / 30 days | — |
| First-try success 30 days | — |
| Median response | — |
| Lookups 30 days | — |
| Authentication | No auth |
| MCP version | 2025-06-18 |
| Rank score | — |
| Declared risk | Has destructive tools (destructiveHint) |
| Capabilities declared | prompts, resources, tools |
| Tool definitions | 21 tools · with description 100% · input schema is an object 100% · read/destructive hints 100% |
Instruction-like text was found in next. This is a pattern match, not a verdict. What we look for
Description written by the publisher, not verified
Talk with your agents. A voice call in the browser that your agent can start or join.
Connect
streamable-http · https://voicehook.ai/mcp?utm_source=mcpregistry&utm_campaign=d11-registry
{
"mcpServers": {
"voicehook": {
"url": "https://voicehook.ai/mcp?utm_source=mcpregistry&utm_campaign=d11-registry"
}
}
}Tools as reported by the server
create_callStart 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 linjoinConnect 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,nextWait (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 +saywrite/deleteThe 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 ovestatuswrite/deleteReplace 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 eashowPut 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 anduiChange 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, bactivityAppend 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.decidewrite/deletePut 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.decisionsLists 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), stasend_dataSend 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; unknowadd_vocabTeach 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: {wrleavewrite/deleteLeave the call (optionally speaking `say` first, e.g. a short goodbye). The session handle is invalid afterwards.helper_credentialFor 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 machhelper_statuswrite/deleteFor a helper session that is not in the call: sets its own status board on the call page, shown as 'Helper <label>: <helper_name>' 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 forhelper_activityFor a helper session that is not in the call: appends one line (3-8 words) to the call's activity feed as 'Helper <label>: <helper_name>: <text>'. Never spoken verbatim. context and faq: hidden background of this line for the voicebot. Returns the line.helper_showFor 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 <label>: <helper_name>'. 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 lihelper_decidewrite/deleteFor a helper session that is not in the call: puts its own question on the Decision Board, shown with the sender 'Helper <label>: <helper_name>'. 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 nehelper_nextFor 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 questnotify_meReach 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 cacall_mePhone 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
Tool changes
- 2026-10-24: create_call, join, next, say, status, show, ui, activity, decide, decisions, send_data, add_vocab
- 2026-10-23: create_call, join, next, say, status, show, ui, activity, decide, decisions, send_data, add_vocab
- 2026-10-22: create_call, join, next, say, status, show, ui, activity, decide, decisions, send_data, add_vocab
- 2026-10-21: create_call, join, next, say, status, show, ui, activity, decide, decisions, send_data, add_vocab
- 2026-10-20: create_call, join, next, say, status, show, ui, activity, decide, send_data, add_vocab, leave
- 2026-10-19: create_call, join, next, say, status, show, activity, decide, send_data, leave
- 2026-10-18: create_call, join, next, say, status, show, activity, decide, send_data, leave
Repository · Website · JSON · Text for agents · Registry updated 2026-10-17