Skip to main content
Glama

Read job output

get_job_logs
Read-onlyIdempotent

Read a job's output (stdout and stderr combined). The first read is after 0, and each later one passes the returned cursor as after. follow: true waits up to 25 s for new output instead of returning at once. done is true once the job has ended and all output was read; its status, exit_code and cost are in get_job. chunks are raw fragments in order, not lines: join their text as is. A response holds up to about 1 MB. Logs are capped at 10 MB per job: the first 5 MB and the newest output are kept, and truncated is true when the middle was dropped.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>"
    },
    "name": "get_job_logs"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesJob ID
afterNocursor from the previous call (default 0, the start)
followNoWait up to 25 s for new output or the end of the job (default false)
workspaceNoWorkspace ID (optional: defaults to the authenticated workspace)
environmentNoEnvironment name (optional: defaults to the environment this session acts in)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • removedInput schema / properties / env
      Removed value: -{
      -  "description": "Environment name (optional — defaults to main)",
      -  "type": "string"
      -}
    • addedInput schema / properties / environment
      Added value: +{
      +  "description": "Environment name (optional: defaults to the environment this session acts in)",
      +  "type": "string"
      +}
    • changedInput schema / properties / workspace / description
      Previous value: -"Workspace ID (optional — defaults to authenticated workspace)"New value: +"Workspace ID (optional: defaults to the authenticated workspace)"
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: discloses the ~1 MB response ceiling, the 10 MB per-job log cap with first 5 MB plus newest retained, the truncated flag when the middle is dropped, and the done flag semantics. The 'chunks are raw fragments, not lines: join their text as is' warning prevents a common parsing mistake.

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?

Front-loads the purpose, then the cursor protocol, then output-shape semantics, then size limits. Every sentence carries operational information; nothing is filler despite the density.

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 no output schema, the description supplies the return contract itself: chunks, cursor, done, truncated, plus how to reassemble text. Combined with cap and truncation behavior, an agent has everything needed to call and interpret the result correctly.

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 id, after, follow, workspace and environment are already documented. The description restates the cursor protocol and follow timeout rather than adding new parameter meaning, so the baseline 3 applies.

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 with scope: 'Read a job's output (stdout and stderr combined)'. It also implicitly separates itself from the get_job sibling by noting status, exit_code and cost live there, so an agent can route without opening either 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?

Explains the polling contract explicitly: first read with after=0, subsequent reads pass the returned cursor, and follow:true trades latency for waiting up to 25 s. It also redirects status/metadata lookups to get_job. No explicit when-not-to-use (e.g. artifacts vs logs), so it stops short of a 5.

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.