Safe MCP bridge for Xshell terminal control and OpenSSH file transfers with local user approval.
Strong tool definitions with complete schemas and detailed descriptions. All 9 tools have explicit input schemas with proper JSON Schema structure (type, properties, required fields, additionalProperties=false). Descriptions are comprehensive (100-300+ chars), explaining WHAT the tool does, WHEN to use it, and critical safety constraints. Tool names follow verb_noun pattern (xshell_*, sftp_*). However, output schemas are not documented, LLMs cannot predict response structure. Parameter descriptions are thorough but some lack explicit format/constraint details. Error handling guidance is implicit in descriptions rather than explicit recovery patterns. Security-conscious design (user approval gates, credential handling) is well-documented but not formalized as error categories.
申请使用 Windows OpenSSH 从服务器下载单个文件。程序会先在本机弹窗展示主机、远程路径、本地路径、风险和预期结果;用户同意后才打开独立终端,密码必须由用户亲自输入。文件先保存为唯一的 .part 文件,可校验 SHA-256,再次确认后才改为正式文件名。默认禁止覆盖已有文件。
读取下载或上传任务的当前阶段、文件大小、SHA-256 或错误信息。只读操作,不会连接服务器或修改文件。
申请使用 Windows OpenSSH 向服务器上传 downloads 目录中的单个文件。程序会先计算本地文件大小和 SHA-256,并在 Xshell 弹窗展示全部信息;用户同意后才打开独立终端,密码必须由用户亲自输入。文件先上传为唯一的远程 .part 文件,再次确认后才在服务器校验 SHA-256,并以禁止覆盖方式改为正式文件名。
检查本机桥接服务是否运行,并统计已接入的 Xshell 标签页。只读操作。
申请发送 Ctrl+C。调用前必须解释影响,Xshell 会要求用户本地确认;用户拒绝时不会发送任何内容。
列出当前已接入桥接程序的 Xshell 标签页,不读取 Xshell 保存的凭据。只读操作。
Output schemas not documented. LLMs cannot predict response structure for any tool. xshell_health, xshell_list_sessions, xshell_read_screen, sftp_download, sftp_upload, sftp_transfer_status all lack documented return types.
Error handling lacks explicit recovery guidance. Descriptions mention user approval and safety constraints but do not categorize errors as retryable, user-fixable, or fatal. No guidance on what LLM should do if a tool fails.
session_id parameter in xshell_read_screen, xshell_send, xshell_interrupt, xshell_wait_for lacks explicit description of how to obtain it. Description says 'from xshell_list_sessions' but does not state the field name or format.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
读取终端窗口当前可见的文字,不是截图,也不包含已滚出窗口的完整历史。只有一个在线会话时可省略 session_id。
申请发送精确终端输入。调用前必须向用户解释本步骤;Xshell 会显示说明、预期结果、风险和完整输入,只有用户点击"是"才发送。企业安全模式会硬性拒绝文件删除、资源清理、磁盘格式化、数据库删除、软件卸载和关机重启等命令;Agent 不得通过脚本、编码、别名或拆分命令绕过,只能请用户在 Xshell 中亲自输入。密码、口令、验证码、Token、API Key 等敏感信息同样必须由用户亲自输入,Agent 不得代填。
轮询当前可见屏幕,直到出现指定文字或超时。不会发送终端输入;高速日志应落盘后分段查看。
sftp_download and sftp_upload descriptions reference Windows OpenSSH and PowerShell-specific behavior (launch windows, .part files, SHA-256 verification) but do not document what the tool actually returns or how the LLM tracks progress. Dependency on sftp_transfer_status is implicit, not explicit.
xshell_wait_for lacks timeout_ms default documentation in description. Schema shows default=30000 but description does not mention it, forcing LLMs to infer behavior.