run_destructive_command
Execute a dangerous shell command only after the user explicitly confirms the risk and approves running it, bypassing the safety block from the safe runner.
Instructions
Use ONLY when run_safe_command rejected the command AND the user explicitly confirmed in the chat that they want to run it despite the risk. NEVER set confirm:true automatically in reaction to a rejection from run_safe_command. First restate the risk to the user in your own words (exactly what the command will do and what it could break) and wait for their explicit 'yes' or 'I confirm' in the next message. If the user is not present in the conversation (e.g. an automated run without a human), do not use this tool at all. EXAMPLE: If the user says 'do it' for a general task and you then hit a dangerous rejection, that is not sufficient confirmation — you must explain the specific risk and get a new explicit confirmation. If the task targets a project other than the primary one (MCP_PROJECT_ROOT), always pass the "cwd" parameter. Get the list of allowed roots via the "list_allowed_roots" tool.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | The directory in which the command will be run (must be inside MCP_PROJECT_ROOT / MCP_EXTRA_ROOTS). Default: the primary project (MCP_PROJECT_ROOT). | |
| command | Yes | The command to execute (runs in the directory given by the cwd parameter) | |
| confirm | No | Confirmation that you are aware of the risk (required for dangerous commands) | |
| maxLines | No | Maximum number of output lines (default: 200) | |
| timeoutMs | No | Timeout in milliseconds (1,000 – 600,000, default 60,000). You can extend it for longer tests/builds, e.g. 180,000 for jest. |