Skip to main content
Glama

place_call

SPENDS MONEY: dial one or more destinations from a workspace number; billed per minute from the wallet. Always confirm with the user before calling. Pass idempotency_key to make retries safe. Set control:"mcp" to drive the answered call yourself with wait_for_call_event/respond_to_call_event instead of a voice_callback_url webhook (exactly one destination in to in that mode).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "from": "<from>",
      "to": "<to>"
    },
    "name": "place_call"
  }
}

Input Schema

NameRequiredDescriptionDefault
toYesdestination E.164 numbers (at least one)
fromYescaller ID: an E.164 number owned by this workspace
controlNoset to "mcp" to control this call with wait_for_call_event/respond_to_call_event instead of a webhook; omit for today's default (customer webhook) behavior
purposeNoRequired on tools that read data or reports; recommended on every tool. One sentence: what you are doing and why (for example "finding this caller's open ticket to answer them"). Building a report, dashboard, analytics or an export is a SautiDesk Pro feature done by the report tools, not by pulling records.
hold_audio_urlNomcp mode only: audio URL to play while holding for the controller
idempotency_keyNoclient-chosen key so a retried request does not dial twice
opening_actionsNomcp mode only: voice-actions array spoken IMMEDIATELY when the call answers (sub-100ms), before your first wait/respond turn — use for the opening line so the caller isn't left in silence; should end in getDigits
fallback_actionsNomcp mode only: voice-actions array played after two consecutive control timeouts, in place of a bare hangup
client_request_idNoyour own correlation handle (order id, ticket number); becomes the call's clientRequestId on the PBX, so it comes back verbatim on the response, on every callback/event body, and on your voice callback URL. Use a distinct value per call — the PBX treats this field as an idempotency hint. Must not begin with mcp: or broadcast:; max 5000 characters. The PBX refuses whitespace, commas, braces or quotes in this field, so a label containing any of them is echoed on the response but NOT on callback bodies — send an opaque id, not a JSON document
control_timeout_msNomcp mode only: milliseconds to hold each control cycle before a filler/fallback escalation (api default 10000)
voice_callback_urlNoURL returning voice actions when the call answers; omit to use the number's configured routing. Mutually exclusive with control:"mcp"

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

The description goes well beyond the annotations by leading with 'SPENDS MONEY' and per-minute wallet billing, requiring user confirmation, and describing the idempotency behavior of retries. It also discloses the mcp-mode constraint that exactly one destination must be in `to`. It does not describe what happens if the call fails or how the billing is reported back, but the annotations only cover destructiveness and open-world scope, so this adds substantial value.

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?

The cost warning is front-loaded in the highest-value position, and every clause carries information: cost, confirmation, idempotency, mode selection. It is a dense run-on sentence chain of semicolon-separated fragments, which is slightly harder to scan than a structured list.

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

Completeness4/5

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

There are 11 parameters, 100% schema coverage and no output schema. The description covers the decision-critical facts: money spending, confirmation, mode choice and the constraint on `to`. The mode-specific tuning parameters (control_timeout_ms, opening_actions, fallback_actions, hold_audio_url) are left to the schema, which is acceptable but leaves the mcp workflow only partially sketched.

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 coverage is 100%, so baseline is 3. The description adds meaning beyond the schema: the single-destination restriction for `to` in mcp mode is stricter than the schema's 'at least one', and it explains the purpose of idempotency_key and control:"mcp" in the tool's own words. Other mcp-only parameters are left entirely to the schema.

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

Purpose4/5

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

The description gives a concrete verb and resource: 'dial one or more destinations from a workspace number'. It also states the cost model and the two execution modes (mcp control vs. voice_callback_url webhook). It never names or contrasts sibling tools such as desk_place_call or send_agent_call, so it does not fully distinguish the tool from its siblings.

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?

It gives clear operating context: 'Always confirm with the user before calling' and 'Pass idempotency_key to make retries safe'. It also states when to use control:"mcp" instead of a voice_callback_url webhook. Missing are explicit when-not rules and a direct pointer to the sibling to use for an alternative path.

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.

Resources