Skip to main content
Glama
wonderwhy-er

Claude Desktop Commander MCP

by wonderwhy-er

start_process

Destructive

Start a terminal process on the authorized device with intelligent state detection.

Instructions

                    Start a terminal process on the authorized device with intelligent state detection.
                    
                    Suitable for shell commands, interactive REPL sessions, data-processing scripts,
                    programmatic file analysis, and other long-running terminal work.
                    
                    Running on Linux (Docker). Default shell: /bin/sh.

🐳 DOCKER CONTAINER ENVIRONMENT DETECTED: This Desktop Commander instance is running inside a Docker container.

āš ļø WARNING: No mounted directories detected. Files created outside mounted volumes will be lost when the container stops. Persistent file work requires a mounted directory, available through the Docker installer or a -v mount. Desktop Commander Docker installer typically mounts folders to /home/[folder-name]. Container: e404e2a72c27

LINUX-SPECIFIC NOTES:

  • Package managers vary by distro: apt, yum, dnf, pacman, zypper

  • Python 3 might be 'python3' command, not 'python'

  • Standard Unix shell tools available (grep, awk, sed, etc.)

  • File permissions and ownership important for many operations

  • Systemd services common on modern distributions

                      Examples:
                      • start_process("python3 -i") → Start an interactive Python REPL
                      • start_process("node -i") → Start an interactive Node.js REPL
                      • start_process("node:local") → Run stateless Node.js code on the MCP server
                      • start_process("wc -l /path/file.csv") → Run a one-shot shell command
    
                      Interactive process sessions support follow-up input after they are started.
                      Long-running process sessions expose newly available output while they remain active.
                      Binary files can be processed with appropriate command-line tools or libraries available
                      in the selected process environment.
    
                      SMART DETECTION:
                      - Detects REPL prompts (>>>, >, $, etc.)
                      - Identifies when a process is waiting for input
                      - Recognizes process completion vs timeout
                      - Early exit prevents unnecessary waiting
                      
                      STATES DETECTED:
                      Process waiting for input (shows prompt)
                      Process finished execution
                      Process running (use read_process_output)
    
                      PERFORMANCE DEBUGGING (verbose_timing parameter):
                      Set verbose_timing: true to get detailed timing information including:
                      - Exit reason (early_exit_quick_pattern, early_exit_periodic_check, process_exit, timeout)
                      - Total duration and time to first output
                      - Complete timeline of all output events with timestamps
                      - Which detection mechanism triggered early exit
    
                      Absolute paths are the most reliable because they do not depend on the current working directory. Paths are automatically normalized regardless of slash direction. Relative paths depend on the current working directory, and tilde paths (~/...) may not resolve in every context. Absolute paths are generally the most reliable.
                      This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
shellNo
originNo
commandYes
timeout_msYes
verbose_timingNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.2.44
    • addedInput schema / properties / origin
      Added value: +{
      +  "enum": [
      +    "ui",
      +    "llm"
      +  ],
      +  "type": "string"
      +}
  2. Changed1 schema field changedv0.2.17
    • addedInput schema / properties / verbose_timing
      Added value: +{
      +  "type": "boolean"
      +}
  3. First observedv1.0.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, and the description adds substantial context beyond that: files written outside mounted volumes are lost on container stop, output is surfaced incrementally for long-running sessions, and verbose_timing exposes exit-reason and timing internals. This is genuinely useful disclosure, though it doesn't state permission/auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose and examples are front-loaded, which is good, but the definition is heavily bloated with transient runtime content (container ID e404e2a72c27, Docker-detection block, generic Linux package-manager notes) that does not describe the tool's contract and dilutes the signal.

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 an executing, open-world, destructive tool with no output schema, the description covers the process lifecycle well: what starts, how states are detected, when to read output, and how follow-up/interaction works. The main omission is any statement about what the initial call returns or the timeout semantics.

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 0%, so five parameters carry no structural documentation and the description must compensate. It fully explains verbose_timing and illustrates command via examples, and notes the default shell (/bin/sh), but leaves origin and timeout_ms entirely undocumented, covering only part of the gap.

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 opening line states a specific verb+resource ("Start a terminal process") and the concrete examples (python3 -i, node -i, wc -l) make the intended use unmistakable. It also names the sibling to use for a running process ("use read_process_output"), which aids differentiation, though it doesn't contrast against interact_with_process or kill_process.

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 enumerates the intended scenarios (shell commands, interactive REPLs, data-processing scripts, long-running work) and gives four concrete invocation examples, which provide strong positive guidance. It stops short of explicit when-not-to-use guidance or direct routing away from sibling tools like interact_with_process or kill_process.

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