Back to Browse

Voicehook Agent MCP Server

Developer ToolsLow Risk8.2MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

Talk with your agents. A voice call in the browser that your agent can start or join.

About

Talk with your agents. A voice call in the browser that your agent can start or join.

Remote endpoints: streamable-http: https://voicehook.ai/mcp?utm_source=mcpregistry&utm_campaign=d11-registry

Security Report

8.2
Low Risk8.2Low Risk

The voicehook-agent CLI is a voice-call bridge for coding agents with token minting via an invite link, LiveKit data-channel publishing, and a local control socket. The code shows no obvious malicious patterns or hardcoded secrets in the visible portion, and network access to voicehook.ai is consistent with its purpose. Minor observations remain: the operator invite is passed as a query parameter (though it is redacted from error output), and the analysis covers only a truncated portion of cli.py, so the remaining modules (relay, transport, activity, selfupdate) were not reviewed.

3 files analyzed · 3 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

process_spawn

Check that this permission is expected for this type of plugin.

database

Check that this permission is expected for this type of plugin.

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

voicehook-agent

CI CodeQL License: MIT Plugin version CLI version

Talk to your coding agents instead of reading their output.

Installing the voicehook-join plugin in Claude Code: two commands, then the plugin is enabled

voicehook.ai is a voice call in the browser. Hit "invite agent", hand the link to Claude Code, Codex or opencode, and talk to it while it keeps working. Delta, the voice in the call, answers from the status board and FAQ your agent keeps up to date, so you hear what is going on without opening a terminal.

This repo holds the agent side: the voicehook-join Claude Code plugin and the voicehook-agent CLI that lets any agent with a shell join a call.

Three ways to connect

Your agentHow to connect
Claude CodePlugin, two commands (see below). Details
claude.ai / Claude DesktopCustom connector https://voicehook.ai/mcp (Settings, Connectors, Add custom connector; no key). Guide
Any agent with a shellQuickstart A (HTTPS bridge, nothing to install) or the CLI

Which one? MCP (connector or plugin) is the entry: nothing to install, one agent per call, the only path with create_call, cards and decisions. The CLI is the pro tool for multi-agent work on one machine. The HTTPS bridge is the protocol underneath and the fallback.

MCP/bridge = one agent in the call; activity lines are only what that agent writes by hand. For several agents/sessions on one machine working on one call, use the voicehook-agent CLI (pro): its multi-session relay + Claude Code hook feed the live activity log, status and decisions of ALL local sessions into the call automatically. MCP/bridge run on the server and cannot see the user's local sessions.

pathroleuse it when
MCP (voicehook.ai/mcp)entry + distributiona single agent in a call, cloud/sandbox sessions, starting a call yourself
CLI (voicehook-agent)pro tool for multi-agent workseveral agents/sessions on one machine in one call, live activity log of all sessions
Bridge (/api/bridge/*)protocol underneath + fallbackno MCP client and no CLI

Details and install without git: docs/CLI.md.

In Claude Code:

/plugin marketplace add voicehook-ai/voicehook-agent
/plugin install voicehook-join@voicehook

Once connected, paste an invite link (https://voicehook.ai/r/<slug>?invite=<code>) into your agent and it joins the call.

MCP tools (connector and plugin):

toolwhat it does
create_callstart a new call for your user (main agent only: never delegate create_call to a subagent, the link would stay in its thread): human_url plus share_text (pass it on verbatim: open the link in a normal browser, not an app's built-in browser); hard rule: show share_text as text first, then join again until connected, then the next loop
joinjoin a call from an invite link with your chip label; greets for you in the call language (greet, default on); returns the session, the call language and the call context (first_actions); before the person opened a create_call link it waits (up to 200 s in Claude clients, else 50 s) and returns waiting_for_human with next_action: call it again at once until it returns the session, never end the turn before; a local Claude Code also gets local_cli_hint (this CLI keeps it in the call)
nextwait up to 50 s for the next turn (user, decision, operator, context, ended); call it at least every 10 to 15 s, one loop per agent; after a pause it brings missed
saythe voicebot speaks the text
statusstatus board (never spoken) the voicebot answers from, optional chip emoji
showa card on the call page (text, code, link or image), never spoken; an image card REQUIRES context (all information in the image as text, invisible on the page: the voicebot cannot see images)
activityone line of 3 to 8 words for the activity feed, on every step
decidea question for the Decision Board (yes/no or up to 3 options); the answer comes back in next
leaveleave the call

On 5xx, 503 or a network error the agent simply calls the tool again after 2 s; the session stays valid. Several agents in one call: rules.

CLI quickstart

uvx voicehook-agent join 'https://voicehook.ai/r/<slug>?invite=<code>' --name <your-own-name> --model <your-model-name>
  • --name and --model are mandatory: a display name the agent picks for itself and the exact model it runs on. Name your real model and vendor, never "Claude" unless you are Claude.
  • Use the full invite link, including ?invite=<code>.
  • stdout prints what the user and the voicebot say; every line on stdin is spoken.

In a call, keep voicehook-agent listen running in your harness's background mode (Claude Code: run_in_background, never &/nohup): it exits on the first event that needs you, which wakes you; start it again after handling it. Since 0.21.4 the Stop hook (voicehook-agent hook install) blocks a turn end while your join is connected and nobody listens (listen guard). Since 0.21.5 the join itself holds your presence and spools every event durably while you work (event spool): listen picks them up with a cursor, nothing is lost, and the Stop hook warns on unread events. When you wait for the human, ALWAYS decide, never only a status (0.21.6: status --waiting ... --question ... shows "wartet auf dich" together with the decision). In a call: answer every utterance first (say), hand work longer than 2 tool calls to background agents, keep turns short; since 0.21.7 new utterances reach you mid-turn through the PostToolUse hook.

Every decision and every status entry MUST carry hidden background for the voicebot (0.21.4): --context "..." plus the 3 most likely follow-up questions with prepared answers, --faq "Frage::Antwort" (no answer yet: say who works on it and the ETA, "In Arbeit bei , Ergebnis ca. 10 Min"). Activity lines may carry them too. On status they attach to the item they follow; without them the CLI prints a hint (see docs/CLI.md).

For a loop without polling (say, next, status, leave), the status board, the activity hook and all flags see docs/CLI.md. Since 0.21.0: decide --context "..." gives Delta the background of a question, ui large decisions / ui layout thirds / ui focus voicehook control the call page of the humans, status|activity --project NAME tags your project (docs/CLI.md).

Since 0.23.0 the agent in the call can give Delta standing rules and facts while the call runs, so he answers more himself: voicehook-agent delta-rule add "Sprich den Kunden mit Sie an", voicehook-agent delta-note add "Der Release ist am Freitag", ... list, ... rm <id>. Silent, from his next turn, max 20 rules and 30 facts of 300 characters.

Right after join (0.21.4) the CLI lists the other Claude Code / Codex sessions running on this machine and suggests asking the human "Soll ich die anderen N Sessions hier einbinden, damit sie ihren Status in den Call bringen?"; on yes the agent runs the printed setup commands. Agents on MCP or the bridge cannot see local sessions: they say it works in principle with the CLI installed: uv tool install voicehook-agent && voicehook-agent hook install.

Several Claude Code sessions on one machine (0.15.0): run voicehook-agent hook install once; while one session is in a call, every other session reports turn goal, PR, deploy and errors under its own name in the call's activity feed (multi-session relay). Since 0.16.0 such a helper session can also ask the human (decide, answer via relay-next or decide --wait) and keep its own status board (status --doing ...) (helper sessions).

OpenAI Codex CLI (0.20.0): voicehook-agent hook install --agent codex writes the same automation into ~/.codex (hooks.json, notify, a local MCP server with status, decide, next, activity; backup first), then trust the hooks once with /hooks in Codex (other coding agents).

Watcher (0.32.0): while a call is active, join and helper-import start ONE detached voicehook-agent watch per machine. It keeps every local session's board entry current with one whole German sentence (cheapest model, claude -p --model haiku, hourly token cap, else a fixed sentence), adds an activity line on state changes and removes decisions of sessions that went on. Interval 1/5/10/15 min (call page > --interval > 15); it ends with the call; VOICEHOOK_WATCH=0 turns it off (watcher).

Session Watcher (0.34.0, named so since 0.35.0): voicehook-agent connect once (approve the code in the browser), then voicehook-agent caretaker install: the watcher is active in every call of yours automatically, no per-call start and no keys to create (caretaker).

Pricing

About 10 minutes free every day. Prepaid from 10 EUR, no subscription.

Documentation

DocumentContents
docs/CLI.mdInstall, agent loop commands, status board and FAQ, speaking style, activity feed and hooks, shapes, self-update, Claude Code plugin, skill registration
docs/PROTOCOL.mdstdin/stdout protocol, data-channel topics, relay flags, HTTPS bridge, wake marker, server behaviour, environment variables
docs/DEVELOPMENT.mdCI jobs, plugin releases, CLI releases, PyPI setup
OPERATOR-PROTOCOL.mdServer-side operator protocol (voicehook.ai)

Development, CI and releases

CI runs tests, ruff, plugin validation, a secret scan and a skill drift check on every PR. Release tags, the plugin release checklist and the PyPI setup are in docs/DEVELOPMENT.md.

License

MIT, see LICENSE.


Made in Germany, hosted in Nuremberg (Hetzner). No cookies, no tracking, no call recordings. Nothing you or your agent say is stored. Privacy policy

Reviews

No reviews yet

Be the first to review this server!