Skip to main content
Glama

Recover a paid job

recover_comparison

Returns the job or screenshot the payment credential in _meta paid for, with a new jobToken that replaces the old one; or, when the request carries a key and _meta no credential, the latest job that key paid for (no jobToken: the key reads it). Call it when a paid call’s result never arrived. Do not call it for a free run, which records no credential. Free.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeNo
errorNo
jobIdNo
linksNo
statusNo
filenameNo
jobTokenNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedOutput schema / properties / links / properties / cancel
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / links / properties / report
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / links / properties / self
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / links / required
      Removed value: -[
      -  "file"
      -]
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "code": {
      +      "type": "string"
      +    },
      +    "error": {
      +      "type": "string"
      +    },
      +    "filename": {
      +      "type": "string"
      +    },
      +    "jobId": {
      +      "type": "string"
      +    },
      +    "jobToken": {
      +      "type": "string"
      +    },
      +    "links": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "file": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "file"
      +      ],
      +      "type": "object"
      +    },
      +    "status": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. Added

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the annotations it discloses that recovery mints a new jobToken replacing the old one (consistent with idempotentHint=false and readOnlyHint=false), the credential/key auth paths via _meta, and the cost ('Free'). It does not say whether the old token is invalidated server-side or what happens on repeated recovery attempts, but the added context is substantial.

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

Conciseness3/5

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

Everything stated is relevant, but the first sentence is a single 45-word clause chain with em-dashes and a parenthetical, and it front-loads return mechanics rather than the tool's purpose. It is dense to the point of being hard to parse on first read.

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?

With an output schema present, return shape need not be explained, yet the description still covers when to call, when not to, cost, and auth paths — enough for an agent to invoke it correctly. The remaining gap is what happens to the superseded jobToken and error behavior when no matching paid job exists.

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?

The schema is empty, so the baseline is 4. The description goes further by explaining the two implicit input modes — a payment credential in _meta versus a key on the request — and the differing return semantics of each, which the empty schema cannot convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (returns/recover) and resource (job or screenshot) and scopes it to payment-credential-backed jobs, which separates it from get_comparison/get_screenshot. However, the purpose is buried in a long conditional sentence and the sibling names are never used, so differentiation is inferential rather than explicit.

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 triggering condition plainly ('Call it when a paid call's result never arrived') and an explicit exclusion ('Do not call it for a free run, which records no credential'). That is a clear when/when-not pair, even if no alternative tool is named.

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