Skip to main content
Glama

Remote Desktop Commander

interact_with_process

Destructive
                    Send input to an existing terminal or REPL process and return newly available output.
                    
                    Useful for interactive shells, Python/Node/R/Julia REPLs, database consoles,
                    and long-running commands started with start_process().
                    
                    Examples:
                    - Interactive Python REPL sessions can be started with `python3 -i`.
                    - Existing interactive sessions accept additional input such as imports or analysis commands.
                    - Interactive sessions can return newly available output while they remain active.
                    
                    SMART DETECTION:
                    - Automatically waits for a recognized prompt when requested
                    - Detects errors and completion states
                    - Early exit prevents unnecessary waiting
                    - Cleans common REPL prompt text from returned output
                    
                    PARAMETERS:
                    - pid: Process ID returned by start_process
                    - input: Text or command to send to the process
                    - timeout_ms: Maximum wait time (default: 8000ms)
                    - wait_for_prompt: Whether to wait for a prompt before returning (default: true)
                    - verbose_timing: Include detailed timing telemetry (default: false)

                    Returns execution result with status indicators.

                    PERFORMANCE DEBUGGING (verbose_timing parameter):
                    When enabled, detailed timing includes:
                    - Exit reason
                    - Total duration and time to first output
                    - Timeline of output events

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

REMOTE EXECUTION: Remote execution waits at most 3 seconds for a prompt or response. For longer work, read output again later or set wait_for_prompt=false to return immediately. Larger timeout_ms values are accepted but capped at 3000ms.

Input Schema

NameRequiredDescriptionDefault
pidYes
inputYes
deviceIdNoThe ID of the device to run this tool on (from list_devices). Required when more than one device is online; may be omitted when only one device is connected.
timeout_msNo
verbose_timingNo
wait_for_promptNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=true. The description adds valuable behavioral context beyond the annotations: prompt waiting, error/completion detection, early exit, prompt cleaning, returned status indicators, and the 3-second remote-execution cap. It does not explicitly warn that sent input can execute destructive commands, but the annotations carry that safety signal.

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 description is well-structured and front-loads the purpose, but it is longer than necessary for a six-parameter tool. Sections such as examples, smart detection, performance debugging, and the DC reference contain useful but partially redundant detail. Some sentences could be tightened without losing selection-critical information.

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 mutation-capable, open-world tool with rich annotations but no output schema, the description covers the main invocation context: process targeting, wait behavior, remote timeouts, and status indicators. The return value explanation is vague ('execution result with status indicators'), but most tool-selection needs are met. It is not fully complete, but it is solid.

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

Parameters4/5

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

Schema description coverage is only 17%, so the description must compensate, and it does: it documents pid, input, timeout_ms, wait_for_prompt, and verbose_timing with defaults and meaning. It omits deviceId, but the schema already describes that parameter, so the practical gap is small. Input formatting details are still somewhat thin.

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?

The description states a specific verb and resource: send input to an existing terminal or REPL process and return newly available output. It also scopes the tool to processes started with start_process(), which helps distinguish it from process-creation siblings. An agent can tell what this tool does without opening the 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?

The description gives clear usage context: interactive shells, Python/Node/R/Julia REPLs, database consoles, and long-running commands started with start_process(). It does not explicitly compare itself with read_process_output or state when not to use this tool, but the context is strong enough to select it correctly in most cases.

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.