Skip to main content
Glama

Server Details

Send SMS/WhatsApp and verify OTP codes in Morocco (+212) and worldwide. Direct carrier routing.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 38 days
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL

TDQS

A3.8/5.0

Scored across 18 tools

Disambiguation5/5

Each tool targets a distinct resource or action: sending (single, bulk, OTP, WhatsApp), querying (messages, status, analytics), list operations (campaigns, contacts, sender IDs), admin ops (monitoring, pulse, route quality), and public lookups. No two tools appear to overlap in purpose, and descriptions differentiate sending channels clearly.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (e.g., send_sms, list_messages, get_balance). The ops_ prefix for admin tools is a coherent subpattern. No mixing of camelCase or inconsistent verb styles.

Tool Count4/5

18 tools is slightly above the ideal 3-15 range but justified by the broad scope covering messaging, account management, and admin operations. The count feels comprehensive rather than bloated, with each tool serving a clear purpose.

Completeness4/5

The tool set covers the core SMS/WhatsApp lifecycle: sending (bulk, single, OTP, template), status tracking, analytics, balance, pricing, and contact/campaign listing. Minor gaps exist (no create/update/delete for contacts or campaigns), but these are not critical for the server's apparent focus on sending and monitoring.

Available Tools

18 tools
create_topupAInspect

Create a balance top-up checkout link (Stripe card or crypto USDC) for the authenticated account.

ParametersJSON Schema
NameRequiredDescriptionDefault
pack_idNoSMS top-up pack ID (e.g. 'sms-300' for 300 MAD, 'sms-1000' for 1000 MAD, 'sms-5000' for 5000 MAD). Optional if amount_mad is provided.
currencyNoPayment presentation currency for card checkout ('mad' or 'eur'). Default 'mad'.
amount_madNoCustom recharge amount in MAD (minimum 300 MAD). Optional if pack_id is provided.
payment_methodNoPayment method ('stripe' for card or 'crypto' for USDC). Default 'stripe'.

TDQS

A3.5/5.0
Behavior3/5

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 tool creates a checkout link rather than directly crediting balance, and it names the payment methods. However, it does not explicitly state that the payment is not executed immediately, what the return value contains, or any authentication requirements beyond 'authenticated account'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that conveys the core purpose and key options without wasted words. It is appropriately concise for a tool with well-documented parameters.

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?

The description is adequate for a simple link-creation tool but leaves some context implicit: there is no output schema, yet the return value (presumably the checkout link) is not mentioned directly. The conditional relationship between pack_id and amount_mad is only in the schema, and no behavioral caveats about payment completion are given.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level meaning beyond what the schema already provides; 'Stripe card or crypto USDC' merely restates the payment_method enum values.

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 clearly states the action ('Create'), the resource ('balance top-up checkout link'), and the payment options ('Stripe card or crypto USDC'). It is specific enough to distinguish this from the messaging and monitoring siblings, though it does not explicitly name or contrast a sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies the tool is for topping up the authenticated account's balance via a generated checkout link, but it gives no explicit when-to-use or when-not-to-use guidance. There are no alternative top-up tools listed, so the usage context is reasonable but not fully elaborated.

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

get_analyticsAInspect

Get SMS & WhatsApp message delivery metrics, success rates, and volume statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window in days (1-365, default 30)

TDQS

A3.5/5.0
Behavior3/5

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

The description conveys the core behavior: it returns delivery metrics, success rates, and volume statistics for SMS and WhatsApp, and the verb 'Get' implies read-only. However, with no annotations, it omits context about aggregation behavior, time-window effects, and output shape, so the disclosure is partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler, front-loading the verb and resource. It is appropriately sized for the simplicity of the tool.

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 simple one-optional-parameter read tool, the description and schema cover the basics. However, the lack of an output schema and any guidance on how this tool relates to sibling monitoring tools leaves some ambiguity about the response structure and suitable selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the 'days' parameter is fully described with a range and default. The tool description adds no parameter-specific detail, so the schema carries the semantic load and the baseline score applies.

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 clearly states a specific verb ('Get') and resource (SMS & WhatsApp delivery metrics, success rates, and volume statistics). It distinguishes itself from siblings like get_message_status or list_messages by focusing on aggregate analytics, though it does not explicitly name those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies use for aggregate channel analytics, but it does not explicitly state when to choose this tool over get_message_status, list_messages, or ops_monitoring. No alternatives, prerequisites, or exclusions are given, leaving the selection logic to inference.

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

get_balanceAInspect

Check remaining SMS credit balance in MAD and account status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. The word 'Check' implies a read-only operation, and the description adds useful detail (currency and account status), but it does not explicitly state that no credit is consumed or that the call has no side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler words. Every part adds information: the action, the resource, the currency, and the additional status check.

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 zero-parameter getter with no output schema, the description covers the essential returned information (balance and account status) and leaves no major ambiguity about what the tool does. No additional caveats or preconditions are needed for a simple read-only balance check.

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?

The tool takes zero parameters, which is the baseline 4 case. The description correctly avoids inventing parameters and simply states what the tool looks up.

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?

The description uses a specific verb ('Check') and names the exact resource ('remaining SMS credit balance in MAD') plus the secondary result ('account status'). This clearly differentiates it from siblings like send_sms, get_analytics, or create_topup.

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?

Although it does not explicitly mention alternatives or exclusion conditions, the intended context is obvious: call this tool whenever the remaining SMS credit or account status is needed. There is no competing sibling that does the same thing, so no stronger routing is necessary.

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

get_message_statusAInspect

Check the real-time delivery status, segments, and cost of a sent message by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYesMessage ID returned by send_sms

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It does reveal that the tool returns real-time delivery status, segments, and cost, which is useful. However, it does not mention error behavior, whether the operation is read-only, or what happens when a message ID is invalid or not found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler. Every word contributes meaning: real-time, delivery status, segments, cost, and the ID-based lookup.

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?

For a single-parameter getter with no output schema, the description gives a solid outline of what the agent will get back: status, segments, and cost. It is concise and complete enough for typical use, though error or not-found behavior is not described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the message_id parameter is already explained as the ID returned by send_sms. The description adds only the general 'by ID' phrasing, so it does not need to compensate for missing schema information.

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?

The description uses a specific verb ('Check') with a clear resource: delivery status, segments, and cost of a sent message by ID. This distinguishes it from siblings like list_messages or get_analytics, which cover different query scopes.

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?

The phrase 'by ID' and the schema's reference to 'Message ID returned by send_sms' make the intended usage context clear. It does not explicitly list alternatives or exclusions, but the context is sufficient for a simple getter tool.

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

get_pricingAInspect

Get EnvoiSMS pricing. Pass to (a phone number in E.164, e.g. +2348012345678) for that destination's per-SMS rate; omit it for Moroccan rates and credit packs. Public — no authentication required.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoDestination phone number in E.164 format, e.g. +2348012345678. Optional.

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It explicitly states 'Public — no authentication required,' which is a key behavioral trait. It also explains the conditional behavior based on the `to` parameter, though it does not discuss output format, potential errors, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entire description is two sentences with no filler. The core purpose is front-loaded, parameter usage is explained with an example, and the authentication requirement is a single concise suffix. 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 tool with a single optional parameter and no output schema, the description covers everything needed to invoke it correctly: parameter format, conditional behavior, and authentication requirements. There are no significant gaps for a pricing lookup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema by explaining the exact effect of including or omitting `to` and providing an E.164 example. This clarifies the parameter's purpose in a way the schema alone does not.

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?

The description opens with a specific verb and resource: 'Get EnvoiSMS pricing.' It clearly distinguishes this tool from siblings by focusing exclusively on pricing, and it explains the two modes of operation (destination-specific vs. Moroccan rates), leaving no ambiguity about what the tool does.

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?

The description gives clear context for when to pass `to` versus when to omit it, effectively acting as usage guidance. It does not explicitly name alternatives or state when not to use the tool, but since no sibling tool handles pricing, the context is sufficient.

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

list_campaignsAInspect

List SMS marketing campaigns created on the account.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of campaigns to retrieve (1-50, default 20)

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must carry the burden of disclosing behavior. The word 'List' implies a read-only operation and the account scope is stated, but it does not describe ordering, pagination behavior, or what a campaign object looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short, front-loaded sentence with no filler. It states the action, resource, and scope efficiently and earns every word.

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?

For a simple list tool with one optional parameter and no output schema, the description is mostly complete. It clearly defines the resource and scope, and the limit parameter is documented in the schema. It could mention return format, but the low complexity keeps this from being a major gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'limit' is fully documented in the input schema with 100% coverage. The description adds no extra parameter semantics, so the schema does the required work and the baseline of 3 applies.

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?

The description uses a specific verb ('List') with a precise resource ('SMS marketing campaigns') and account scope. This clearly distinguishes it from sibling tools like list_messages and list_contacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like list_messages or list_contacts. The description only states what it lists, but does not mention exclusions, prerequisites, or preferred scenarios.

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

list_contactsAInspect

List saved contacts or search contacts by name, phone, or email.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch query matching phone, name, or email
limitNoNumber of contacts to retrieve (1-100, default 20)
list_idNoFilter contacts by contact list ID

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It reveals that the tool supports both listing and searching, which is valuable context, but omits return format, pagination, and default behavior when no query is supplied. For a read-only listing tool, this is acceptable yet incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence that fronts the action, states the resource, and enumerates searchable fields. No wasted words or irrelevant detail; every element earns its place.

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?

For a simple read-only listing tool with fully documented optional parameters, the description plus schema covers the essential usage modes. It could explicitly state that omitting q lists all contacts, but this is reasonably inferable from the 'list or search' phrasing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3 applies. The description adds that q matches name, phone, or email—lightly redundant with the schema's own q description—and provides no extra semantic context for limit or list_id beyond what the schema already explains.

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?

Clearly identifies the action (list) and resource (saved contacts), and specifies searchable fields (name, phone, email). It distinguishes itself from sibling message/campaign/analytics tools by resource type, though it does not explicitly contrast with a contact-specific alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

Provides implicit usage context by contrasting the two main modes—listing all saved contacts versus searching by contact fields. However, there is no explicit guidance on when to choose this tool over alternatives, no prerequisites, and no stated exclusions. With no contact-related siblings, this is a minor gap.

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

list_messagesAInspect

List recent outbound messages for the authenticated account with optional filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of messages to retrieve (1-50, default 20)
statusNoFilter by delivery status
channelNoFilter by communication channel

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral disclosure burden. It communicates that this is a read-only listing operation, scoped to the authenticated account and outbound messages, and that it returns recent items. It does not disclose pagination behavior, ordering details, or possible response/error characteristics, which are not covered elsewhere.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core action and resource, followed by scope and filter availability. There is no redundant wording or unnecessary detail.

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?

For a low-complexity list tool, the description plus the fully documented schema provides enough context to invoke the tool correctly: it identifies the resource type, scope, recency, and filter capability. However, absent annotations and an output schema, a bit more detail about ordering or response shape would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all three parameters with descriptions and enums, achieving 100% coverage. The description only adds the generic phrase 'optional filters,' which correctly signals that all parameters are optional but adds no specific semantic detail beyond the schema.

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?

The description states a clear action and resource: 'List recent outbound messages'. It also specifies scope ('for the authenticated account') and the presence of optional filters, which differentiates it from siblings like send_sms, get_message_status, and list_campaigns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies when to use this tool—when a list of recent outbound messages is needed—but it does not explicitly contrast it with alternatives such as get_message_status for a single message or list_campaigns for campaign-level data. No exclusions or when-not-to-use guidance is provided.

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

list_sender_idsAInspect

List approved and pending custom alphanumeric Sender IDs registered on the authenticated account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations are absent, so the description carries the burden. It discloses that the tool lists approved and pending Sender IDs, which implies a read-only operation. However, it doesn't explicitly state that the operation is non-destructive, nor does it mention pagination, result format, or any rate limits. The description is adequate but minimal for a read-only list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the key terms 'List approved and pending custom alphanumeric Sender IDs', which immediately conveys the purpose. It has zero waste and is appropriately sized for a parameterless list operation.

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?

Given the tool's simplicity (no parameters, no output schema, no annotations), the description is reasonably complete. It covers the what (list Sender IDs) and the scope (approved and pending, authenticated account). It could mention that it returns both statuses in one call, but that is implied by 'approved and pending.' The description suffices for an agent to call it correctly.

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?

The tool has no parameters, so there is nothing to explain. The schema coverage is 100% (there is nothing to cover), and the description does not mislead. A baseline of 4 is appropriate for a tool with zero parameters, as no additional parameter semantics are needed.

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 clearly states the tool lists approved and pending custom alphanumeric Sender IDs for the authenticated account. The verb 'list' and the resource 'custom alphanumeric Sender IDs' are specific, and 'approved and pending' adds detail. It is distinguishable from siblings like list_campaigns and list_contacts by naming the specific resource, though it doesn't explicitly differentiate from similarly named list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies usage in the context of managing sender IDs (e.g., before sending SMS), but it does not explicitly state when to use this tool over alternatives, nor does it mention any prerequisites like authentication. Given there are no siblings for listing sender IDs, the lack of explicit alternatives is a minor gap, but the context is straightforward.

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

lookup_numberAInspect

Inspect a phone number: validate format, identify Moroccan operator (IAM / Maroc Telecom, Orange, Inwi) or international country, and view applicable rate. Public — no authentication required.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesPhone number to lookup in national (06...) or E.164 (+212...) format.

TDQS

A4/5.0
Behavior4/5

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 a meaningful trait: 'Public — no authentication required.' The verbs 'Inspect' and 'view' also implicitly signal a read-only operation. It does not cover response format, rate limits, or error behavior, so there is room to improve, but it goes beyond a bare restatement of the tool's name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, with the core purpose front-loaded in the first sentence and the auth context in the second. Every phrase earns its place, and the colon-separated list keeps the capabilities scannable.

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?

For a one-parameter read-only lookup with no output schema, the description supplies the essential context: purpose, scope (Moroccan operators or international), the applicable rate, and the fact that it is public. It would be more complete with a note about what the result looks like, but the missing detail is minor given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents the single parameter 'to' fully (national or E.164 format), giving 100% schema description coverage. The description adds no new parameter-level guidance beyond what the schema states, so the baseline of 3 is appropriate.

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?

The description opens with a specific verb, 'Inspect', and a concrete resource, 'a phone number', then enumerates three distinct capabilities: validating format, identifying Moroccan operator or international country, and viewing applicable rate. This clearly differentiates it from sibling tools like get_pricing (price list) or send_sms (sending), which operate on different objects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies when the tool is relevant—when someone needs to validate a number or check its operator/rate—but it never explicitly contrasts it with alternatives such as get_pricing or mentions when not to use it. The 'Public — no authentication required' note gives some context, but it is about auth, not selection among siblings.

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

ops_monitoringAInspect

Admin only. Current operational state: open ops alerts by severity, upstream gateway balance, and known issues that need attention right now.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must carry the burden of behavioral disclosure. It implies a read-only snapshot but doesn't explicitly state it, nor does it mention any side effects, caching behavior, or data freshness. It does describe the content returned, which is useful, but leaves out potential characteristics like latency, pagination, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tightly written sentence. It front-loads the access restriction ('Admin only') and then lists the core data points. No filler words; every clause adds value. This is exemplary conciseness.

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?

For a zero-parameter tool with no output schema, the description provides a clear list of data categories (alerts, balance, issues). It covers the essential 'what' and 'why' (needs attention). While it could mention freshness or how to interpret severity levels, the simplicity of the tool means this is largely sufficient. The note 'Admin only' also adds necessary context for access.

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?

The tool has zero parameters, so the input schema provides no semantic burden. Per the guidelines, a baseline of 4 is appropriate since the description doesn't need to compensate for missing parameter documentation. The description focuses on outputs, which is effective.

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 clearly states that the tool reports current operational state including alerts by severity, gateway balance, and known issues. It uses specific verbs and resources, and while it doesn't explicitly distinguish from siblings like ops_pulse, the focus on 'needs attention right now' gives it a distinct purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

It provides an access restriction ('Admin only') but no explicit guidance on when to use this tool versus alternatives such as ops_pulse or ops_route_quality. The phrase 'known issues that need attention right now' implies urgent operational monitoring, but it doesn't clearly state exclusions or alternative use cases.

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

ops_pulseAInspect

Admin only. Business health snapshot: margin, cash collected, customer float (liability), solvency ratio, active accounts, and money stuck in the refund-review queue.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window in days (1-365). Default 30.

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the transparency burden. It discloses an auth requirement (Admin only) and clearly enumerates the data returned, implying a read-only snapshot. It does not explicitly confirm non-mutating behavior or describe response shape, but for a report-style tool this is strong disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads access control and core purpose, then lists concrete metrics. There is no filler or redundant information.

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?

For a simple snapshot tool with one optional parameter and no output schema, the description covers the key decision-relevant aspects: admin-only access and the complete set of returned metrics. It could mention how the days parameter influences the snapshot, but the schema handles that detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The only parameter, days, is fully described in the schema with its range and default. The tool description adds no parameter-level detail, but the schema already provides sufficient semantics.

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?

The description clearly identifies the tool as a business health snapshot and enumerates the specific metrics it returns (margin, cash collected, customer float, solvency ratio, active accounts, refund-review queue). This is specific enough to distinguish it from siblings like ops_monitoring or get_balance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The 'Admin only' prefix provides a clear access restriction and implies this is for administrative business health overviews. However, there is no explicit guidance on when to prefer this tool over related siblings like ops_monitoring, nor any exclusions.

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

ops_route_qualityAInspect

Admin only. Delivery quality per carrier/provider/channel, failure codes, DLR plausibility (whether delivery reports can be trusted), and ported-number routing hints. The data behind any provider-routing decision.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window in days (1-365). Default 30.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It does disclose an admin-only authorization requirement and explains what DLR plausibility means, which is useful. However, it does not state side effects, read-only nature, data freshness, output format, or error behavior, leaving notable gaps for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the access restriction, followed by a dense but well-organized list of data dimensions. The final sentence earns its place by framing the tool's strategic purpose without repetition or filler.

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?

For a tool with one optional parameter and no output schema, the description covers the main content areas and access constraints well. It could be more complete by explicitly distinguishing itself from ops_monitoring/ops_pulse or describing the expected response shape, but the current description is sufficient for basic selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, 'days', is fully documented in the schema with range and default (1-365, default 30), providing 100% schema coverage. The description adds no additional parameter detail, so the baseline score of 3 is appropriate since 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.

Purpose4/5

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

The description clearly identifies the tool's domain: delivery quality per carrier/provider/channel, failure codes, DLR plausibility, and ported-number routing hints. It distinguishes itself from generic balance/pricing/send tools, and the phrase 'data behind any provider-routing decision' grounds its purpose. However, it lacks an explicit verb like 'retrieves' or 'reports', and does not directly contrast with the sibling ops_monitoring/ops_pulse tools.

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?

'Admin only' sets an access prerequisite, and 'The data behind any provider-routing decision' clearly communicates the intended use case. This gives a clear context for when the tool would be relevant, though it does not state explicit exclusions or alternative tools for non-routing operational monitoring.

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

send_bulk_smsAInspect

Send an SMS message to multiple recipients in E.164 format at once (up to 100 recipients).

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesText content of the SMS
sender_idNoOptional approved custom Sender ID
recipientsYesArray of recipient phone numbers in E.164 format (+212600000000)

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations present, the description carries the full burden. It discloses the recipient limit (up to 100) and the E.164 format requirement, which is useful. However, it does not mention delivery semantics, error handling, partial failures, asynchronous behavior, or costs—gaps that matter for a bulk-sending tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence conveys the core action, the recipient scope, the format, and the limit with zero wasted words. Every phrase earns its place.

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?

Given the simple input schema and the clear sibling landscape, the description is sufficient for selection and invocation. It lacks details about response shape or failure behavior, but the tool's simplicity partly compensates. It could be more complete by noting when to use send_sms instead.

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 the schema already documents all parameters. The description enhances the semantics by emphasizing the bulk nature ('at once') and the hard limit of 100 recipients, which is not visible in the schema. This adds value beyond the structured fields.

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?

The description uses a specific verb and resource: 'Send an SMS message to multiple recipients.' It also highlights 'at once' and a recipient cap, which clearly distinguishes this from the sibling send_sms tool. An agent can tell it apart 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?

The description clearly implies the intended use case: sending to multiple recipients at once, up to 100. It does not explicitly name send_sms as the alternative for single recipients, nor does it state when not to use this tool, so it falls short of a full 5.

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

send_otpBInspect

Send a 6-digit OTP verification code via SMS or WhatsApp.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient phone number in E.164 format
brandNoBrand name shown in the OTP message

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention that the tool only sends the code and does not verify it, nor does it note any side effects, requirements, or limitations. The single sentence is purely functional without safety or operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the primary action ('Send a 6-digit OTP verification code') and channel. Every word earns its place; there is no redundancy or unnecessary detail.

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 simple two-parameter tool, the description covers the core function, but lacks important context such as the separate verification step (verify_otp) and any delivery caveats. The absence of annotations and output schema makes this borderline, though the tool is simple enough that a 3 is reasonable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully documents both parameters (to, brand) with descriptions, achieving 100% coverage. The tool description adds no additional meaning about parameter constraints, relationships, or formatting beyond what the schema provides, so the baseline of 3 applies.

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 clearly states the tool sends a 6-digit OTP verification code via SMS or WhatsApp, which is a specific verb+resource. However, it does not explicitly distinguish itself from the sibling send_sms tool, leaving potential ambiguity about when to prefer this tool over a generic SMS sender.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like send_sms or verify_otp. It only states what it does, leaving the agent to infer usage from the tool name alone. No exclusions or preferred scenarios are mentioned.

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

send_smsBInspect

Send a single SMS message to a phone number in E.164 format (+212600000000).

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient phone number in E.164 format (+212600000000)
messageYesText content of the SMS
sender_idNoOptional approved custom Sender ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It only states that an SMS is sent and includes an E.164 format note, but it does not disclose side effects such as cost/balance deduction, delivery behavior, rate limits, sender_id approval requirements, or error outcomes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler or redundancy. It front-loads the core operation and includes the key formatting constraint without wasting words.

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 simple tool with fully described parameters, this description is minimally viable for invocation. However, without annotations or an output schema, it leaves gaps around return values, side effects, and alternatives, so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already documented in the input schema. The description adds no meaningful information beyond what the schema provides; it only repeats the E.164 format for the 'to' parameter.

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 clearly states the action and resource: send a single SMS message to a phone number. The E.164 format is included, making the scope concrete. However, it does not explicitly differentiate from sibling tools like send_otp or send_bulk_sms beyond the word 'single'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The word 'single' implies this tool is for one-off SMS sending rather than bulk messaging, but there is no explicit guidance about when to use send_sms versus send_bulk_sms or send_otp. The usage context is only implied, not stated.

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

send_whatsapp_templateAInspect

Send an approved WhatsApp template message from the account's connected WhatsApp Business number. Templates may open a conversation at any time (no 24-hour window). Billed like the same send on POST /v1/messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient phone number in E.164 format (+212600000000)
languageNoTemplate language code (e.g. fr, en_US, ar). Defaults to the template's own language.
variablesNoValues for the template body placeholders {{1}}, {{2}}, … in order
template_nameYesName of an approved WhatsApp template on the account
phone_number_idNoOptional: which connected WhatsApp number sends (defaults to the account's default number)

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose meaningful traits: the template must be pre-approved, the no-24-hour-window behavior, and the billing model (billed like POST /v1/messages). It does not cover failure modes (e.g., unapproved template, invalid recipient) or auth requirements, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, each carrying distinct information (action/identity, timing rule, billing), with the core action front-loaded and no filler.

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?

Covers the send semantics, approval prerequisite, timing, and cost, which is most of what an agent needs. With no output schema, it doesn't indicate what a successful send returns (e.g., a message id usable with get_message_status), leaving a small gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters (including E.164 format, language default, variable ordering, and default phone_number_id) are already documented in the schema. The description adds no parameter-level detail beyond that, matching the baseline of 3.

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?

States a specific verb (Send) plus resource (approved WhatsApp template message) and the sending identity (connected WhatsApp Business number). It implicitly separates itself from send_sms/send_otp via 'WhatsApp template', but never names an alternative sibling explicitly, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The 'templates may open a conversation at any time (no 24-hour window)' note implies the scenario where a template is needed versus a free-form session message, but the description never states when to prefer this over send_sms, send_otp, or send_bulk_sms. Usage is inferable rather than stated.

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

verify_otpAInspect

Verify an OTP passcode against a previously sent code.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes6-digit OTP code to verify
session_idYesSession ID from send_otp

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not mention whether verification consumes/invalidates the code, what happens on failure, or whether the session must remain active. For a security-related operation, more side-effect transparency is expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. It communicates the essential action and flow relationship without wasted words.

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?

The description covers the tool's purpose and the core parameters, but omits success/failure semantics, return value, and side effects. Since there is no output schema, the agent is left without information about what the response will look like or how to interpret an unsuccessful verification.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters well. The description adds the 'previously sent' temporal context but otherwise does not materially extend the parameter meaning beyond the schema.

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?

The description uses a specific verb ('Verify') and a clear resource ('OTP passcode against a previously sent code'). It distinguishes verify_otp from its sibling send_otp by making the two-step flow explicit.

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?

The phrase 'previously sent code' clearly implies this tool is used after send_otp and requires a prior send. However, it does not explicitly name alternatives or state when not to use it, though the context is strong enough to infer the correct workflow.

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.

  1. 2 tool updates
    • Addedlist_sender_ids
    • Addedlookup_number
  2. 1 tool update
    • Addedsend_whatsapp_template
  3. 1 tool update
    • Changedcreate_topup1 field changed
      • changedInput schema / properties / pack_id / description
        Previous value: -"SMS top-up pack ID (e.g. 'sms-300' for 300 MAD, 'sms-1000' for 1000 MAD, 'sms-5000' for 5000 MAD, 'sms-15000' for 15000 MAD). Optional if amount_mad is provided."New value: +"SMS top-up pack ID (e.g. 'sms-300' for 300 MAD, 'sms-1000' for 1000 MAD, 'sms-5000' for 5000 MAD). Optional if amount_mad is provided."
  4. 9 tool updates
    • Changedcreate_topup2 fields changed
      • changedInput schema / properties / amount_mad / description
        Previous value: -"Custom recharge amount in MAD (minimum 275 MAD). Optional if pack_id is provided."New value: +"Custom recharge amount in MAD (minimum 300 MAD). Optional if pack_id is provided."
      • changedInput schema / properties / pack_id / description
        Previous value: -"SMS top-up pack ID (e.g. 'sms-635' for 275 MAD, 'sms-1000' for 380 MAD, 'sms-5000' for 1690 MAD, 'sms-10000' for 3150 MAD). Optional if amount_mad is provided."New value: +"SMS top-up pack ID (e.g. 'sms-300' for 300 MAD, 'sms-1000' for 1000 MAD, 'sms-5000' for 5000 MAD, 'sms-15000' for 15000 MAD). Optional if amount_mad is provided."
    • Addedget_analytics
    • Addedget_message_status
    • Addedlist_campaigns
    • Addedlist_contacts
    • Addedlist_messages
    • Addedsend_bulk_sms
    • Changedsend_sms2 fields changed
      • changedInput schema / properties / sender_id / description
        Previous value: -"Optional Sender ID"New value: +"Optional approved custom Sender ID"
      • changedInput schema / properties / to / description
        Previous value: -"Phone number in E.164 format (+212600000000)"New value: +"Recipient phone number in E.164 format (+212600000000)"
    • Changedverify_otp1 field changed
      • changedInput schema / properties / session_id / description
        Previous value: -"Account ID or session ID from send_otp"New value: +"Session ID from send_otp"
  5. 1 tool update
    • Addedcreate_topup
  6. 3 tool updates
    • Addedops_monitoring
    • Addedops_pulse
    • Addedops_route_quality
  7. 1 tool update
    • Changedget_pricing1 field changed
      • addedInput schema / properties / to
        Added value: +{
        +  "description": "Destination phone number in E.164 format, e.g. +2348012345678. Optional.",
        +  "type": "string"
        +}
  8. 5 tool updates
    • First observedget_balance
    • First observedget_pricing
    • First observedsend_otp
    • First observedsend_sms
    • First observedverify_otp

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for provisioning dedicated real-SIM US phone numbers, receiving inbound SMS, and extracting OTP codes. Built for AI agents automating phone verification workflows.
    25 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Send and verify one-time passcodes over SMS, WhatsApp and Telegram from any MCP client. Ten tools: send, verify, extend, delivery status, account, usage report, and agent account creation with credit top-ups over a 402. Hosted endpoint or run locally.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables any MCP-compatible AI agent to send WhatsApp messages, SMS, OTP codes, and email through a single REST API.
    18
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources