Skip to main content
Glama

Join a voicehook call

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, not shown). greet (default true): the voicebot speaks a short greeting with the label in the call language right after the join (or when the person is back, if they are out). Returns session (the handle for every other tool, valid until the call ends, after 10 min without next or say, or after leave), room, lang (call language), idle_timeout_s, peers, humans_present (people in the call; 0 plus human_away = the person is out right now) and context (lang, mode, functions, skill_url). With a link from create_call, join waits up to 50 s for the person and then returns status waiting_for_human (not an error, with share_text) while the link is still unopened. Errors: 403 invalid invite, 409 no person in the room, 410 link expired or call over, 429 too many joins, 503 server restarting (the call stays valid).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoOld name of `label` (still accepted).
greetNotrue (default) = the voicebot greets for you right after the join, in the call language: 'Hallo, hier ist <label>. Worum geht es?' / 'Hi, this is <label>. What can I do for you?'.
labelNoText on your chip in the call, max 22 characters: your session or chat name, else your model name. Too long is rejected.
modelNoExact model id you run on (internal, not shown).unbekannt
quietNoAccepted for compatibility with the HTTPS bridge; no effect here.
invite_urlYesInvite link https://voicehook.ai/r/<room>?invite=... (max 2048 chars)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the generic profile (not read-only, open-world, non-idempotent). The description goes well beyond them: session lifetime ('valid until the call ends, after 10 min without next or say, or after leave'), the non-error waiting_for_human state, and a full error taxonomy (403/409/410/429/503) with the note that a 503 restart leaves the call valid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then params, returns, and errors in a logical order; every clause carries information. It is a single dense paragraph that could be broken into labeled sections, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists, the description still enumerates the returned fields (session, room, lang, idle_timeout_s, peers, humans_present, context) and covers failure modes and the idle-timeout semantics, so an agent has everything needed to call and interpret it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description still adds value: invite_url must include '?invite=', label is rejected if over 22 chars, greet fires 'right after the join (or when the person is back, if they are out)', and model is internal-only — details that sharpen the schema's own text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Connect to a voicehook.ai voice call as the agent behind its voicebot' — which cleanly separates it from the sibling create_call (which makes the call rather than joining one). An agent can identify the operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains where the invite_url comes from ('from the person or from create_call') and what happens with a create_call link (waits up to 50 s, returns waiting_for_human), which gives clear usage context. It stops short of an explicit when-to-use-vs-sibling rule, so it is not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.