MCP server for file operations, shell command execution, and terminal session management on Termux/Android
Server has 6 tools with visible schemas and descriptions, but quality is inconsistent. Tool names lack clear action verbs (read_lines, replace_lines, replace_text are acceptable; readme and terminal are weak). Descriptions are present but often reference external documentation ('详见 readme') rather than being self-contained. Parameters have types and descriptions, but many descriptions are in Chinese and lack actionable constraints. Error handling exists but returns generic format_mixed_output() without recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (WRITE, IRREVERSIBLE). Output schemas are not formally documented, responses are formatted as mixed text+metadata but structure is implicit. The readme tool is a meta-tool with no real function, which violates single-responsibility principle.
执行 shell 命令。 - command: 要执行的命令。支持列表形式如 ["ls", "-la"],或字符串形式如 "ls -la"。 当传入单元素列表时自动视为字符串并用 shlex 分割。 - target: "d"/"droidspaces"(容器)或 "t"/"termux"(本机,尽量避免)。必填。 公共参数(folder_name, time_out, truncate_output, truncate_limit)详见 readme。
读取文件的指定行范围(0-based,与 Python 列表索引一致)。 - start_line: 起始行号(包含),默认 0。 - end_line: 结束行号(包含),None 或 -1 表示到文件末尾。 - max_lines: 限制返回的最大行数。 - max_chars: 限制返回的最大字符数(保留尾部)。 - tail_lines: 若指定,读取文件末尾最后 N 行,忽略 start_line/end_line。 公共参数(path, truncate_limit)详见 readme。
所有工具的详细参数说明。 你不应该调用这个工具,这个工具唯一的用途就是提供说明,没有实际作用 公共参数(多处复用,不再逐个工具重复): - path: 文件路径,支持 ~ 展开。 - truncate_limit: 输出截断长度上限。 - folder_name: 工作子目录名。 - time_out: 超时,"auto" 或数字秒。 - truncate_output: 是否截断输出内容。 - unescape: 保底机制,默认 False。当 AI 无法嵌入真实换行时设为 True,可将 \n 等转义序列还原。 小技巧: replace_line 会尝试自动创建文件以及对应的文件夹,所以可以直接使用而不用 touch exec 不支持管道等 shell 语法,需要时用 bash -c 包裹,如 ["bash", "-c", "cmd1 | cmd2"] 也可以省略引号直接写 bash -c cmd1 | cmd2
替换文件中指定行范围(0-based,包含两端)。 - start_line: 起始行号(包含)。 - end_line: 结束行号(包含),-1 表示到文件末尾。 - new_content: 替换后的新内容。 - auto_fix: 自动修复换行 + 相邻行重复跳过(默认 True)。 公共参数(path, truncate_limit, unescape)详见 readme。
在文件中查找并替换文本(支持纯文本或正则表达式)。 - old_text: 要查找的文本(若 use_regex=True 则为正则模式)。 - new_text: 替换后的文本。 - use_regex: 是否使用正则表达式(默认 False)。 - count: 替换次数限制(-1 表示全部替换)。 - auto_fix_newline: 自动修复换行(默认 True)。 公共参数(path, truncate_limit, unescape)详见 readme。
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite explicit risk levels. replace_lines and replace_text are WRITE operations; exec and terminal are IRREVERSIBLE. LLMs cannot infer safety constraints without annotations.
Descriptions rely heavily on external documentation ('详见 readme'). Descriptions should be self-contained; referencing external docs forces LLMs to make extra tool calls and wastes context. Descriptions are also in Chinese, limiting accessibility.
readme tool violates single-responsibility principle. It is a meta-tool that provides documentation rather than performing an action. This should be removed; documentation belongs in parameter descriptions and tool descriptions, not as a callable tool.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
终端管理统一入口。 - session_id: 会话标识符。 - action: "start" / "interact" / "close"。先 start,用完必须 close。 - command: 发送的命令(interact 时)。 - strip_ansi: 是否去除 ANSI 转义。 - hide_input: 是否隐藏输入回显。 公共参数(folder_name, time_out, truncate_output, truncate_limit)详见 readme。
Error responses use generic format_mixed_output() without recovery guidance. Errors like 'FileNotFoundError' or 'PermissionError' are returned as-is without suggesting next steps (e.g., 'Try checking the file path' or 'Verify permissions'). LLMs cannot self-correct without actionable error messages.
Output schema is implicit (format_mixed_output returns text + metadata dict). No formal documentation of response structure. LLMs cannot reliably parse or chain results without explicit schema definitions.