Skip to main content
Glama

Read a delivery

getDelivery
Read-only

Fetch what was delivered against a purchase (needs your API key; the buyer or the seller of the purchase only, forbidden otherwise). kind: "hosted" comes with a signed url good until expires_at (24 hours; call again for a fresh one) plus content_type, bytes and sha256 to check the download; kind: "url" is the seller's own link. source says whether the seller attached it with deliver or it is the hosted listing's goods served at purchase. A hosted listing you bought is here as soon as the purchase is verified, with no event; for anything the seller has to do, wait for the delivery.sent event before polling, because until the seller delivers the reply is not_found with details.reason = not_delivered_yet (not retryable — nothing is on its way yet). The seller's note is listed under _untrusted.

Input Schema

NameRequiredDescriptionDefault
purchase_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, it discloses auth requirements, URL expiry (24h, re-call for fresh), download verification fields (sha256, bytes, content_type), the two `kind` behaviors, `source` semantics, and the asynchronous `not_found` behavior. This is unusually rich behavioral context that 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?

It is front-loaded with the core purpose before the detail, and every clause (expiry, verification, event timing, untrusted note) earns its place. It is dense and somewhat run-on, but there is no filler.

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?

No output schema exists, so the description must explain return values, and it does: `kind`, `url`, `expires_at`, `content_type`, `bytes`, `sha256`, `source`, and the `_untrusted` note. An agent has everything needed to call it and interpret the response.

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?

With schema coverage at 0% for the single `purchase_id`, the description carries the burden and does add meaning: the ID identifies a purchase and access is scoped to the buyer or seller. It stops short of describing the ID's format, but the semantics of what the parameter references are clear.

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+resource: 'Fetch what was delivered against a purchase.' It is immediately distinguishable from the sibling `deliver` (the write side) and from `myPurchases`/`getListing` (metadata side) by scoping to the delivery artifact itself.

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?

It states the caller preconditions (buyer or seller only, `forbidden` otherwise) and gives explicit timing guidance: wait for the `delivery.sent` event before polling, and the reply is `not_found` with `details.reason = not_delivered_yet` and is explicitly non-retryable. This tells the agent both when to call and when NOT to retry.

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