Dial by Aloha Labs
Server Details
Dial by Aloha Labs gives an AI agent its own real US or Canadian phone number through one remote MCP server, with no install. Signup is open, and agents can sign themselves up with the sign_up tool. Dial reads incoming verification codes, receives texts, and places AI voice calls with 10 voice personas. Free: $5 credit, no card, OTP codes included. Paid plans start at $15/mo.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 13 tools
Each tool has a distinct resource and action: number provisioning/listing/release, call creation/result retrieval, voice listing, SMS reading/OTP waiting, signup, usage, subscription, and billing management. Overlaps like get_phone_number vs list_phone_numbers and read_text_messages vs wait_for_verification_code are clearly differentiated by their descriptions.
Almost all tools follow a clear verb_noun or verb phrase pattern (get_call_result, make_phone_call, list_phone_numbers, release_phone_number). The main deviation is account_usage, which is a noun phrase, and sign_up uses a particle phrase, but the convention remains readable and mostly predictable.
13 tools is well-scoped for a telephony/account service covering onboarding, phone numbers, calls, SMS, voices, and billing. Each tool appears to earn its place without excessive granularity.
The surface covers the core lifecycle: signup, confirmation, number provisioning/listing/release, outbound calls with result retrieval, voice selection, SMS reading/OTP, usage, subscription, and billing management. Minor gaps include no explicit outbound SMS sending and no call-history/cancellation tool, but key workflows are covered.
Available Tools
13 toolsaccount_usageAInspect
Show your plan, limits, free credit and billing status, whether your email is confirmed, and texts received this month.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Your Aloha Dial API key (from sign_up) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the disclosure burden; 'Show' plus the enumerated fields reasonably signals a non-mutating read. It also usefully enumerates the payload contents, partially substituting for the missing output schema. However, nothing is said about authentication requirements beyond the api_key parameter, error behavior for unconfirmed emails, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb, and every listed item corresponds to actual return content rather than filler. Slightly list-heavy but there is no wasted clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description does the essential job of naming the returned data, which is the main thing an agent needs to choose this tool. The remaining gap is the absence of any disambiguation from manage_billing, which is a real but secondary omission for a single-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single api_key parameter is 100% documented in the schema, including its origin ('from sign_up'), so the description adds nothing on that front. Per the high-coverage baseline, 3 is the appropriate ceiling here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb ('Show') and enumerates the exact resource contents: plan, limits, free credit, billing status, email confirmation, and texts received this month. It's clearly a read-only account-summary tool. It falls short of 5 only because it never distinguishes itself from the sibling manage_billing, which overlaps on billing status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the listed fields — an agent can infer 'call this to check your account state' but there is no explicit when-to-use, when-not, or pointer to manage_billing / read_text_messages as alternatives. The overlap with manage_billing is left unresolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_call_resultAInspect
Get the result of a call from make_phone_call: status, outcome, summary and transcript. Waits up to wait_seconds for the call to finish; if it's still going, call again.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Your Aloha Dial API key (from sign_up) | |
| call_id | Yes | ||
| wait_seconds | No | How long to wait for the call to end (default 90) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the key non-obvious trait: the call blocks up to wait_seconds and may return while still in progress, requiring re-polling. It omits error behavior (invalid/expired call_id), whether the transcript is partial mid-call, and any auth or rate-limit constraints beyond the api_key parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. Return payload is front-loaded, then the blocking/polling behavior follows immediately after.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so naming the returned fields (status, outcome, summary, transcript) is genuinely necessary and it is done. The polling contract is covered. What is missing is failure-mode guidance for an invalid call_id or a call that never completes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: api_key and wait_seconds are already documented in the schema (default 90, max 120), so the description only restates the wait semantics. The lone undocumented parameter, call_id, gets no description beyond the implied origin from make_phone_call and its format is unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the result of a call') and enumerates the return contents (status, outcome, summary, transcript). It also names the sibling that produces the call_id (make_phone_call), so an agent can place it precisely against list_phone_numbers, make_phone_call, and the other siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames this as the follow-up to make_phone_call and gives a retry rule: 'if it's still going, call again.' That is real when-to-use guidance. It stops short of stating exclusions or what to do on a terminal failure (e.g. bad call_id), so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_phone_numberAInspect
Get a phone number for this agent. Returns your existing number if you already have one, otherwise provisions a new one. Use it when a website or service asks for a phone number.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Note for yourself, e.g. 'signups' | |
| api_key | Yes | Your Aloha Dial API key (from sign_up) | |
| area_code | No | Preferred US/CA area code, e.g. 310 | |
| force_new | No | Provision another number even if one exists |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It usefully discloses the retrieve-or-provision semantics and the resulting side effect of creating a number, but says nothing about limits, costs/billing implications, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with zero waste: what it does, the idempotency rule, then the use case. Front-loaded and appropriately sized for the operation's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an unannotated tool that can create a billable resource, the description is thin on behavioral consequences (cost, number limits, response shape) and has no output schema to lean on. The core semantics are covered, but an agent could still be surprised by provisioning side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description earns a bump by explaining the default 'return existing number' behavior that force_new overrides. It still ignores area_code and label.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a phone number') and adds the key semantic that it is retrieve-or-provision, which separates it from list_phone_numbers and release_phone_number. It doesn't name those siblings explicitly, so it falls short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use it when a website or service asks for a phone number' gives a concrete trigger condition an agent can match against. It offers no exclusions or pointer to alternatives (e.g. listing existing numbers), so it is clear context without routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_phone_numbersCInspect
List the phone numbers this account owns.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Your Aloha Dial API key (from sign_up) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. "List" implies a read-only operation, and "this account owns" usefully constrains scope to owned numbers, but there is no disclosure of pagination, result size limits, rate limits, or what fields each entry contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, appropriate for a one-parameter list tool. It borders on under-specified rather than verbose, but nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, so a short description is defensible, but with no annotations and no output schema the definition should say at least what a returned entry looks like or whether results are paginated. As written, an agent knows what it gets at a high level but not enough to consume the response confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, api_key, and the schema documents it at 100% coverage including its origin (sign_up). The description adds nothing about the parameter, so this lands at the baseline for high coverage rather than above it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ("List") with a specific resource ("phone numbers") and scopes it to what "this account owns," which separates it from a global or public number search. It doesn't name the sibling get_phone_number, but the list/get distinction is inferable from the verbs alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use, when-not-to-use, or named alternative. An agent must infer on its own that get_phone_number is the right choice when details for a single number are wanted, and nothing indicates whether released or pending numbers appear in the list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_voicesAInspect
List the voices you can use on calls, each with its gender, accent and personality. Pass the id as make_phone_call's voice.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Your Aloha Dial API key (from sign_up) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description still makes the read-only nature clear through 'List' and describes the returned fields. It does not mention auth, pagination, or rate limits, but for a simple static voice list the key behavioral trait, no mutation, is sufficiently conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the purpose and followed by the actionable next step. Every sentence carries information and there is no redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema, the description covers what is returned, the fields attached to each voice, and how to use the id. It is nearly complete, with only minor operational details such as auth or pagination left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single api_key parameter is already documented in the schema. The description adds no further detail about that parameter, which is acceptable given the high coverage and baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List the voices you can use on calls.' It also defines the returned attributes (gender, accent, personality), making the tool's purpose unmistakable and distinguishable from call-placement siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly ties the tool to call usage and names the downstream consumer: 'Pass the id as make_phone_call's voice.' That gives clear context, though it does not spell out when-not conditions or compare against another voice-selection path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_phone_callAInspect
Have an AI voice assistant phone a business or person for your human, from your Aloha Dial number: book a table, make an appointment, ask a question. It introduces itself as an AI assistant calling on behalf of your human, works toward the goal, and stays within your limits; anything outside them it notes for a callback. Returns a call id at once. Then call get_call_result to wait for the outcome, summary and transcript. US and Canadian numbers only; one call at a time.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Number to call, e.g. +13105551234 | |
| goal | Yes | What the call should achieve, e.g. 'Book a table for 2 this Saturday at 7pm' | |
| voice | No | Voice persona from list_voices, e.g. 'brian' (calm male) or 'sarah' (warm female). 'male'/'female' also work. | |
| api_key | Yes | Your Aloha Dial API key (from sign_up) | |
| details | No | Facts the assistant may share: reservation name, party size, a callback number, preferences | |
| number_id | Yes | id of your number (from get_phone_number); the call comes from it | |
| may_agree_to | No | Limits, e.g. 'any time 6:30-8:30pm; no deposit'. Without this it agrees only to exactly the goal. | |
| on_behalf_of | Yes | Your human's name, e.g. 'Berk Cagatay' | |
| assistant_name | No | Your own first name; the call opens 'Hi, this is <name>, an AI assistant calling for <human>' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses the AI self-introduction behavior, the callback-note fallback for anything outside may_agree_to limits, the asynchronous return of a call id, and the concurrency and geography constraints. This is exactly the behavioral context an agent needs before invoking a side-effecting, real-world call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and purpose, then the mechanism, then the follow-up workflow, then constraints. Dense and mostly earned, though the parenthetical examples and the trailing constraint sentence make it slightly crowded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the async workflow, geographic restriction, and concurrency limit for a 9-parameter mutation tool with no annotations and no output schema. It stops short of cost/credit implications and failure modes (e.g., what happens if the call cannot connect), but nothing required for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 behavioral meaning beyond the schema by explaining that may_agree_to is enforced as a limit and that out-of-limit asks become callback notes, and by tying number_id to the caller identity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (place an AI-assisted outbound phone call), plus concrete use cases (book a table, make an appointment, ask a question). It also distinguishes itself from get_call_result by framing itself as the initiator that only returns a call id at once.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to get_call_result for the outcome, and states hard preconditions: US and Canadian numbers only, one call at a time, and an Aloha Dial number as the source. The implied prerequisites (get_phone_number, list_voices) are named via schema field descriptions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_billingAInspect
Get a Stripe Customer Portal session URL. Your human opens it to update the card, switch between Starter, Pro and Scale, or cancel. Returns { url }.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Your Aloha Dial API key (from sign_up) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses that it returns a URL and that a human uses it, but it omits side effects (does it create a session?), whether it's idempotent, required permissions beyond the API key, and error behavior. This is a moderate gap for a tool with no structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with zero waste: the core action is front-loaded, the human use case is explained, and the return shape is stated. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description is nearly complete: it explains the return value ({ url }) and the human workflow. It could mention authentication requirements or session validity, but those are minor omissions for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter (api_key) is fully documented in the schema. The description adds no additional parameter meaning, so it meets the baseline of 3 when the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('Stripe Customer Portal session URL'), making it clear what the tool does. It doesn't explicitly distinguish from sibling tools like start_subscription or account_usage, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to use: 'Your human opens it to update the card, switch between Starter, Pro and Scale, or cancel.' However, it doesn't mention when not to use it or name alternative tools (e.g., start_subscription) for related billing actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_text_messagesCInspect
Read recent text messages received on one of your numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| api_key | Yes | Your Aloha Dial API key (from sign_up) | |
| number_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden: it does not confirm this is a safe read-only operation, does not say whether reading marks messages as read/consumed, does not describe ordering (newest-first?) or pagination, and does not mention rate limits or auth requirements beyond the schema's api_key field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with no filler, and the core action is front-loaded. Its brevity is efficient, though it borders on under-specification rather than tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read tool with no annotations and no output schema, the description leaves too much open: the return shape (message body, sender, timestamps), the meaning of limit, and whether results are paginated are all unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only api_key documented), so the description must compensate and largely fails. 'One of your numbers' weakly maps to number_id, and 'recent' hints at limit, but neither the default/maximum for limit nor the expected number_id format is explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource ('Read recent text messages') plus scope ('received on one of your numbers'), which clearly separates it from call-oriented and account-management siblings. It stops short of naming any sibling or clarifying whether 'read' returns content versus message metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus alternatives, no mention that a number_id must be obtained from list_phone_numbers first, and no guidance on inbound-only vs outbound messages. The only usage signal is implied by 'received'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_phone_numberBInspect
Give up a phone number you no longer need. You will stop receiving texts on it.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Your Aloha Dial API key (from sign_up) | |
| number_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose one real consequence: you stop receiving messages on that number. However, it never states whether the release is irreversible, whether the number can be recovered, whether billing stops, or whether confirmation is required — all critical for a destructive-sounding operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the action front-loaded and the consequence second. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a release/destructive operation with no annotations and no output schema, the description is too thin: it omits reversibility, cost implications, and how to source the required number_id. An agent could call it but cannot judge the risk of doing so.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: api_key is documented in the schema (including its link to sign_up), but number_id has no description anywhere. The tool description adds no guidance on how to obtain a valid number_id, so the undocumented parameter is left fully unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a concrete verb ('give up') and a concrete resource ('a phone number'), so it is immediately distinguishable from get_phone_number or list_phone_numbers. It stops short of naming a sibling or spelling out the release semantics, but the action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Give up a phone number you no longer have a use for' implies the when (a number you own and no longer need), but it names no alternatives or prerequisites. An agent must infer that the number must already be provisioned via get_phone_number/list_phone_numbers before calling this.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resend_confirmation_emailAInspect
Send a new email-confirmation link to your account's address (if the first one expired or got lost).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Your Aloha Dial API key (from sign_up) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that the email goes to the account's address and is a resend, but it does not mention side effects such as invalidating the old link, rate limits, authentication expectations beyond the required api_key, or what happens on success/failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with the action and condition front-loaded. Every part contributes useful information with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with full schema coverage and no output schema, the description is largely complete: it states what the tool does and when to use it. The main gap is that it does not cover behavioral details like invalidating prior links or rate limiting, but those are less critical for a low-complexity helper.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, api_key, and schema description coverage is 100%; the schema already explains it is the API key from sign_up. The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Send a new email-confirmation link.' It also adds the condition '(if the first one expired or got lost),' which implicitly distinguishes a resend from the initial sign-up flow, though it does not name a sibling tool explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical condition gives clear usage context: use this when the first confirmation email expired or was lost. It does not name exclusions or alternative tools, so it falls short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sign_upAInspect
Create your own Aloha Dial account. Use an email inbox you can read: a confirmation link is sent there and must be opened before you can get a number. Returns your api_key ONCE. Store it somewhere permanent and pass it to the other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | An email address you can read | ||
| invite_code | No | Invite code (required during the private beta) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses the email confirmation gate and, critically, that the api_key is returned only ONCE and must be stored permanently. It does not cover idempotency (what happens on a duplicate email) or whether invite_code is mandatory during the beta, which are real gaps for a no-annotation mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, front-loaded with the action followed by the two operational facts an agent must not miss (confirmation link, one-time key). Every sentence carries a distinct obligation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by explaining that the return value is an api_key shown once. The main omission is the invite_code/beta requirement, which an agent cannot infer from an "optional" schema property alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, including the exact phrasing "An email address you can read" that the description echoes. The description adds nothing about invite_code — notably it omits that it is required during the private beta despite the schema calling it optional — so it does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Create your own Aloha Dial account") and no sibling tool does account creation, so the agent can route here unambiguously. The follow-on constraint about needing a number is clearly a consequence of signing up, not a competing capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the operative precondition — the confirmation link must be opened before you can get a number — and implicitly sequences this ahead of the number/call tools by telling the agent to pass the api_key to the other tools. It stops short of naming explicit alternatives or stating what to do if an account already exists, so it is a strong 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_subscriptionBInspect
Get a Stripe Checkout link for a monthly plan. starter is $15 (1 number, 100 call minutes, 400 SMS), pro is $49 (5 numbers, 250 minutes, 1,000 SMS), scale is $179 (20 numbers, 1,000 minutes, 5,000 SMS). Your human can enter a promotion code on the page. Extra minutes are $0.15, extra numbers $2, extra SMS $0.015. Give the link to your human.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | No | starter ($15), pro ($49) or scale ($179). Default starter. | |
| api_key | Yes | Your Aloha Dial API key (from sign_up) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden. It usefully discloses that the result is a link the human completes on Stripe's page and that promo codes are entered there, but it does not say whether the call charges anything, whether the subscription starts immediately, or how long the link stays valid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, followed by decision-relevant pricing. The tier recitation is somewhat redundant with the enum descriptions and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple 2-parameter tool with a fully documented schema and no output schema, so the bar is modest. Still missing are the lifecycle facts an agent needs to answer its human's follow-up questions: charge timing, subscription activation, and link expiry.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the plan enum already lists each tier's price, so the plan breakdown in the description largely duplicates structured data. The added value is the overage pricing ($0.15/min, $2/number, $0.015/SMS), which is not in the schema and helps the agent advise its human.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource: obtain a Stripe Checkout link for a monthly plan, which is distinct from manage_billing or account_usage. It never names the sibling it is closest to, so an agent must infer the boundary itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Give the link to your human' gives one clear follow-up action, implying this is an agent-to-human handoff step. There is no explicit when-to-use versus manage_billing, and no statement that sign_up/api_key must already exist before calling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_for_verification_codeAInspect
Wait for a verification code (OTP) texted to one of your numbers and return it. Call this right after a site says it sent you a code. Each code is returned once.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Your Aloha Dial API key (from sign_up) | |
| service | No | Only accept codes from this sender, e.g. 'google' | |
| number_id | Yes | id from get_phone_number | |
| timeout_seconds | No | Default 60 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose key traits: it blocks/waits, it is scoped to your own numbers, and 'each code is returned once' (single-consumption semantics). It omits what happens on timeout (error vs empty return) and any auth/rate-limit notes, which is the only gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what it does and immediately followed by the trigger condition. No wasted words; the one-time-return caveat is placed last, which is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description states the tool returns the code, so the agent knows what to expect. Combined with fully documented parameters, the only missing piece is timeout/failure behavior, which a short additional clause would cover.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so api_key, service, number_id, and timeout_seconds are already documented in the schema. The description reinforces the number scoping but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Wait for a verification code (OTP) ... and return it'), which clearly distinguishes it from list-style reads like read_text_messages. It doesn't name a sibling for contrast, so it stops just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger condition: 'Call this right after a site says it sent you a code.' That's clear timing guidance, but it doesn't mention when NOT to use it (e.g., to read arbitrary messages use read_text_messages instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
13 tool updates
- First observed
account_usage - First observed
get_call_result - First observed
get_phone_number - First observed
list_phone_numbers - First observed
list_voices - First observed
make_phone_call - First observed
manage_billing - First observed
read_text_messages - First observed
release_phone_number - First observed
resend_confirmation_email - First observed
sign_up - First observed
start_subscription - First observed
wait_for_verification_code
Related MCP Servers
- AlicenseNot gradedqualityBmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs113 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.164 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.