Skip to main content
Glama

Get the status of a fax

get_fax_status
Read-only

Read where a fax is. Give the id from create_fax, or an address of the fax: the status address from the tracking prompt of the person, or the address of a page of the fax. "status" is pending, delivered, failed or expired. While it is pending, "stage" says more: rendering (we prepare the pages), awaiting_payment (the person did not pay yet; "pages" and "price" are given, and they can still change), sending (paid, on its way). delivered: the fax arrived. failed: the fax was not delivered, the person is not charged, and can send it again; with "render_failed", the document could not be prepared, and the person opens the link to change it. expired: the fax was not paid in time, or it is no longer available. Do not call this in a loop: read the status when the person asks.

Input Schema

NameRequiredDescriptionDefault
idYesThe id of the fax, or an address of the fax: its status address (https://.../api/fax/{id}/status), or the address of its preview, payment or confirmation page.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, it discloses the whole state machine an agent will encounter: pending/delivered/failed/expired plus substages rendering, awaiting_payment, sending, including that price/pages can still change while unpaid. It also explains side effects of failure (no charge, resend possible, render_failed needs a link) and expiry, which is exactly the context annotations cannot carry.

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

Conciseness4/5

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

The core action is front-loaded in the first clause, followed by input sourcing and then status semantics. It is dense but nearly every clause carries distinct information; the status enumeration is long, yet each term is defined rather than merely listed.

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?

With no output schema, this description essentially serves as one, defining every status and stage value an agent must interpret. Nothing needed to call it correctly or read the result is missing.

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 accepted formats are already documented, but the description adds practical provenance ("the status address from the tracking prompt of the person") that tells an agent where to obtain the address, not just what shapes are legal. That is real value over the schema, though the field itself is a single string.

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?

"Read where a fax is" states a specific verb and resource, and the description ties the input back to create_fax, so an agent knows this is the follow-up read to a freshly created fax rather than a listing tool. It is clearly distinct from list_supported_formats.

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?

It gives concrete invocation timing ("read the status when the person asks") and an explicit exclusion ("Do not call this in a loop"). It stops short of naming an alternative polling mechanism or another status tool, but the when/when-not guidance is clear.

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.