Skip to main content
Glama

Get Rendobar Job

get_job
Read-onlyIdempotent

Check job status and retrieve results, progress, cost, and output files. Use wait:true for long-polling to return the finished result without repeated polling.

Instructions

Check status and get results of a submitted job. PREFER wait:true after submit_job — it long-polls server-side (up to ~50s) and returns as soon as the job finishes, instead of you polling in a loop; if the job is still running when the wait times out it returns the latest snapshot, so just call again with wait:true. Returns progress, current step, cost, and output when done. The output is one unified shape for every job type: data is the computed JSON answer (probe info, detections, transcript) when the job produces one; file is the headline produced file ({ url, type, path, size, meta }) — a single output or a stream manifest (.m3u8/.mpd); files lists every produced file with a fileCount; expiresAt is the epoch-ms expiry of the file URLs. Data-only jobs have file null and no files; file-only jobs have no data. Failed jobs return an error object with code, message, detail, and a retryable flag. When the job named destinations, deliveries reports each bucket write. Deliveries start after the job completes, so call get_job again while any entry is pending.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
waitNoWhen true, wait for the job to reach a terminal status (long-poll, up to ~50 seconds) instead of returning the current status immediately. Times out gracefully with the latest snapshot — call again with wait:true to keep waiting.
jobIdYesJob ID returned by submit_job (e.g. 'job_abc123')

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
costNoFormatted cost, present when complete
stepNoName of the currently running step
typeYes
errorNoPresent when failed
outputNoPresent when complete
statusYesOpen set: waiting | dispatched | running | complete | failed | cancelled
progressNoFraction of completed steps (0–1); present while running
deliveriesNoOne entry per destination, present when the job named destinations
durationMsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.12.1
    • addedOutput schema / properties / deliveries
      Added value: +{
      +  "description": "One entry per destination, present when the job named destinations",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "path": {
      +        "description": "Object key written in the bucket",
      +        "type": "string"
      +      },
      +      "reason": {
      +        "description": "Why a delivery failed, as the API's reason code",
      +        "type": "string"
      +      },
      +      "renamed": {
      +        "description": "The name was taken, so the job id was appended",
      +        "type": "boolean"
      +      },
      +      "status": {
      +        "description": "Open set: pending | delivered | failed",
      +        "type": "string"
      +      },
      +      "storageId": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "description": "Where to fetch the delivered file",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "storageId",
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. Changed2 schema fields changedv1.11.3
    • removedOutput schema / properties / error / properties / detail / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / error / properties / detail / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  3. Changed3 schema fields changedv1.8.2
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / wait
      Added value: +{
      +  "description": "When true, wait for the job to reach a terminal status (long-poll, up to ~50 seconds) instead of returning the current status immediately. Times out gracefully with the latest snapshot — call again with wait:true to keep waiting.",
      +  "type": "boolean"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "cost": {
      +      "description": "Formatted cost, present when complete",
      +      "type": "string"
      +    },
      +    "durationMs": {
      +      "type": "number"
      +    },
      +    "error": {
      +      "additionalProperties": false,
      +      "description": "Present when failed",
      +      "properties": {
      +        "code": {
      +          "type": "string"
      +        },
      +        "detail": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "message": {
      +          "type": "string"
      +        },
      +        "retryable": {
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "message",
      +        "detail",
      +        "retryable"
      +      ],
      +      "type": "object"
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "output": {
      +      "additionalProperties": false,
      +      "description": "Present when complete",
      +      "properties": {
      +        "data": {
      +          "description": "Computed JSON answer (probe info, detections, transcript)"
      +        },
      +        "expiresAt": {
      +          "description": "Epoch ms when the file URLs expire",
      +          "type": "number"
      +        },
      +        "file": {
      +          "additionalProperties": false,
      +          "description": "Headline produced file",
      +          "properties": {
      +            "meta": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "path": {
      +              "type": "string"
      +            },
      +            "size": {
      +              "type": "number"
      +            },
      +            "type": {
      +              "type": "string"
      +            },
      +            "url": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "url",
      +            "path",
      +            "type",
      +            "size"
      +          ],
      +          "type": "object"
      +        },
      +        "fileCount": {
      +          "type": "number"
      +        },
      +        "files": {
      +          "description": "Every produced file",
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "meta": {
      +                "additionalProperties": {},
      +                "propertyNames": {
      +                  "type": "string"
      +                },
      +                "type": "object"
      +              },
      +              "path": {
      +                "type": "string"
      +              },
      +              "size": {
      +                "type": "number"
      +              },
      +              "type": {
      +                "type": "string"
      +              },
      +              "url": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "url",
      +              "path",
      +              "type",
      +              "size"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "progress": {
      +      "description": "Fraction of completed steps (0–1); present while running",
      +      "type": "number"
      +    },
      +    "status": {
      +      "description": "Open set: waiting | dispatched | running | complete | failed | cancelled",
      +      "type": "string"
      +    },
      +    "step": {
      +      "description": "Name of the currently running step",
      +      "type": "string"
      +    },
      +    "type": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "type",
      +    "status"
      +  ],
      +  "type": "object"
      +}
  4. First observedv1.2.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark this as read-only, idempotent, and non-destructive, and the description complements them with useful behavioral detail: the wait timeout returns a latest snapshot rather than a terminal state, output shapes vary by job type, failures include a retryable flag, and deliveries begin only after completion. No contradiction with 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 dense but front-loaded: purpose and preferred usage come first, followed by output/error/delivery semantics. Every sentence carries necessary information, and technical references like `{ url, type, path, size, meta }` and `.m3u8/.mpd` are precise rather than padded.

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?

For a status/result-retrieval tool with an output schema, the description fully covers the unified return shape, the data/file distinction, error object fields, expiry semantics, and delivery timing. Nothing needed to call this tool correctly is missing, and the output schema signal further backs up the behavioral details provided.

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% for both parameters, so the baseline is 3. The description adds extra value by contextualizing the wait parameter as the preferred post-submit behavior and explaining the snapshot-on-timeout semantics, while also reiterating that jobId comes from submit_job. It reinforces schema meaning without duplicating it verbatim.

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 'Check status and get results of a submitted job' – a specific verb (check/get), a clear resource (submitted job), and the intent (status and results). It is unambiguously distinct from siblings like submit_job, cancel_job, and list_jobs, so an agent can differentiate it without comparing schemas.

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 gives explicit operational guidance: 'PREFER wait:true after submit_job' and explains it long-polls server-side to avoid loop polling. It also instructs to call get_job again if wait times out, and again while delivery entries are pending. This is concrete, actionable when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.