SuperAPI AI 工具集

win-cli-mcp-server

win-cli-mcp-server 是一个面向 Windows 系统的模型上下文协议(MCP)服务器,用于在受控条件下提供命令行交互能力。它允许 MCP 客户端(如 Claude Desktop)在 Windows 上执行 PowerShell、CMD、Git Bash 命令,并可通过 SSH 操作远程系统。项目已标记为弃用,不再维护,官方建议改用 DesktopCommanderMCP 获取类似功能。该服务器强调安全控制,包括命令与参数屏蔽、工作目录限制、命令长度与超时限制、命令日志记录等,并支持通过 JSON 配置文件自定义安全规则、Shell 设置和 SSH 连接。

访问官网

工具介绍

用途

win-cli-mcp-server 是一个模型上下文协议(MCP)服务器,旨在为 Windows 系统提供安全的命令行交互能力。它使 MCP 客户端(例如 Claude Desktop)能够像 Open Interpreter 那样在用户系统上执行操作,包括访问文件、环境变量、执行命令以及管理远程服务器。

注意:该项目已标记为弃用(DEPRECATED),不再维护。官方建议使用 https://github.com/wonderwhy-er/DesktopCommanderMCP 获取类似功能。

主要能力

  • 多 Shell 支持:可在 PowerShell、命令提示符(CMD)和 Git Bash 中执行命令。
  • SSH 支持:可通过 SSH 在远程系统上执行命令。
  • 资源暴露:将 SSH 连接、当前目录和配置作为 MCP 资源查看。
  • 安全控制:
    • 命令和 SSH 命令屏蔽(支持完整路径、大小写变体)
    • 工作目录验证
    • 最大命令长度限制
    • 命令日志与历史记录跟踪
    • 智能参数验证
  • 可配置性:自定义安全规则、Shell 特定设置、SSH 连接配置文件、路径限制、屏蔽命令列表。

服务器仅允许在配置的目录内、使用允许的命令、在配置的 SSH 连接上执行操作。

使用方式

与 Claude Desktop 配合使用

将以下内容添加到 claude_desktop_config.json 中(具体配置内容官方文档未在提供资料中完整展示)。若需使用特定配置文件,可添加 --config 标志。

配置完成后,可以:

  • 使用可用工具直接执行命令
  • 在 Resources 部分查看已配置的 SSH 连接和服务器配置
  • 通过提供的工具管理 SSH 连接

配置文件

服务器使用 JSON 配置文件自定义行为,可指定安全控制、Shell 配置和 SSH 连接设置。

创建默认配置文件的方式:

  • a) 将 config.json.example 复制为 config.json,或
  • b) 通过其他方式生成(资料未完整说明)

然后按“与 Claude Desktop 配合使用”部分所述,设置 --config 标志指向配置文件。

服务器按以下顺序查找配置:

  1. --config 标志指定的路径
  2. 当前目录下的 ./config.json
  3. 用户主目录下的 ~/.win-cli-mcp/config.json

若未找到配置文件,服务器将使用默认(受限)配置。默认配置设计为限制性且安全。

配置文件分为三个主要部分:security、shells 和 ssh。

API 工具与资源

工具

  • execute_command:在指定 Shell 中执行命令。输入:shell(字符串,可选 "powershell"、"cmd" 或 "gitbash")、command(字符串)、workingDir(可选字符串)。返回命令输出文本或错误信息。
  • get_command_history:获取已执行命令的历史记录。输入:limit(可选数字)。返回带时间戳的命令历史及输出。
  • ssh_execute:通过 SSH 在远程系统上执行命令。输入:connectionId(字符串)、command(字符串)。返回命令输出文本或错误信息。
  • ssh_disconnect:断开 SSH 服务器连接。输入:connectionId(字符串)。返回确认消息。
  • create_ssh_connection:创建新的 SSH 连接。输入:connectionId(字符串)、connectionConfig(对象,包含主机、端口、用户名以及密码或私钥路径)。返回确认消息。
  • read_ssh_connections:读取所有已配置的 SSH 连接。返回配置中的所有 SSH 连接列表。
  • update_ssh_connection:更新现有 SSH 连接。输入:connectionId(字符串)、connectionConfig(对象)。返回确认消息。
  • delete_ssh_connection:删除 SSH 连接。输入:connectionId(字符串)。返回确认消息。
  • get_current_directory:获取服务器的当前工作目录。返回当前工作目录路径。

资源

  • SSH 连接:URI 格式 ssh://{connectionId},包含连接详情(敏感信息已屏蔽),每个配置的 SSH 连接对应一个资源。例如 ssh://raspberry-pi 显示 "raspberry-pi" 连接的配置。
  • SSH 配置:URI ssh://config,包含整体 SSH 配置和所有连接(密码已屏蔽),显示 defaultTimeout、maxConcurrentSessions 等设置及连接列表。
  • 当前目录:URI cli://currentdir,包含 CLI 服务器的当前工作目录,显示命令默认执行的路径。
  • CLI 配置:URI cli://config,包含 CLI 服务器配置(不含敏感数据),显示安全设置、Shell 配置和 SSH 设置。

安全考虑

内置安全功能(始终启用)

以下安全功能硬编码在服务器中,无法禁用:

  • 大小写不敏感的命令屏蔽:所有命令屏蔽不区分大小写(例如,若 del 在 blockedCommands 中,则 "DEL.EXE"、"del.cmd" 等均被屏蔽)。
  • 智能路径解析:服务器解析完整命令路径以防止绕过尝试(若 rm 被屏蔽,则 "C:\Windows\System32\rm.exe" 也被屏蔽)。
  • 命令解析智能:避免误报(例如,warm_dir 不会仅因 rm 在 blockedCommands 中而被屏蔽)。
  • 输入验证:所有用户输入在执行前均经过验证。
  • Shell 进程管理:进程在执行后或超时后正确终止。
  • 敏感数据屏蔽:资源中的密码自动屏蔽(替换为 ********)。

可配置安全功能(默认启用)

以下安全功能可通过 config.json 配置:

  • 命令屏蔽:blockedCommands 数组中指定的命令被屏蔽(默认包含 rm、del、format 等危险命令)。
  • 参数屏蔽:blockedArguments 数组中指定的参数被屏蔽(默认包含潜在危险标志)。
  • 命令注入保护:防止命令链式调用(默认通过 enableInjectionProtection: true 启用)。
  • 工作目录限制:将命令执行限制在指定目录内(默认通过 restrictWorkingDirectory: true 启用)。
  • 命令长度限制:限制最大命令长度(默认:2000 字符)。
  • 命令超时:终止运行时间过长的命令(默认:30 秒)。
  • 命令日志:记录命令历史(默认通过 logCommands: true 启用)。

重要安全警告

  • 环境访问:命令可能访问环境变量,其中可能包含敏感信息。
  • 文件系统访问:命令可在允许路径内读写文件——请仔细配置 allowedPaths 以防止访问敏感数据。

适用场景

  • 需要通过 MCP 客户端(如 Claude Desktop)在 Windows 上执行受控命令行操作的场景。
  • 需要管理多个 SSH 连接并在远程系统上执行命令的场景。
  • 对命令执行有安全审计和限制需求的场景。

限制

  • 项目已弃用,不再维护,官方建议改用 DesktopCommanderMCP。
  • 仅支持 Windows 系统。
  • 服务器仅允许在配置的目录内、使用允许的命令、在配置的 SSH 连接上执行操作。
  • 默认配置为限制性安全配置,可能限制部分操作。

许可证

本项目采用 MIT 许可证。