Skip to main content
Glama
hail-hq

hail

Official

Release a number

release_number
DestructiveIdempotent

Release a phone number. DESTRUCTIVE and permanent.

Instructions

Release a phone number. DESTRUCTIVE and permanent.

    Calls and texts to the number stop. This month's fee and any earlier
    months are still billed. There is no refund. The number may not be
    recoverable.
    Ask the user before calling this.

    ``confirm_e164`` must equal the number's ``e164`` (for example
    ``"+14155550100"``). The tool reads the number first and refuses with
    ``{"error": ...}`` on a mismatch, without releasing anything. A number
    whose order is still pending cannot be released (409). A number whose
    order failed was never bought: the call only hides it from the list
    and returns ``{"dismissed": true, "number_id", "e164"}``.

    Returns ``{"released": true, "number_id", "e164"}``, or
    ``{"error": "<message>"}``.

Input Schema

NameRequiredDescriptionDefault
number_idYes
confirm_e164Yes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.29.0

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the destructiveHint annotation: it explains that calls/texts stop, that current and prior months are still billed with no refund, that the number may be unrecoverable, and that a mismatch aborts before any release happens. The 409 pending-order case and the dismissed-failed-order outcome are precisely the side effects an agent cannot infer from structured fields.

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 the destructive warning, then progressively less critical detail. Some return-shape text duplicates the output schema, but the error and dismissal paths add real value, so almost every sentence earns its place.

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 destructive two-parameter mutation with full annotation coverage and an output schema, this covers everything an agent needs: consequences, billing, confirmation semantics, refusal conditions, and failure outcomes. No material gap remains.

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 0%, so the description must carry the burden, and it does for the risky parameter: confirm_e164 must equal the number's e164, with a concrete format example and the mismatch-abort behavior spelled out. number_id is left undefined, but its meaning is self-evident from the resource context.

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 ("Release a phone number") and immediately flags the consequence ("DESTRUCTIVE and permanent"). This is clearly distinguishable from siblings like acquire_number, get_number, or cancel_verification 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 Guidelines4/5

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

Gives an explicit guardrail ("Ask the user before calling this") and describes when the tool refuses (pending order → 409) and the special failed-order path that only dismisses rather than releases. It doesn't name a sibling alternative, but the when/when-not conditions are clear enough that an agent knows exactly when the call will and won't do what it expects.

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