Skip to main content
Glama
Claude Desktop Commander MCP

Claude Desktop Commander MCP

by wonderwhy-er

start_process

Destructive

Launch and manage terminal processes on the authorized device, including shell commands, interactive REPL sessions, and long-running scripts, with automatic state and prompt 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: 4faa167019d6

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

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.7/5.0
Behavior4/5

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

Annotations already declare destructive/open-world/non-read-only behavior; the description adds meaningful context about Docker persistence risk, default /bin/sh, smart REPL/input/completion detection, early exit, and verbose_timing diagnostics. It does not contradict 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.

Conciseness2/5

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

It is front-loaded with the core purpose, but then becomes bloated with Docker container boilerplate, distro notes, diagnostic detail, and a repeated absolute-path paragraph. Much of that content is environment-specific noise rather than invocation guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex process-start tool with no output schema, it covers lifecycle states, follow-up output, and environment constraints reasonably well. It is still incomplete about timeout behavior, parameter meanings, and cleanup/termination routing to siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema coverage is 0% for 5 parameters, and the description compensates only partially: it explains verbose_timing and shows command examples, plus notes default shell /bin/sh. It does not document timeout_ms (required, units/default), origin enum values, or the shell parameter's override semantics, and examples omit timeout_ms despite it being required.

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 ('Start a terminal process') and scopes it to shell commands, interactive REPL sessions, one-shot commands, and long-running terminal work. The examples and state list make it distinguishable from sibling process tools such as read_process_output and interact_with_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?

Gives suitable use cases and examples, and explicitly directs the agent to read_process_output when a process is still running. It lacks explicit exclusions or comparisons for interact_with_process, force_terminate, or kill_process, so guidance is clear but not complete.

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