Skip to main content
Glama

MyOTP.App

Extend OTP expiry

extend_otp

Extend the expiry time of an active OTP without sending a new one. Useful when the end user is taking longer than expected to enter the code (e.g., switched apps, dealing with carrier delivery delay). Adds duration seconds (60-14400) to the current expires_at. Requires the EXTEND_OTP entitlement (Business or Enterprise plan). Some destination countries don't allow extensions — the API will return 403 in that case. Cheaper and less spammy than calling generate_otp again.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
durationYesAdditional seconds to add to the OTP's expiry. Range 60-14400 (1 minute to 4 hours). The new expiry will be the current expiry + this duration.
message_idYesThe UUID returned by `generate_otp` — identifies the OTP you want to extend.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusYesStatus of the request.
messageYesMessage describing the result.
expires_atYesThe new ISO 8601 expiry date-time.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations are only coarse hints (readOnlyHint=false, idempotentHint=false), so the description carries the behavioral burden — and it delivers: it discloses that no new OTP is sent, that the mutation adds `duration` to `expires_at`, that the EXTEND_OTP entitlement (Business or Enterprise) is required, and that some destination countries cause a 403. No contradiction with annotations; readOnlyHint=false aligns with the mutating behavior described.

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?

Six sentences, each earning its place: purpose, use case, mutation semantics, entitlement requirement, failure mode, and alternative comparison. The core purpose is front-loaded in the first sentence and there is no fluff or needless repetition of schema content.

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 2-parameter tool with an output schema and 100% parameter coverage, the description covers everything needed for correct selection and invocation: purpose, when to use, exact mutation behavior, auth requirement, and a specific error mode. Minor gaps remain — behavior when the OTP is already expired and whether extensions can be stacked — but these do not block correct use.

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%: both message_id (UUID from generate_otp, identifies the OTP) and duration (range, semantics of addition) are already fully documented in the schema. The description's 'Adds duration seconds (60-14400) to the current expires_at' reinforces but does not add new parameter information, so the baseline 3 for high schema coverage 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?

States a specific verb+resource: 'Extend the expiry time of an active OTP', with the key qualifier 'without sending a new one'. The closing line explicitly differentiates it from the sibling generate_otp ('Cheaper and less spammy than calling generate_otp again'), and the purpose is distinct from verify_otp and check_otp_status. An agent can tell what this tool does and what it is not.

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

Usage Guidelines4/5

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

Gives concrete when-to-use scenarios: 'end user is taking longer than expected to enter the code (e.g., switched apps, dealing with carrier delivery delay)'. Names the main alternative explicitly ('generate_otp') with a comparative reason to prefer this tool. It lacks explicit when-not-to-use exclusions, but the 'active OTP' precondition and the 403 country caveat imply the boundaries.

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.

TDQS

A4.4/5.0
Disambiguation4/5

OTP operations are clearly separated: generate, verify, check status, and extend each have distinct responsibilities, and the descriptions explicitly differentiate check_otp_status from verify_otp. The only real ambiguity is between get_account_info and get_account_status, which both return similar account/balance/plan details with somewhat fuzzy boundaries.

Naming Consistency5/5

All tools use consistent snake_case verb_noun naming, with get_ prefixed for read operations and action-specific verbs like generate, verify, extend, and top_up for state-changing operations. There are no mixed conventions or vague generic names.

Tool Count5/5

Ten tools is well-scoped for an OTP service covering account lifecycle, OTP operations, billing/top-up, and reporting. Each tool maps to a distinct workflow step, and none feel redundant or unnecessary.

Completeness5/5

The OTP lifecycle is fully covered from generation through verification, status checking, and extension, with supporting account, top-up, and usage-reporting tools. There are no obvious dead ends for typical OTP verification and billing workflows.