Skip to main content
Glama

List jobs for the tenant, newest first.

list_jobs
Read-only

List jobs for the tenant, newest first. Secret key only. Paged: pass limit (1–100, default 25), optional status, and cursor from the previous page's next_cursor (null on the last page; a bad cursor is a 400). Scope: jobs:read.

Input Schema

NameRequiredDescriptionDefault
limitNo
cursorNoOpaque; from the previous response's next_cursor.
statusNoFunnel order. **created** — The job exists. Nothing uploaded yet. **uploading** — An upload URL was issued; the video is on its way. **uploaded** — A chunked upload was assembled (a single PUT skips this state). **queued** — POST /submit accepted; waiting its turn to be analysed. **processing** — The walkthrough is being analysed. Poll GET /jobs/{id}; typically 1–4 minutes. **complete** — Inventory ready. The firm quote is computed on the first read. **quoted** — A firm, bookable quote exists (set by the first GET after complete). **booked_requested** — The customer asked to book; the mover has not answered yet. **booked** — The mover confirmed the booking. **declined** — The mover turned the request down. `decline_reason` may say why. **error** — Analysis failed. `error` carries a message; upload again or contact the mover.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / status / description
      Previous value: -"Funnel order. **created** — The job exists. Nothing uploaded yet. **uploading** — An upload URL was issued; the video is on its way. **uploaded** — A chunked upload was assembled (a single PUT skips this state). **queued** — POST /submit accepted; waiting for the analysis worker. **processing** — The walkthrough is being analysed. Poll GET /jobs/{id}; typically 1–4 minutes. **complete** — Inventory ready. The firm quote is computed on the first read. **quoted** — A firm, bookable quote exists (set by the first GET after complete). **booked_requested** — The customer asked to book; the mover has not answered yet. **booked** — The mover confirmed the booking. **declined** — The mover turned the request down. `decline_reason` may say why. **error** — Analysis failed. `error` carries a message; upload again or contact the mover."New value: +"Funnel order. **created** — The job exists. Nothing uploaded yet. **uploading** — An upload URL was issued; the video is on its way. **uploaded** — A chunked upload was assembled (a single PUT skips this state). **queued** — POST /submit accepted; waiting its turn to be analysed. **processing** — The walkthrough is being analysed. Poll GET /jobs/{id}; typically 1–4 minutes. **complete** — Inventory ready. The firm quote is computed on the first read. **quoted** — A firm, bookable quote exists (set by the first GET after complete). **booked_requested** — The customer asked to book; the mover has not answered yet. **booked** — The mover confirmed the booking. **declined** — The mover turned the request down. `decline_reason` may say why. **error** — Analysis failed. `error` carries a message; upload again or contact the mover."
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds valuable behavioral context beyond the annotations: it discloses pagination behavior (cursor from previous page's next_cursor, null on last page), error behavior (bad cursor returns 400), and the auth requirement (secret key only, jobs:read scope). It also explains the status funnel in detail, which is useful for understanding what the returned jobs mean. It doesn't describe the exact response shape, but with no output schema, that is a minor gap.

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 compact and front-loaded: the core purpose ('List jobs for the tenant, newest first') comes first, followed by auth, pagination, and status filtering. Every sentence earns its place. The status enum descriptions are in the schema, not the description, which keeps the description tight. No fluff or repetition.

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?

For a read-only list tool with 3 optional parameters and no output schema, the description covers the essential operational details: auth, pagination, error behavior, and status semantics. The only gap is the exact response shape (e.g., whether the response is a list of job objects with fields like id, status, created_at), but the description's mention of next_cursor implies the response envelope. Given the tool's simplicity and the annotations covering safety, this is nearly complete.

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 description coverage is 67%: limit and cursor have descriptions, and status has a very detailed enum description. The description adds value by explaining the pagination contract (cursor from previous page's next_cursor, bad cursor is 400) and the default limit (25), which the schema also states. The status parameter's enum descriptions in the schema are already rich, so the description doesn't need to repeat them. The description does not add much beyond the schema for limit, but the pagination context it provides is genuinely useful.

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 states a specific verb ('List'), a resource ('jobs'), a scope ('for the tenant'), and an ordering ('newest first'). It also names the required auth scope ('jobs:read'), which distinguishes it from other job-related tools like get_job, create_job, and submit_job. The title reinforces the same message, so an agent can select this tool without ambiguity.

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?

The description gives clear context for when to use this tool: to list jobs for the tenant, with pagination and optional status filtering. It does not explicitly name alternatives or say when not to use it, but the sibling list shows get_job for a single job and create_job/submit_job for creation, so the usage context is reasonably clear. It could be improved by explicitly saying 'use get_job to fetch a single job' or 'use search_catalog for searching', but the current guidance is adequate.

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