An MCP server for automated Linux SSH command execution and host management. Provides tools for executing commands on remote Linux servers, managing SSH host credentials, and interactive shell sessions.
Linux-MCP has 19 tools with complete input schemas and descriptions, but quality is inconsistent. Tool names lack clear verb-noun structure (e.g., 'batch_cmd' vs 'execute_command', 'interactive_cmd' vs 'run_interactive_command'). Descriptions are present but minimal (10-50 chars), providing insufficient context for LLM selection. No output schemas documented. Critical security issue: passwords exposed as plaintext parameters. No error handling guidance, no idempotency markers, no pagination support. Composition is poor: 4 separate modify_host_* tools should consolidate; session management tools lack clear lifecycle documentation.
添加新主机
备份数据库
执行Linux系统命令并返回结果
执行Linux系统命令,并返回状态值
关闭指定的SSH会话
创建一个持久的交互式SSH shell会话
删除指定主机
在指定会话中执行命令
Passwords exposed as plaintext parameters in add_host, modify_host, modify_host_user_pwd. Credentials must use server-side secret injection; agent traces log all parameters, leaking secrets into logs and prompt history.
Four separate modify_host_* tools (modify_host_ip, modify_host_user_pwd, modify_host_port, modify_host) violate single-responsibility principle. LLM must reason about which to call; should consolidate into one update_host with optional fields or separate by semantic domain (e.g., update_host_credentials vs update_host_network).
Descriptions are too brief (10-50 chars, baseline 194 chars). Examples: 'execute_session' = '在指定会话中执行命令' (12 chars). Descriptions lack WHEN to use, prerequisites, or return value guidance. LLMs cannot distinguish between batch_cmd and batch_cmd_not_ref without longer context.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | <=2025-11-25 | v2 |
下载远程文件到本地
执行交互式命令,支持自动应答
列出所有活跃的SSH会话
全量修改主机信息
单独修改主机IP地址
单独修改主机端口号
单独修改主机账号和密码
上传本地文件到远程主机
读取会话的新输出
向会话发送输入
显示所有主机列表
No output schemas documented. Tools return JSON strings via ResponseFormatter but LLM cannot infer response structure. Missing: field names, types, pagination info, error response format. Agents cannot plan downstream calls or extract data reliably.
No error handling guidance. ResponseFormatter.error() returns generic messages like '执行命令失败' without actionable recovery steps. LLM cannot distinguish retryable errors from user-fixable ones. Missing: error classification, invalid value echoing, available alternatives.