Skip to main content
Glama

get_job_status

Read-onlyIdempotent

Check a crawl job's status and page counts, optionally waiting until it completes, fails, or is cancelled instead of polling.

Instructions

Get the status and page counts of a crawl job. Set wait_seconds to wait for the job to finish instead of polling: the call returns as soon as the job completes, fails or is cancelled, or when the wait runs out, with the status at that moment.

Input Schema

NameRequiredDescriptionDefault
job_idYesThe job ID returned by crawl_site
wait_secondsNoSeconds to wait for the job to finish before returning (default: 0, max: 60; larger values are capped)

Output Schema

NameRequiredDescriptionDefault
job_idYes
statusYespending, running, completed, failed or cancelled
refusedNoSet when a finished crawl was kept back instead of published: empty, temporary_failures or shrink
failuresNoFailed pages by class (temporary, gone, selector, policy, other), each with a count and one sample
site_keyYes
started_atYes
incrementalYes
pages_savedYesPages written by this crawl
completed_atNo
pages_failedYesPages that failed; noindex pages are neither saved nor failed
pages_queuedYesPages waiting to be crawled; for a cancelled job, the pages left uncrawled
error_messageNo
pages_processedYes
pages_unchangedYesIncremental re-checks whose content had not changed; not counted in pages_processed
duration_secondsNoPresent once completed_at is
pages_carried_forwardYesPages that failed temporarily and kept their copy from the previous crawl

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv2.24.1
    • addedOutput schema / properties / failures
      Added value: +{
      +  "description": "Failed pages by class (temporary, gone, selector, policy, other), each with a count and one sample",
      +  "items": {
      +    "properties": {
      +      "class": {
      +        "type": "string"
      +      },
      +      "count": {
      +        "type": "integer"
      +      },
      +      "sample_error": {
      +        "type": "string"
      +      },
      +      "sample_url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "class",
      +      "count",
      +      "sample_url",
      +      "sample_error"
      +    ],
      +    "type": "object"
      +  },
      +  "type": [
      +    "null",
      +    "array"
      +  ]
      +}
    • addedOutput schema / properties / pages_carried_forward
      Added value: +{
      +  "description": "Pages that failed temporarily and kept their copy from the previous crawl",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / pages_failed
      Added value: +{
      +  "description": "Pages that failed; noindex pages are neither saved nor failed",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / pages_saved
      Added value: +{
      +  "description": "Pages written by this crawl",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / refused
      Added value: +{
      +  "description": "Set when a finished crawl was kept back instead of published: empty, temporary_failures or shrink",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "job_id",
      -  "site_key",
      -  "status",
      -  "started_at",
      -  "pages_processed",
      -  "pages_queued",
      -  "pages_unchanged",
      -  "incremental"
      -]New value: +[
      +  "job_id",
      +  "site_key",
      +  "status",
      +  "started_at",
      +  "pages_processed",
      +  "pages_queued",
      +  "pages_unchanged",
      +  "pages_saved",
      +  "pages_failed",
      +  "pages_carried_forward",
      +  "incremental"
      +]
  2. Changed2 schema fields changedv2.21.0
    • addedInput schema / properties / wait_seconds
      Added value: +{
      +  "description": "Seconds to wait for the job to finish before returning (default: 0, max: 60; larger values are capped)",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / pages_queued / description
      Added value: +"Pages waiting to be crawled; for a cancelled job, the pages left uncrawled"
  3. Changed1 schema field changedv2.15.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "completed_at": {
      +      "type": "string"
      +    },
      +    "duration_seconds": {
      +      "description": "Present once completed_at is",
      +      "type": [
      +        "null",
      +        "number"
      +      ]
      +    },
      +    "error_message": {
      +      "type": "string"
      +    },
      +    "incremental": {
      +      "type": "boolean"
      +    },
      +    "job_id": {
      +      "type": "string"
      +    },
      +    "pages_processed": {
      +      "type": "integer"
      +    },
      +    "pages_queued": {
      +      "type": "integer"
      +    },
      +    "pages_unchanged": {
      +      "description": "Incremental re-checks whose content had not changed; not counted in pages_processed",
      +      "type": "integer"
      +    },
      +    "site_key": {
      +      "type": "string"
      +    },
      +    "started_at": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "pending, running, completed, failed or cancelled",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "job_id",
      +    "site_key",
      +    "status",
      +    "started_at",
      +    "pages_processed",
      +    "pages_queued",
      +    "pages_unchanged",
      +    "incremental"
      +  ],
      +  "type": "object"
      +}
  4. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine behavioral detail beyond that: the call returns as soon as the job completes, fails, or is cancelled, or when the wait expires, and reports status at that moment. It doesn't discuss error behavior for unknown/expired job IDs.

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?

Two sentences, front-loaded with what the tool does, then the non-obvious wait semantics. No padding or restatement of the title.

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?

A two-parameter read tool with an output schema, full schema coverage, and complete annotations; the description covers the one non-obvious behavior (blocking until terminal state or timeout). 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description goes further by explaining what wait_seconds actually does semantically — it blocks and returns early on terminal states rather than simply sleeping. That meaning is not obvious from the schema's 'Seconds to wait' wording.

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?

States a specific verb and resource ('Get the status and page counts of a crawl job') and names the object precisely enough to separate it from siblings like cancel_crawl, get_freshness, and list_pages. An agent knows exactly what it gets back conceptually without opening the schema.

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?

Explicitly contrasts the long-poll mode with the polling alternative ('Set wait_seconds to wait for the job to finish instead of polling'), which is real when-to-use guidance. It stops short of naming sibling tools for adjacent needs (e.g., cancel_crawl to abort, list_pages to inspect results).

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