Skip to main content
Glama

Read process output

read_process_output
Read-only

Use this when a process started earlier has more output to show and you do not want to wait for a pattern.

Input Schema

NameRequiredDescriptionDefault
pidYesSession pid returned by start_process.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
lengthNoMaximum number of lines to return per call (default 200). Without offset, unreturned lines remain available; use hasMore to fetch the next page.
offsetNoZero-based line number to start from, counted across everything the session has produced; a negative value reads the last N lines. Omit for new output. Lines evicted by the buffer cap are no longer available.
timeout_msNoWith no offset, wait up to this many milliseconds for output/exit; 0 returns immediately (default). Use 1000–2000 to avoid repeated remote polls when output is expected.

Output Schema

NameRequiredDescriptionDefault
dataNo
textYesConcise human-readable result of the tool call.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / length / description
      Previous value: -"Maximum number of lines to return."New value: +"Maximum number of lines to return per call (default 200). Without offset, unreturned lines remain available; use hasMore to fetch the next page."
    • changedInput schema / properties / timeout_ms / description
      Previous value: -"How long to wait for new output when no offset is given, in milliseconds."New value: +"With no offset, wait up to this many milliseconds for output/exit; 0 returns immediately (default). Use 1000–2000 to avoid repeated remote polls when output is expected."
    • addedOutput schema / properties / data / properties / hasMore
      Added value: +{
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / data / required
      Previous value: -[
      -  "pid",
      -  "status",
      -  "runtimeMs",
      -  "lines",
      -  "exited",
      -  "exitCode",
      -  "signal",
      -  "range",
      -  "output",
      -  "explicitOffset"
      -]New value: +[
      +  "pid",
      +  "status",
      +  "runtimeMs",
      +  "lines",
      +  "exited",
      +  "exitCode",
      +  "signal",
      +  "range",
      +  "output",
      +  "explicitOffset",
      +  "hasMore"
      +]
  2. Added
  3. Removed
  4. First observed

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds some behavioral context by indicating this is for non-pattern-wait polling, but it does not disclose whether reads consume output, how buffer eviction affects availability, or how repeated calls interact with the non-idempotent hint.

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 a single front-loaded sentence that begins with the use case and contains no wasted text. It is appropriately sized for a tool whose structured fields carry the remaining detail.

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?

Given the full schema coverage, existing annotations, and an output schema, the description is sufficient for an agent to identify the tool. It could be stronger with an explicit reference to wait_for_process_output as the alternative, but nothing essential 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 pid, device, length, offset, and timeout_ms are already well documented in the schema. The description adds no parameter-level meaning beyond that, making the baseline 3 appropriate.

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 clearly frames the tool as fetching additional output from a previously started process, and it distinguishes that use from waiting on a pattern. It stops short of explicitly naming the resource as 'process output', but the purpose is still clear in context.

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 a specific condition for use: a process started earlier has more output to show and you do not want to wait for a pattern. That implicitly contrasts with wait_for_process_output, though it does not explicitly name the sibling tool or describe when reading without more output is appropriate.

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