返回 MCP 目录
public公开dns本地运行

Windows CLI

Windows CLI MCP Server是一个安全的命令行交互服务器,支持PowerShell、CMD和Git Bash,并提供SSH远程连接功能。

article

README

🚀 Windows命令行界面服务器配置

本项目聚焦于Windows命令行界面服务器的配置,能帮助用户灵活设置服务器各项参数,同时具备完善的安全机制,保障服务器的稳定与安全运行。

🚀 快速开始

本部分将为你介绍Windows命令行界面服务器的各项配置内容。

✨ 主要特性

  • 多维度配置:支持基础、shell、SSH等多方面的详细配置。
  • 资源管理:提供多种资源的URI访问方式,方便查看配置信息。
  • 安全防护:具备内置的安全特性和可选的安全功能,保障服务器安全。
  • 命令示例:给出常见操作的命令示例,便于用户快速上手。

📦 安装指南

文档未提及安装步骤,暂不提供。

💻 使用示例

基础用法

{
  "port": 3000,              // 服务绑定端口,默认为3000
  "host": "localhost",       // 绑定地址,设置为IP或域名,默认为localhost
  "restrictWorkingDirectory": true, // 是否限制命令执行目录,默认true
  "allowedPaths": [          // 允许的文件夹路径,默认包括当前工作目录和用户家目录
    "%current%",
    "%home%"
  ],
  "commandLengthLimit": 2000, // 命令的最大长度限制,防止超长命令注入,默认2000字符
  "logCommands": true,        // 是否记录执行的命令,默认true
  "timeout": 30000            // 命令的最长允许运行时间(毫秒),默认30秒
}

高级用法

{
  "shells": [                // 支持的shell列表,默认包括cmd和bash
    "cmd.exe",
    "/bin/bash"
  ],
  "blockedCommands": [       // 被阻止的危险命令,默认包含rm, del等
    "rm",
    "del",
    "format",
    "erase",
    " Cipher ",
    "vssadmin",
    "wbadmin",
    "regsvr32",
    "msbuild"
  ],
  "blockedArguments": [      // 被阻止的危险参数,默认包含/c,/f等
    "/c",
    "/f",
    "/q",
    "/s",
    "-rf",
    "--force",
    "--recursive"
  ],
  "enableInjectionProtection": true, // 是否启用命令注入防护,默认true
  "caseInsensitiveBlocking": true     // 是否对大小写不敏感地阻止命令,默认true
}
{
  "ssh": {
    "enabled": true,          // 是否启用SSH功能,默认true
    "maxConcurrentSessions": 5,// 最大允许的并发SSH会话数,默认5
    "defaultTimeout": 30000   // 默认命令超时时间(毫秒),默认30秒
  }
}

📚 详细文档

资源

SSH连接

  • URI格式ssh://{connectionId}
  • 说明:每个SSH连接对应一个资源,显示连接配置信息并自动屏蔽敏感数据。
  • 示例ssh://raspberry-pi 会显示名为"raspberry-pi"的连接配置。

SSH全局配置

  • URIssh://config
  • 说明:显示整个SSH服务器的配置参数,包括默认超时、最大并发连接数等,并自动屏蔽密码信息。

当前目录

  • URIcli://currentdir
  • 说明:显示当前命令行界面服务器的工作目录,默认为服务启动时的目录。

CLI全局配置

  • URIcli://config
  • 说明:展示CLI服务器的所有配置信息,包括安全性设置、shell参数和SSH配置等。

安全注意事项

建入的安全特性(无法关闭)

  1. 命令阻止大小写不敏感:所有命令阻止都是不分大小写的,例如"DEL.EXE", "del.cmd"都会被阻止如果"del"在blockedCommands中。
  2. 智能路径解析:服务器会解析完整的命令路径以防止欺骗攻击,例如"%SystemRoot%\system32\cmd.exe"会被正确识别为cmd.exe。
  3. 自动屏蔽敏感信息:在显示任何配置或日志时,密码和密钥等敏感信息都会被自动替换为占位符。
  4. 会话过期机制:闲置的SSH会话和命令历史记录会有超时限制,防止未授权访问。

可选的安全功能

  1. 双向认证:支持客户端证书验证或otp一次性密码登录方式,提升SSH连接的安全性。
  2. 日志记录与审计:所有用户操作都会被详细记录,包括命令内容、执行时间等信息,便于后续审计分析。

重要安全警告

  • 默认配置风险:使用默认端口3000和默认路径可能会增加被未授权访问的风险,请根据实际需求更改相关配置。
  • SSH弱密码策略:默认禁止使用弱密码协议(如DSA),建议在生产环境中强制启用RSA或ECDSA加密。
  • 定期更新检查:由于存在零日漏洞风险,建议定期检查并更新CLI服务器到最新版本。

命令示例

# 查询所有可用资源
curl http://localhost:3000/_resources

# 获取当前目录信息
curl http://localhost:3000/cli://currentdir

# 执行系统命令
curl -X POST --data "command=dir" http://localhost:3000/

🔧 技术细节

内置安全特性原理

  • 命令阻止大小写不敏感:在命令解析阶段,将输入的命令统一转换为小写或大写进行匹配,确保无论大小写如何,只要在阻止列表中的命令都会被拦截。
  • 智能路径解析:服务器会对输入的命令路径进行解析,通过操作系统的API或内置的路径解析规则,将完整路径转换为可识别的命令名称。
  • 自动屏蔽敏感信息:在输出配置或日志时,使用正则表达式或特定的字符串匹配方法,将密码和密钥等敏感信息替换为占位符。
  • 会话过期机制:为每个SSH会话和命令历史记录设置一个计时器,当超过预设的超时时间时,自动关闭会话或清除记录。

可选安全功能实现

  • 双向认证:通过SSL/TLS协议实现客户端证书验证,或使用OTP库实现一次性密码登录。
  • 日志记录与审计:使用日志库将用户操作信息记录到文件或数据库中,方便后续的审计分析。

📄 许可证

本项目遵循MIT许可证,允许用户自由使用、修改和分发代码,但需保留版权声明。具体许可内容请参考MIT License

⚠️ 重要提示

  • 使用默认端口3000和默认路径可能会增加被未授权访问的风险,请根据实际需求更改相关配置。
  • 默认禁止使用弱密码协议(如DSA),建议在生产环境中强制启用RSA或ECDSA加密。
  • 由于存在零日漏洞风险,建议定期检查并更新CLI服务器到最新版本。

💡 使用建议

  • 建议根据实际需求调整服务器的各项配置参数,以提高服务器的安全性和性能。
  • 在生产环境中,务必启用双向认证和日志记录与审计功能,以保障服务器的安全运行。
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端