Skip to main content
Glama
cygnussystems

cygnus-ssh-mcp

Official

ssh_dir_delete

Delete a directory and all its contents recursively with a safety preview: dry_run defaults to True, so pass dry_run=False to actually delete.

Instructions

Delete a directory and all its contents recursively. dry_run DEFAULTS TO True - calling this with no arguments other than path only PREVIEWS what would be deleted and deletes NOTHING; you must explicitly pass dry_run=False to actually delete. Refuses to delete a small set of critical paths outright (root, home directory, C:\Windows, C:\Users, etc.) regardless of dry_run.

For a simpler non-recursive removal without the preview step, see ssh_dir_remove.

Returns: {'status': 'success'/'error', 'deleted_items': [str, ...] (paths that were/would be removed, depth-first order)}, plus 'dry_run': True ONLY when this was a preview (check for this key to tell a preview apart from a real deletion - it's absent, not False, on actual deletions) and 'error' (string) on failure. Also fails (with 'error' set) if path is a recognized critical directory.

Long-running calls: if this takes longer than the server's wait cap (default 50s), it
returns {"status": "in_progress", "handle_id": ...} instead of the result - the work keeps
running. Get the result by polling ssh_cmd_check_status(handle_id=...), which returns this
tool's normal response once finished. Do not call it again meanwhile. Only one such
operation runs at a time; another one started meanwhile fails with a 'busy' error.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesDirectory path to delete
dry_runNoPreview deletion without actually deleting
use_sudoNoUse sudo for the operation

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.3.0

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly: it discloses the dry_run=True default and its consequence, the critical-path refusal list, the presence/absence semantics of the 'dry_run' return key, the in_progress handle behavior past the 50s wait cap, and the one-operation-at-a-time 'busy' failure. This is far beyond what the schema conveys.

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?

Front-loads the destructive-recursion purpose and the dry_run default, which are the highest-stakes facts, and every section (return, long-running) earns its place. It is dense and slightly long, with heavy capitalization for emphasis, but not padded.

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

Completeness5/5

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

For a destructive, potentially long-running tool with no annotations, the description covers safety defaults, refusal behavior, return shape (even though an output schema exists), and async/polling semantics. Nothing an agent needs to call it correctly is missing.

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 coverage is 100% so the baseline is 3, but the description meaningfully extends `dry_run` beyond the schema's one-liner by explaining that omitting it previews and nothing is deleted unless `dry_run=False` is passed explicitly. `use_sudo` gains no additional explanation, keeping it from a 5.

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 precise verb+resource with scope ('Delete a directory and all its contents recursively') and explicitly names the sibling it is not ('For a simpler non-recursive removal without the preview step, see ssh_dir_remove'). An agent can distinguish it from ssh_dir_remove and ssh_dir_batch_delete_files 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 Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use context (recursive removal with preview) and routes to the alternative (ssh_dir_remove) for the non-recursive case. It also warns against re-calling during a long-running operation and points to ssh_cmd_check_status for polling.

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