使用说明
项目简介
Windows CLI MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为LLM客户端提供安全可控的Windows命令行和远程系统(通过SSH)交互能力。它允许授权的LLM应用执行预设的命令、访问系统资源,并管理SSH连接,从而实现更强大的自动化和系统管理功能。该服务器强调安全性,提供了多项配置选项来限制和监控LLM客户端的操作,保护系统安全。
主要功能点
- 多Shell支持: 支持 PowerShell, Command Prompt (CMD), 和 Git Bash 三种命令行环境。
- SSH远程执行: 允许通过配置的SSH连接在远程系统上执行命令。
- 资源暴露: 将SSH连接配置、当前工作目录和服务器配置作为MCP资源暴露给客户端,方便LLM获取环境信息。
- 安全控制:
- 命令和SSH命令黑名单 (支持全路径和大小写不敏感匹配)。
- 工作目录验证,限制命令执行路径。
- 最大命令长度限制。
- 命令日志记录和历史追踪。
- 智能参数验证,阻止危险参数。
- 高度可配置:
- 自定义安全规则。
- Shell特定设置。
- SSH连接 profiles 配置。
- 路径限制和命令黑名单自定义。
安装步骤
- 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node Package Manager)。
- 安装 Server: 通过 npm 安装 '@simonb97/server-win-cli' 包。打开命令行工具并执行:
npm install -g @simonb97/server-win-cli
服务器配置
MCP客户端需要配置MCP服务器的启动命令及其参数才能连接。以下是 'claude_desktop_config.json' 的配置示例,用于配置 Claude Desktop 连接到 Windows CLI MCP Server。
{ "mcpServers": { "windows-cli": { "command": "npx", "args": ["-y", "@simonb97/server-win-cli"] } } }
参数说明:
- 'server name': 'windows-cli' (用户自定义,在客户端中用于标识该服务器)
- 'command': 'npx' (Node.js 包执行器,用于运行 npm 包)
- 'args': '["-y", "@simonb97/server-win-cli"]' (传递给 'npx' 的参数,'-y' 表示自动确认安装包,'@simonb97/server-win-cli' 是要执行的 MCP 服务器包名)
可选配置:指定配置文件
如果需要使用自定义的配置文件,可以通过 '--config' 参数指定配置文件路径。
{ "mcpServers": { "windows-cli": { "command": "npx", "args": [ "-y", "@simonb97/server-win-cli", "--config", "path/to/your/config.json" // 将 "path/to/your/config.json" 替换为你的配置文件实际路径 ] } } }
创建配置文件:
服务器会自动查找配置文件,你也可以手动创建和修改配置文件 'config.json' 以自定义服务器行为。
- 创建默认配置文件: 你可以复制 'config.json.example' 文件并重命名为 'config.json',或者使用命令快速生成默认配置文件:
npx @simonb97/server-win-cli --init-config ./config.json - 配置服务器: 编辑 'config.json' 文件,根据需要修改安全设置、Shell 配置和 SSH 连接等。配置文件中包含了详细的配置项说明。
基本使用方法
- 启动服务器: 当 MCP 客户端(如 Claude Desktop)连接配置正确后,服务器会在后台自动启动。你通常不需要手动启动服务器。
- 客户端交互: 在 MCP 客户端中,你可以使用服务器提供的 Tools 和 Resources 与 Windows 系统进行交互。例如:
- 使用 'execute_command' 工具在 PowerShell 或 CMD 中执行命令。
- 使用 'ssh_execute' 工具在配置的远程 SSH 服务器上执行命令。
- 通过 Resources 查看 SSH 连接配置和当前目录等信息。
- 安全性注意: 请务必仔细配置 'config.json' 文件中的安全设置,特别是 'blockedCommands', 'blockedArguments' 和 'allowedPaths',以确保系统安全。
信息
分类
桌面与硬件