Skip to main content
Glama

cascade-mcp

Zero-configuration dynamic SSH and Docker remote development Model Context Protocol (MCP) server with streaming transfer and process control.

Ported from the Pi Cascade extension into a standalone, universal MCP server.

Key Features

  • Zero Setup Remote Operations: Connect to local/remote Docker containers, SSH servers, and nested multi-layer chains (e.g. ssh:jump-host|docker:my-container) without installing Python, Node.js, or daemons on target hosts.

  • Self-contained Go Helper: Automatically probes remote Linux architecture (amd64 / arm64) and injects a standalone statically linked helper with pidfd/procfs child process control.

  • Full Remote Toolset: Read, write, edit, bash execution, directory listing, glob finding, text grepping, and bidirectional streaming file copy.

  • Adaptive Compression: Fast file copy with automatic zstd compression and streaming backpressure.

  • Universal MCP Compatibility: Seamlessly integrates with Codex, Claude Desktop, Cursor, Zed, and any MCP-compliant AI assistant via standard I/O (stdio).

Related MCP server: SSH MCP Server

Quick Start

You can run the server directly from GitHub without manual cloning or building:

npx -y github:cheng6563/cascade-mcp

MCP Client Configuration

Codex / Claude Desktop (mcpServers config)

Add to your MCP configuration file (e.g. ~/.codex/config.toml or Claude desktop claude_desktop_config.json):

{
  "mcpServers": {
    "cascade": {
      "command": "npx",
      "args": ["-y", "github:cheng6563/cascade-mcp"]
    }
  }
}

Or for Codex config.toml:

[mcp_servers.cascade]
command = "npx"
args = ["-y", "github:cheng6563/cascade-mcp"]

Available Tools

Tool

Description

cascade_target

Discover, open, close, and manage target connections (action: "list" | "open" | "close" | "handles" | "status" | "forget" | "disconnect").

cascade_remote_bash

Execute shell commands in target environments with stdout/stderr capture and cancellation.

cascade_remote_read

Read remote files with offset and line limits.

cascade_remote_write

Write content to remote files (auto-creates parent directories).

cascade_remote_edit

Apply exact, unambiguous search-and-replace text edits.

cascade_remote_ls

List directory contents with file sizes and directory indicators.

cascade_remote_find

Search files on the remote filesystem by glob pattern.

cascade_remote_grep

Search text patterns within files on the target.

cascade_remote_copy

Bidirectional streaming file upload and download with zstd compression.

License

MIT License

Available Tools

9 tools
cascade_remote_bashB

Execute a shell command on an opened remote target. Returns stdout, stderr, and exit code. Supports execution timeout in seconds. Cancellation cleanly kills child process trees using pidfd/procfs.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesREADY target handle (e.g. target-1)
commandYesShell command to run on target
timeoutNoExecution timeout in seconds

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses return values (stdout, stderr, exit code), timeout support, and that cancellation kills child process trees via pidfd/procfs. It omits the side-effect profile of arbitrary shell execution (it can mutate or destroy remote state) and says nothing about permissions or failure modes.

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?

Four short sentences, front-loaded with the core action and followed by return values and cancellation behavior. No filler, though the timeout clause is largely redundant with the schema.

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 three-parameter tool with no output schema, the description covers action, return shape, timeout, and cancellation semantics, which is enough to invoke it correctly. It stops short of describing the prerequisite lifecycle that produces a READY handle or the risk profile of executing arbitrary commands.

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 100%, so all three parameters (handle, command, timeout) are already documented in the schema. The description only echoes the timeout-in-seconds semantics and adds nothing about handle format or command constraints, so the baseline 3 applies.

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?

States a specific verb and resource ("Execute a shell command on an opened remote target"), which is categorically distinct from the file-oriented siblings (read/write/edit/ls/find/grep/copy). However, it never names an alternative tool or explicitly contrasts itself against them, so differentiation is implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

The description says "on an opened remote target" and the schema notes the handle must be READY, implying a prerequisite, but there is no guidance on when to prefer bash execution over cascade_remote_read/write/edit or the search siblings. No exclusions or conditions are given.

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

cascade_remote_copyB

Stream transfer a regular file between local machine and opened remote target. Supports zstd compression.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesREADY target handle (e.g. target-1)
directionYesupload: local->remote; download: remote->local
localPathYesLocal file path
remotePathYesRemote file path
compressionNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden and falls well short. It does not say whether an existing destination file is overwritten, whether partial transfers are resumable, what permissions are needed on either side, or how errors/failures are surfaced — all critical for a mutation/transfer tool.

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?

Two short sentences with the core action front-loaded; the compression note is brief and relevant. Slightly terse for a transfer tool, but nothing is wasted.

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

Completeness2/5

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

A 5-parameter file-transfer tool with no annotations and no output schema needs more than this. Overwrite behavior, transfer durability, prerequisites (READY handle), and error semantics are all absent, leaving the agent unable to predict the tool's effects.

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 coverage is 80%, so the schema already documents handle, direction, and the path parameters; baseline is 3. The description adds only that zstd compression is supported, which lightly touches the otherwise-undescribed `compression` param but never clarifies the 'auto' mode or the zstd/none trade-off.

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?

States a specific verb (stream transfer) and resource (a regular file) with clear scope (local machine to opened remote target). It distinguishes itself from read/write/edit/ls/grep siblings by being the bulk-transfer tool, though the 'regular file' qualifier (excluding directories) is the only real disambiguation and no sibling is named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrase 'opened remote target' implies a prerequisite that the handle must already be READY, but no explicit when-to-use, when-not-to-use, or alternatives are stated. An agent must infer that this is for copying rather than reading/editing content.

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

cascade_remote_editB

Apply exact text replacements to a file on an opened remote target. Requires a READY handle. Each edit must specify oldText and newText.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRemote file path
editsYes
handleYesREADY target handle (e.g. target-1)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses the READY-handle prerequisite and that replacements must be exact, but says nothing about what happens when oldText is not found, whether edits are atomic, or permission requirements for a mutation.

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?

Three short sentences with the core action front-loaded and the prerequisite second. No filler, though the final sentence largely restates the schema's required nested fields.

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 mutation tool with no annotations and no output schema, the description covers the action, target, and prerequisite but omits failure modes, matching behavior, and what the call returns or changes. Adequate, not complete.

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 67%, near the middle baseline. The description names oldText/newText, but this merely restates the nested schema's required fields, and it adds no format or matching semantics (e.g. uniqueness, multiline behavior) beyond the schema.

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?

States a specific verb and resource: 'Apply exact text replacements to a file on an opened remote target.' An agent can distinguish this from cascade_remote_read, cascade_remote_grep, etc., but the description does not explicitly separate it from the closely related cascade_remote_write sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

Gives one prerequisite ('Requires a READY handle'), which is useful context. However, it offers no guidance on when to choose editing over cascade_remote_write or which sibling handles other mutations, leaving the choice to inference.

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

cascade_remote_findA

Find files matching a glob pattern on an opened remote target. Requires a READY handle.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirectory to search in
limitNoMaximum results to return
handleYesREADY target handle (e.g. target-1)
patternYesGlob pattern

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the READY-handle state requirement, a genuine behavioral trait, but says nothing about return format, how limit interacts with results, or whether this is a read-only operation. Partial disclosure only.

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

Conciseness5/5

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

Two tight sentences with the core purpose front-loaded and the precondition immediately after. No filler or redundancy.

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 fully documented 4-parameter read tool with no output schema, the description covers purpose and one precondition. It stops short of clarifying result behavior or routing against the many remote siblings, leaving modest gaps.

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 100%, so path, limit, handle, and pattern are all documented in the schema itself. The description adds no syntax or format detail beyond what the schema provides, so the baseline of 3 applies.

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?

States a specific verb (Find) and resource (files matching a glob pattern) scoped to a remote target, which is clear. It doesn't explicitly distinguish itself from the closely related sibling cascade_remote_grep, so an agent must infer that find is name/path matching rather than content search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description supplies a precondition ('Requires a READY handle'), which is useful context, but gives no when-to-use guidance relative to alternatives like cascade_remote_grep or cascade_remote_ls. Usage is left to inference from the verb.

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

cascade_remote_grepB

Search text content within files on an opened remote target. Requires a READY handle.

ParametersJSON Schema
NameRequiredDescriptionDefault
globNoGlob pattern filter
pathNoDirectory or file to search in
limitNo
handleYesREADY target handle (e.g. target-1)
contextNo
literalNo
patternYesRegex or literal text to search for
ignoreCaseNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description carries the full behavioral burden, yet it only discloses the READY-handle prerequisite. It does not state return format, whether pattern is regex by default (literal flag exists), pagination via limit, or what a non-READY handle error looks like.

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?

Two tight sentences with the core action front-loaded and the prerequisite second. No filler, though the second sentence is terse enough to feel under-informative rather than optimally dense.

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

Completeness2/5

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

An 8-parameter search tool with no annotations, no output schema, and only 50% schema coverage needs more than two sentences. The description omits the regex/literal default, path scoping behavior, and result-limit semantics, leaving meaningful gaps.

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 only 50%, so the description should compensate, but it mostly repeats the required handle constraint ('READY handle'). It adds nothing for glob, path, limit, context, literal, or ignoreCase, leaving those to the partially-documented schema.

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?

States a specific verb (search/grep) plus the resource (text content within files) and scope (opened remote target), making it clearly distinct from read/edit/ls siblings. It stops short of explicitly naming how it differs from cascade_remote_find, so an agent must infer the grep-vs-find boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

Provides one concrete prerequisite ('Requires a READY handle'), which is real usage context. However it offers no guidance on when to use this versus cascade_remote_find or cascade_remote_read, leaving the alternative-selection decision implied.

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

cascade_remote_lsB

List directory entries on an opened remote target. Returns item names, types (DIR/FILE), and sizes.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirectory path on remote target
limitNoMaximum number of entries to return (default: 500)
handleYesREADY target handle (e.g. target-1)

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses the return shape (item names, DIR/FILE types, sizes), which is valuable since no output schema exists, but it says nothing about permissions, side effects, or how the optional path is resolved when omitted.

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?

Two tight sentences with the purpose front-loaded and the return contents following. No filler, though it is minimal enough that a little more scoping detail would not have hurt.

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?

The description covers return values, which matters since no output schema exists, but it omits what happens when the optional path is not supplied, how limit interacts with the listing, and pagination behavior. Adequate but with clear gaps for a discovery tool.

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 100%, so all three parameters (path, limit, handle) are already documented in the schema, including the default of 500 and the READY handle example. The description adds no parameter-level detail beyond that, so the baseline of 3 applies.

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?

States a specific verb+resource ("List directory entries") scoped to "an opened remote target," which cleanly separates it from siblings like cascade_remote_read, cascade_remote_find, and cascade_remote_grep. It stops short of explicitly naming an alternative, so differentiation rests on the reader's inference from the sibling names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

"On an opened remote target" hints that a READY handle is a prerequisite, which is mild usage context. However, there is no guidance on when to use ls versus cascade_remote_find or cascade_remote_grep, and no when-not conditions are given.

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

cascade_remote_readB

Read a file from an opened remote target. Requires a READY handle returned by cascade_target open. Supports offset & limit with line numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRemote file path
limitNoNumber of lines to read
handleYesREADY target handle (e.g. target-1)
offsetNoStarting line number (1-based)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the READY-handle precondition and the offset/limit line-based read model, but does not state read-only semantics, behavior on an invalid handle, or what a failed read returns. Useful but incomplete disclosure for a read operation.

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?

Three short sentences with the core purpose and the handle prerequisite front-loaded; nothing is padded. It is terse enough that a little more detail could fit without harming readability.

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?

There is no output schema, so the description should carry return-value expectations; it only hints at numbered lines via 'with line numbers' and says nothing about error or empty-file behavior. Adequate for invoking the tool, but thin for a tool with no structured return contract.

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 coverage is 100%, with each of the four parameters documented (path, limit, handle, offset 1-based) directly in the schema. The description's 'offset & limit with line numbers' merely restates what the schema already provides, so the baseline 3 applies.

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?

States a specific verb and resource ('Read a file from an opened remote target'), which clearly separates it from sibling listing/search operations like cascade_remote_ls, grep, and find. However, it does not explicitly name any sibling or contrast itself beyond the implicit file-contents scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

Provides a real prerequisite ('Requires a READY handle returned by cascade_target open'), which tells the agent when the tool is usable. It offers no when-not guidance and does not route the agent to alternatives such as cascade_remote_grep for searching or cascade_remote_ls for listing, so usage is only partially framed.

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

cascade_remote_writeA

Write content to a file on an opened remote target. Requires a READY handle. Automatically creates parent directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRemote file path
handleYesREADY target handle (e.g. target-1)
contentYesContent to write into the file

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, and it does disclose two useful traits: the READY-handle prerequisite and automatic parent-directory creation. It stops short of stating the most consequential behavior for a write tool — whether existing file content is overwritten or truncated, and whether the operation is reversible.

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

Conciseness5/5

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

Three short sentences, each earning its place: purpose first, then the precondition, then the side benefit. No filler and no repetition of the field list.

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?

With no annotations and no output schema, the description should cover the mutation's side effects, and it omits the single most important one — overwrite behavior on an existing file. The auto-mkdir note is a nice addition, but an agent still cannot fully predict the state left behind.

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 100%, so handle, path, and content are already documented in the schema; baseline 3 applies. The description's mention of a 'READY handle' reinforces the schema's handle semantics but adds no format or syntax detail beyond it.

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?

States a specific verb (write) and resource (file on a remote target) with the scope constraint that the target must be active. It is clearly distinct from a read tool, though it never explicitly contrasts itself with the sibling cascade_remote_edit, whose role (presumably partial/surgical edits vs full-content writes) an agent must infer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The prerequisite 'Requires a READY handle' gives a usable precondition for calling it. However, there is no explicit guidance on when to choose this over cascade_remote_edit or cascade_remote_bash for modifying remote files, so the write-vs-edit decision is left to inference.

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

cascade_targetA

Discover, connect, and manage Docker and SSH targets without manual agent setup. Use action=list to inspect running Docker containers. Use action=open to establish a live connection to a container, SSH host, or nested target chain, returning a target handle. Use action=handles or action=status to inspect active connections and remembered targets. Use action=close to close a specific handle, or action=disconnect to close all handles. Use action=forget to remove a remembered pinned target.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
hostNo
modeNo
actionYes
handleNo
targetNo
passwordNo

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose meaningful behavior: open returns a target handle, close terminates one handle, disconnect terminates all handles, forget removes a remembered pinned target. But it is silent on authentication (the presence of a password parameter is never explained), the transient vs. pinned lifetime distinction, and anything about persistence of connections.

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

Conciseness5/5

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

One opening purpose sentence followed by a tightly packed action-by-action rundown. Front-loaded with the capability summary, every sentence carries a distinct action mapping, and there is no filler.

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 7-parameter, no-annotation connection-management tool with no output schema, the description covers action semantics well but leaves notable gaps: how credentials (password) are supplied, what transient vs. pinned actually means for connection lifetime, and what a nested target chain looks like. It also never positions itself relative to the cascade_remote_* tools that presumably consume its handles.

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% across 7 parameters, so the description must compensate. It fully glosses the action enum and indirectly implies the handle parameter ('returning a target handle', 'close a specific handle'). It says nothing about host, password, mode (transient/pinned semantics), cwd, or the target chain syntax, so compensation is partial.

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?

Opens with a specific verb set and resource: 'Discover, connect, and manage Docker and SSH targets,' which is concrete and actionable. It never mentions the cascade_remote_* siblings, so an agent must infer that this is the connection-management tool that those file/bash tools depend on. Clear purpose, but no explicit sibling differentiation.

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 explicit per-action routing: use list to inspect containers, open to establish a connection and get a handle, handles/status to inspect, close vs disconnect to tear down, forget to remove a pinned target. That is strong when-to-use guidance across the seven actions. However, it never states when to prefer this tool over the cascade_remote_* family, nor any prerequisites/exclusions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv0.1.0
    • First observedcascade_remote_bash
    • First observedcascade_remote_copy
    • First observedcascade_remote_edit
    • First observedcascade_remote_find
    • First observedcascade_remote_grep
    • First observedcascade_remote_ls
    • First observedcascade_remote_read
    • First observedcascade_remote_write
    • First observedcascade_target

TDQS

A3.7/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a distinct purpose: target lifecycle (cascade_target) versus remote file/command operations (read, write, edit, bash, ls, find, grep, copy). Descriptions clarify handle requirements and action semantics, leaving no overlapping boundaries.

Naming Consistency5/5

All tools follow a predictable snake_case pattern with the cascade_ prefix, using clear action suffixes. cascade_target groups target management while cascade_remote_* groups remote operations, a consistent and readable convention.

Tool Count5/5

Nine tools are well-scoped for remote target access and manipulation. The multi-action cascade_target consolidates lifecycle operations, avoiding unnecessary tool proliferation while each remote operation earns its place.

Completeness4/5

Core remote read/write/edit/bash/ls/find/grep/copy and target lifecycle actions are covered. Minor gaps exist—no explicit remote delete, move, or stat operations—but agents can work around these via bash, so the surface is largely complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to securely execute commands, transfer files, and manage port forwarding on remote servers via SSH.
    145 npm
    37
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to securely execute commands on remote hosts via SSH and SFTP, with persistent shells, file transfers, screenshots, and an audit log.
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to manage remote servers via SSH, including command execution, multi-host batch operations, SFTP file transfer, background job handling, DevOps diagnostics, port tunneling, and safety guardrails like high-risk command blocking and read-only mode.
    MIT