Skip to main content
Glama
wonderwhy-er

Claude Desktop Commander MCP

by wonderwhy-er

read_process_output

Read-only

Read output from a running process with file-like pagination support.

Instructions

                    Read output from a running process with file-like pagination support.
                    
                    Supports partial output reading with offset and length parameters (like read_file):
                    - 'offset' (start line, default: 0)
                      * offset=0: Read NEW output since last read (default, like old behavior)
                      * Positive: Read from absolute line position
                      * Negative: Read last N lines from end (tail behavior)
                    - 'length' (max lines to read, default: configurable via 'fileReadLineLimit' setting)
                    
                    Examples:
                    - offset: 0, length: 100     → First 100 NEW lines since last read
                    - offset: 0                  → All new lines (respects config limit)
                    - offset: 500, length: 50    → Lines 500-549 (absolute position)
                    - offset: -20                → Last 20 lines (tail)
                    - offset: -50, length: 10    → Start 50 from end, read 10 lines
                    
                    OUTPUT PROTECTION:
                    - Uses same fileReadLineLimit as read_file (default: 1000 lines)
                    - Returns status like: [Reading 100 lines from line 0 (total: 5000 lines, 4900 remaining)]
                    - Prevents context overflow from verbose processes
                    
                    SMART FEATURES:
                    - For offset=0, waits up to timeout_ms for new output to arrive
                    - Detects REPL prompts and process completion
                    - Shows process state (waiting for input, finished, etc.)
                    
                    DETECTION STATES:
                    Process waiting for input (ready for interact_with_process)
                    Process finished execution
                    Timeout reached (may still be running)

                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pidYes
lengthNo
offsetNo
timeout_msNo
verbose_timingNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.2.17
    • addedInput schema / properties / length
      Added value: +{
      +  "type": "number"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "type": "number"
      +}
    • addedInput schema / properties / verbose_timing
      Added value: +{
      +  "type": "boolean"
      +}
  2. First observedv1.0.0

TDQS

A4.3/5.0
Behavior5/5

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

Annotations declare readOnlyHint/destructiveHint/openWorldHint, and the description goes well beyond them: it discloses the fileReadLineLimit-based output protection (default 1000 lines), the status line returned, waiting behavior up to timeout_ms for offset=0, and REPL/completion/timeout detection states. This is exactly the behavioral context the agent needs and cannot get from the annotations.

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?

The purpose and offset semantics are front-loaded, and the examples genuinely earn their place given 0% schema coverage. There is some redundancy (the DETECTION STATES list restates the SMART FEATURES points, and some examples overlap), plus a stray 'DC: ...' line, which keeps it from a 5.

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 5-parameter tool with no output schema and 0% schema coverage, the description is largely complete: it explains pagination semantics, return status format, limits, and process states. The only shortfall is the undocumented pid and verbose_timing parameters.

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 coverage is 0%, so the description carries the burden. It thoroughly documents offset (with a full example table) and length, and briefly mentions timeout_ms under SMART FEATURES, but pid and verbose_timing are entirely undocumented in both the schema and the description, leaving real gaps.

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 ('Read output from a running process') and immediately frames it against a known sibling behavior ('file-like pagination support', 'like read_file'). An agent can distinguish it from read_file, interact_with_process, and list_processes without opening any 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?

Gives strong context for the offset modes and, via the detection states, points to interact_with_process when the process is waiting for input. It does not explicitly state when NOT to use this tool or name a full set of alternatives, so it stops short of 5.

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