Skip to main content
Glama

Ucode SMS

Cancel rental

ucode_sms_cancel_rental
Destructive

Cancel an active rental and refund credits when no SMS has arrived. Requires a cancel reason for analytics. Reasons: service_rejected | number_has_account | code_not_arrived | other. If an SMS arrives during cancel, credits stay charged and the code is returned.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
reasonYes
rentalIdYes
reasonNoteNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
codeNo
dataNo
errorNo
phoneNo
uiViewNo
creditsNo
endDateNo
smsCodeNo
summaryYes
rentalIdNo
billingUrlNo
httpStatusNo
countryNameNo
phoneNumberNo
serviceNameNo
neededCreditsNo
providerRentalIdNo
remainingSecondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation risk is known. The description adds valuable behavioral context: the conditional refund logic, the requirement of a cancel reason for analytics, and the edge case where an SMS arriving during cancel keeps credits charged and returns the code. This goes beyond the annotations and helps the agent anticipate 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?

Three sentences with no filler. The core action and refund condition are front-loaded, the reason requirement is stated, and the edge case is given in one compact sentence. Every sentence 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?

The tool has an output schema, so return values need not be described. The description covers the main behavior, the reason requirement, and the race condition with SMS arrival. It does not mention prerequisites like having an active rental or authentication, but those are implied by the tool's domain and sibling context. Slightly more detail on what 'code is returned' means could push it to 5.

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 description coverage is 0%, so the description must compensate. It explains the purpose of 'reason' (for analytics) and lists its enum values, which the schema already provides but the description reinforces. It does not explain 'rentalId' or 'reasonNote' beyond what the schema shows, but the tool name and context make rentalId self-evident, and reasonNote is optional. The description adds meaningful semantics for the key parameter.

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 specific verb ('Cancel'), a resource ('an active rental'), and the key side effect ('refund credits when no SMS has arrived'). It clearly distinguishes this from sibling tools like ucode_sms_get_code or ucode_sms_refund_expired by focusing on cancellation with refund semantics.

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 implies when to use this tool: when an active rental needs to be cancelled and no SMS has arrived. It also provides the required reason enum values, which guides correct invocation. However, it does not explicitly state when NOT to use it or name alternative tools (e.g., ucode_sms_refund_expired for expired rentals), so it falls short of a 5.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources