Skip to main content
Glama

Read a job

job
Read-onlyIdempotent

A job's status and, once it is ok, its files as signed URLs (and small PNGs inline). For a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab) the status is queued, running, ok, refused, failed, cancelled or expired; wait_s (at most 25) holds the answer until the job ends. A queued pull job's result is its verdict, and its whole report is the file report.json. Costs nothing.

Input Schema

NameRequiredDescriptionDefault
jobYesThe job id from the call that queued it, such as job_ followed by 24 hex digits.
wait_sNoSeconds to hold the answer until the job ends; 0 answers at once.

Output Schema

NameRequiredDescriptionDefault
jobYesThe job id.
verbNoThe tool that made it.
filesNoFiles made, each with a name, type, size and a signed URL.
unitsNoUnits charged.
statusYesqueued, running, ok, refused, failed, cancelled or expired.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / job / description
      Added value: +"The job id from the call that queued it, such as job_ followed by 24 hex digits."
    • addedInput schema / properties / wait_s / description
      Added value: +"Seconds to hold the answer until the job ends; 0 answers at once."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "files": {
      +      "description": "Files made, each with a name, type, size and a signed URL.",
      +      "items": {
      +        "additionalProperties": {},
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "job": {
      +      "description": "The job id.",
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "queued, running, ok, refused, failed, cancelled or expired.",
      +      "type": "string"
      +    },
      +    "units": {
      +      "description": "Units charged.",
      +      "type": "number"
      +    },
      +    "verb": {
      +      "description": "The tool that made it.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "job",
      +    "status"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds real value beyond that: the full status lifecycle (queued/running/ok/refused/failed/cancelled/expired), that wait_s blocks until completion, that a completed pull job's report is report.json, and that it is free.

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?

Front-loaded with what the tool returns, then the status/wait semantics, then cost. It is dense but every sentence carries information; the parenthetical lists of job types and statuses are the only slight bulk.

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 an output schema present, return values need not be enumerated, yet the description still explains status values, wait semantics, and the key file (report.json). For a 2-parameter read tool with full annotation coverage, nothing an agent needs to call it correctly is missing.

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?

Schema description coverage is 100%, so both parameters are already documented in the schema, establishing a baseline of 3. The description only restates wait_s's blocking behavior and max of 25, which the schema already says ('Seconds to hold the answer until the job ends'), so it adds little beyond the structured fields.

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 states a specific verb (read) and resource (a job's status) plus the payload it returns (files as signed URLs, small PNGs inline). It clearly scopes to a single job, distinguishing it in effect from the list-style sibling 'jobs' and the mutation sibling 'cancel_job', though it never names those alternatives explicitly.

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 the operating context for a queued job, explains the polling pattern via wait_s (at most 25, holds until the job ends), and notes 'Costs nothing'. It does not explicitly route to alternatives (jobs for listing, cancel_job for cancellation), so it stops just short of full when/when-not guidance.

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