Skip to main content
Glama

Start a new voicehook call

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 link needs a normal browser, because an app's built-in browser blocks the microphone), operator_invite_url (the agent's own link for join), room and expires_in (seconds until an unopened link expires, 30 min); local_cli_hint only for a local client with a shell (Claude Code, Cursor, VS Code and similar). join with operator_invite_url waits for the person (up to 200 s in Claude clients, else 50 s) and returns waiting_for_human with next_action until they open human_url; it can be repeated until the link expires (410), also from a background job over the HTTPS bridge. Errors: 429 = too many new calls right now. Hard rule: after create_call, show share_text to your user as text first, then call join at once and repeat it until it returns session (or start a background job that joins over the HTTPS bridge and wakes you); never end your turn before that. Then keep calling next in a loop.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "create_call"
  }
}

Input Schema

NameRequiredDescriptionDefault
langNoLanguage of the person you are calling (default de).de
modeNonormal
nameNoOptional label for your own reference (not shown in the call; your name in the call comes from join).
soloNotrue or left out (default) = solo call: the voicebot speaks as each joining agent, every agent in its own voice and in first person; more agents may join (e.g. a second model next to you). false = the voicebot speaks as itself and announces the agents.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / solo / description
      Previous value: -"true or left out (default) = one-agent call: the voicebot speaks as the joining agent, in its voice and in first person, and a second agent is refused with 409. false = several agents may join, the voicebot speaks as itself."New value: +"true or left out (default) = solo call: the voicebot speaks as each joining agent, every agent in its own voice and in first person; more agents may join (e.g. a second model next to you). false = the voicebot speaks as itself and announces the agents."
  2. Changed1 schema field changed
    • changedInput schema / properties / solo / description
      Previous value: -"true = one-agent call: the voicebot speaks as the joining agent, in its voice and in first person, and a second agent is refused with 409. false or left out = several agents may join, the voicebot speaks as itself."New value: +"true or left out (default) = one-agent call: the voicebot speaks as the joining agent, in its voice and in first person, and a second agent is refused with 409. false = several agents may join, the voicebot speaks as itself."
  3. Changed1 schema field changed
    • addedInput schema / properties / solo
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "true = one-agent call: the voicebot speaks as the joining agent, in its voice and in first person, and a second agent is refused with 409. false or left out = several agents may join, the voicebot speaks as itself.",
      +  "title": "Solo"
      +}
  4. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only supply safety hints (readOnlyHint=false, openWorldHint=true); the description adds substantial behavior beyond them: return fields, 30-minute expiry, 429 and 410 error semantics, the 200 s/50 s join wait limits, and the repeatability of join. This is unusually rich disclosure for a mutating, open-world tool.

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 and the lang hint before the dense field/error/workflow block. It is long and reads as a single paragraph, but nearly every sentence carries needed operational detail, so there is little waste.

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?

For a call-initiating tool with an output schema, the description still supplies the workflow contract, expiry and timeout semantics, error codes, and the share_text prerequisite. Nothing an agent needs to call this correctly and then route into join/next is missing.

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

Parameters3/5

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

Schema coverage is 75% and the schema already documents name, solo, and lang in detail. The description's mention of lang ('de or en, default de') largely restates the schema, and it adds nothing for name, solo, or mode, so it does not meaningfully exceed the baseline.

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+resource ('Start a new voicehook.ai voice call') and its default behavior. It also references the follow-on sibling tools join and next, so an agent can distinguish this from join/next/say/leave without opening schemas.

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

Usage Guidelines5/5

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

The 'Hard rule' section gives explicit sequencing: show share_text first, then call join immediately, repeat until `session`, and continue with next in a loop. It also names the background-job-over-HTTPS-bridge alternative, so both when-to-use and alternatives are spelled out.

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.