Skip to main content
Glama

roamzy_order_status

Read-onlyIdempotent

Poll the status of a pending order. Status progresses: waiting → confirming → finished → (eSIM activated). While it is still waiting the response carries pay_url — re-surface that to the user instead of starting a new order; it is the same link they were given at checkout. Once status=finished, call get_esim for the activation link. Response includes msisdn — when telling the user about progress, refer to the eSIM by its msisdn, not by intent_id / esim_id / order_id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
order_idYesInternal intent_id from create_order. Never shown to the user.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusYeswaiting → confirming → finished. Fetch the eSIM once finished.
esim_idNo
pay_urlNoThe link that pays this order, for as long as it is waiting. Give it to the user again rather than creating a second order.
order_idNo
intent_idNo
created_atNo
updated_atNo
amount_usdtNo
user_facingNo
country_slugNo
provider_invoice_idNo
provider_payment_idNo

Schema Changelog

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

  1. Changed1 schema field changed
    • addedOutput schema / properties / pay_url
      Added value: +{
      +  "description": "The link that pays this order, for as long as it is waiting. Give it to the user again rather than creating a second order.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "amount_usdt": {
      +      "type": "number"
      +    },
      +    "country_slug": {
      +      "type": "string"
      +    },
      +    "created_at": {
      +      "type": "string"
      +    },
      +    "esim_id": {
      +      "type": "string"
      +    },
      +    "intent_id": {
      +      "type": "string"
      +    },
      +    "order_id": {
      +      "type": "string"
      +    },
      +    "provider_invoice_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "provider_payment_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "status": {
      +      "description": "waiting → confirming → finished. Fetch the eSIM once finished.",
      +      "type": "string"
      +    },
      +    "updated_at": {
      +      "type": "string"
      +    },
      +    "user_facing": {
      +      "properties": {
      +        "hint": {
      +          "type": "string"
      +        },
      +        "identifier_label": {
      +          "type": "string"
      +        },
      +        "identifier_value": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "status"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint/idempotentHint annotations, the description discloses key behavioral traits: the response carries pay_url only while waiting, the same link as checkout; the response includes msisdn; and it advises referring to the eSIM by msisdn to avoid confusion. These details add meaningful context without contradicting annotations.

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 well-structured and front-loaded with the primary purpose. Every sentence contributes value: status flow, pay_url handling, the get_esim transition, and the msisdn guidance. It is concise enough to be digestible while covering necessary workflow details.

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?

Given the output schema exists, the description need not explain return values in detail, yet it still covers critical contextual aspects: status transitions, redirect behavior for pay_url, and the correct next tool call. This is complete for a polling tool within a multi-step order lifecycle.

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 provides 100% parameter coverage with the description 'Internal intent_id from create_order. Never shown to the user.' The tool description does not add further semantic detail about order_id 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 clearly states the tool's purpose with a specific verb and resource: 'Poll the status of a pending order.' It also differentiates from siblings by describing the status progression (waiting → confirming → finished) and explicitly pointing to get_esim for the activation link after completion, distinguishing it from other status/retrieval tools.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: poll a pending order. It also gives clear not-this-but-that instructions: while waiting, re-surface pay_url instead of starting a new order; once finished, call get_esim for the activation link. This directly addresses alternatives and workflow transitions.

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.