Skip to main content
Glama

Check outbound authorization

authorize_outbound
Read-onlyIdempotent

Preflight a call/SMS against the pre-dial gates (allowed|blocked|needs_review) before placing it. For a voice call it asks both questions create_outbound_call meets, in order: the workspace capabilities (destination country -- per-org allowlist plus an always-on high-risk-country hard block -- channel, profile, caps), then the per-call policy (suspensions, caller-number readiness). With from_number_id it first asks that number's own Number rules (caller ID allowed, allowed_countries covers the destination; stage outbound_number_rules). stage names the gate that answered. Not a full admission: the number's allowed_agents, concurrency and the wallet reserve are not checked. Read-only; no reserve, charge, or review row is written.

Input Schema

NameRequiredDescriptionDefault
toNo
channelYes
countryNoDestination country. Governed by the org's active workspace capabilities, not a fixed platform allowlist.
purposeNoOptional, free-form outbound purpose, recorded when sent; no purpose or token is ever refused. The documented advisory catalog is: appointment, booking_confirmation, callback_requested, customer_outreach, delivery_notification, ops_alert, other, payment_reminder, personal_errand, reservation, status_check, support.
metadataNo
categoriesNo
campaign_idNo
amount_minorNo
phone_numberNo
relationshipNo
from_number_idNo
recipient_typeNoOptional, never enforced or required -- outbound is not restricted to business recipients. Persisted verbatim on the call row if sent; SMS has no recipient_type column, so it is accepted but not stored there.
user_requestedNo
organization_idNoOptional. Defaults to the authenticated workspace; when supplied it must be that workspace's id.
user_authorizationNoOptional: who authorized the call and why ({authorized_by, reason}). Recorded, never required.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / purpose / description
      Previous value: -"Required, free-form outbound purpose declaration -- never refused for being novel. Any non-empty token is accepted; the documented advisory catalog is: appointment, booking_confirmation, callback_requested, customer_outreach, delivery_notification, ops_alert, other, payment_reminder, personal_errand, reservation, status_check, support."New value: +"Optional, free-form outbound purpose, recorded when sent; no purpose or token is ever refused. The documented advisory catalog is: appointment, booking_confirmation, callback_requested, customer_outreach, delivery_notification, ops_alert, other, payment_reminder, personal_errand, reservation, status_check, support."
    • changedInput schema / properties / user_authorization / description
      Previous value: -"Who authorized the call and why ({authorized_by, reason}); for voice, user_requested counts only with one."New value: +"Optional: who authorized the call and why ({authorized_by, reason}). Recorded, never required."
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations by disclosing the exact gate sequence (workspace capabilities, then per-call policy, then Number rules when from_number_id is set), the always-on high-risk-country hard block, and the negative guarantees: no reserve, charge, or review row is written. The explicit 'not checked' list (allowed_agents, concurrency, wallet reserve) is exactly the kind of scope boundary an agent needs to avoid over-trusting a positive result.

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-loads the purpose and verdict in the first sentence, then layers gate order and exclusions, so the most decision-relevant content comes first. The middle sentences are dense and parenthetical-heavy, and the dangling 'stage outbound_number_rules' fragment reads awkwardly, but little of the content is genuinely redundant.

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

Completeness3/5

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

For a 15-parameter tool with no output schema, the description does well on the gate model and read-only guarantees, but it leaves the return shape underspecified beyond the three verdicts and the meaning of `stage` — no indication of what reason/detail fields accompany a block. The missing routing guidance relative to evaluate_outbound_policy is also a real gap given that sibling exists.

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?

With only 33% schema description coverage across 15 parameters, the description carries real weight: it explains that from_number_id triggers the Number's own rules stage and that channel selects the voice-vs-SMS gate path, plus what `stage` means in the result. It still says nothing about to, phone_number, categories, campaign_id, amount_minor, relationship, or user_requested, so several parameters remain undocumented in both places.

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 (preflight) and resource (call/SMS against pre-dial gates) and names the concrete decision space (allowed|blocked|needs_review), which distinguishes it from create_outbound_call by making clear it answers rather than performs. An agent can tell what it returns 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?

Explicitly frames this as a check to run 'before placing' the call and ties it to create_outbound_call's questions in order, which gives clear when-to-use context. It also scopes itself with 'Not a full admission' and lists what is not checked, but it never mentions the closely related siblings evaluate_outbound_policy or check_number_requirements, leaving the agent to guess which preflight tool to pick.

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