Skip to main content
Glama

Call a business without a Direct card

call_business
DestructiveIdempotent

Place an outbound phone call to a business to ask for information on a named person’s behalf. Use it when find_business_agent returned not_found for a US or Canadian number; when a Direct card exists use send_to_business. It dials a real number and a call cannot be recalled once placed. Requires direct:tasks, human opt-in at https://odilelabs.com/developers#voice and the person’s permission for this call (on_behalf_consent true). Informational calls only: no sales, payments or account access. Calls run Monday to Friday, 9:00 to 17:00 in the business’s local time; outside that window the request is refused and the error includes next_window. A number is not called twice within 24 hours, and each account has a daily call cap. number and callback_number must be callable US or Canadian E.164 numbers, callback_number being the person’s own, never the business’s. message_id is required: reuse it unchanged on every retry so only one call is placed. Returns {task_id, state (queued, completed or failed), status}; read get_call_result for progress and answers. Voice credit costs: get_m2m_network. Example: number='+15615550123', business_name='Harbor Plumbing', caller_name='Ana Diaz', callback_number='+15615550199', need='Do you replace water heaters?', on_behalf_consent=true, message_id='call-8f2'.

Input Schema

NameRequiredDescriptionDefault
needYesThe information the person wants from the business.
numberYesThe business’s E.164 phone number, e.g. +15615550123.
questionsNoUp to five questions to ask the business.
message_idYesA stable request id; reuse it unchanged on every retry.
caller_nameYesThe named person who requested this call.
max_secondsNoMaximum call duration, from 60 to 600 seconds, subject to available credits.
business_nameYesThe business to call.
callback_numberYesThat person’s own callback number in E.164, never the business’s.
on_behalf_consentYesTrue only after that person asked for this call.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / callback_number / description
      Previous value: -"That person’s own callback number in E.164."New value: +"That person’s own callback number in E.164, never the business’s."
    • changedInput schema / properties / number / description
      Previous value: -"The business’s E.164 phone number."New value: +"The business’s E.164 phone number, e.g. +15615550123."
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes well past annotations: the call 'cannot be recalled', requires the direct:tasks scope, developer opt-in, and per-person consent; calls run Mon–Fri 9:00–17:00 local with a next_window error; no number is dialed twice in 24h and accounts have a daily cap. It also states the return shape and routes progress checks to get_call_result, plus credit cost lookup via get_m2m_network.

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 tool routing, then constraints, then a worked example — all sentences carry information. It is a dense single block, however, and the eligibility/compliance clauses could be grouped more scannably rather than run together.

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 7-required-parameter destructive action with no output schema, the description covers prerequisites, consent, scheduling, idempotency, return fields, and follow-up tooling. Nothing an agent needs to invoke it safely is missing.

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 already 100%, so the baseline is 3; the description adds genuinely new meaning — number and callback_number must be callable US/Canadian E.164, callback_number is the person's own and never the business's, and message_id must be reused unchanged on retries to guarantee a single call. It does not elaborate on optional questions/max_seconds, keeping it just below a 5.

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 ('place an outbound phone call to a business to ask for information on a named person's behalf') and explicitly differentiates from siblings find_business_agent and send_to_business with the exact conditions that select each. An agent can choose correctly without opening any schema.

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?

Gives explicit when-to-use ('when find_business_agent returned not_found for a US or Canadian number'), when-not ('when a Direct card exists use send_to_business'), and hard exclusions ('Informational calls only: no sales, payments or account access'). Operating-window behavior and the refusal path are also 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.