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
Last Tested
Transport
Streamable HTTP
URL

Available Tools

15 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.

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.

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.

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.7/5.0
Disambiguation4/5

Tools split into clear clusters: customer-facing send/verify/get tools and admin ops tools. The three ops_* tools could initially seem similar, but their descriptions distinguish operational alerts, business health, and route quality. Minor overlap exists between ops_monitoring and ops_pulse, but overall boundaries are clear.

Naming Consistency4/5

The set uses consistent prefixes: get_, send_, verify_, and ops_. This creates a predictable pattern for agents. Minor deviation is that ops_pulse and ops_route_quality are noun-style rather than verb-noun, and 'pulse' is less descriptive than the others.

Tool Count5/5

Eight tools is well-scoped for an SMS/OTP server, covering customer actions, pricing/balance, and admin oversight without bloat. Each tool has a clear role and the count feels appropriate for the domain.

Completeness4/5

Core flows are covered: balance lookup, pricing, sending SMS, OTP lifecycle, and admin monitoring. A notable gap is lack of per-message delivery status or send history, but agents can still complete the primary send-and-verify workflows. Minor gaps exist but are workable.

Resources