WSL交互协议服务

为Windows+Claude Desktop用户提供的WSL交互协议服务,支持只读信息采集和安全命令执行功能。

  • by spences10
  • TypeScript
  • 本地部署
  • 25 星标
  • 更新于
在 GitHub 查看 spences10/mcp-wsl-exec

使用说明

mcp-wsl执行官

一种模型上下文协议(MCP)服务器 Windows+Claude桌面 用户 与Windows Linux子系统(WSL)交互。提供 只读信息收集和安全命令执行 能力。

⚠️ 重要提示:谁应该使用这个?

✅ 在以下情况下,你应该使用这个:

  • 您正在使用 Windows上的克劳德桌面
  • 您需要与WSL环境进行交互
  • 您想向Claude提供WSL上下文(系统信息、进程、, 文件等)

❌ 在以下情况下,您不需要这个:

  • 您正在使用 克劳德代码 (它具有本机bash访问权限)
  • 您使用的是Linux/macOS(请改用本机工具)
  • 您只需要Windows PowerShell/CMD(使用其他MCP服务器)

特征

📊 信息收集(只读)

  • 🖥️ 获取系统信息(操作系统、内核、主机名)
  • 📁 浏览目录内容
  • 💾 检查磁盘使用情况
  • ⚙️ 列出环境变量
  • 🔄 监控正在运行的进程

🔧 命令执行(安全)

  • 🔒 WSL环境中的安全命令执行
  • ⚡ 内置安全功能:
    • 危险指令检测
    • 命令确认系统
    • 路径遍历预防
    • 命令清理
  • 📁 工作目录支持
  • ⏱️ 命令超时功能
  • 🛡️ 防止外壳注射

配置

此服务器需要通过MCP客户端进行配置。这是 不同环境的示例:

临床配置

将此添加到您的Cline MCP设置中:

{
	"mcpServers": {
		"mcp-wsl-exec": {
			"command": "npx",
			"args": ["-y", "mcp-wsl-exec"]
		}
	}
}

Claude桌面配置

将此添加到您的Claude Desktop配置中:

{
	"mcpServers": {
		"mcp-wsl-exec": {
			"command": "npx",
			"args": ["-y", "mcp-wsl-exec"]
		}
	}
}

API

服务器提供7个MCP工具:

信息收集(只读)📊

这些工具提供有关WSL环境的上下文,而无需 变化:

get_system_info

获取系统信息(操作系统版本、内核、主机名)。

参数: 无

get_directory_info

获取目录内容和文件信息。

参数:

  • path (字符串,可选):目录路径(默认为当前路径 目录)
  • details (布尔值,可选):显示详细信息 (权限、大小等)

get_disk_usage

获取磁盘空间信息。

参数:

  • path (字符串,可选):要检查的特定路径(默认为全部 文件系统)

get_environment

获取环境变量。

参数:

  • filter (字符串,可选):用于搜索特定内容的过滤模式 变量

列表_流程

列出正在运行的进程。

参数:

  • filter (字符串,可选):按进程名称筛选

命令执行(潜在破坏性)🔧

当您需要进行更改或运行自定义命令时,请使用这些工具:

execute_命令

在WSL中执行带有安全检查和验证的命令。

参数:

  • command (string,必填):要执行的命令
  • working_dir (string,可选):命令的工作目录 执行
  • timeout (数字,可选):超时时间(毫秒)

注: 危险命令需要通过以下方式确认 confirm_command.

confirm_命令

确认执行安全标记的危险命令 检查。

参数:

  • confirmation_id (字符串,必填):从收到的确认ID execute_命令
  • confirm (boolean,必填):是否继续执行命令 执行

安全特性

危险指令检测

服务器维护一个潜在危险命令列表 执行前需要明确确认,包括:

  • 文件系统操作(rm、rmdir、mv)
  • 系统命令(关机、重启)
  • 包管理(apt、yum、dnf)
  • 文件重定向(>,>>)
  • 权限更改(chmod、chown)
  • 还有更多。..

命令验证

命令通过以下方式执行 bash -c,所以正常的shell语法如下 因为管道、引号、重定向和命令链都被保留了下来。这 服务器验证空/null字节输入,引用 内置工具,需要确认是否存在潜在危险 命令。

发展

设置

  1. 克隆仓库
  2. 安装依赖项:
pnpm install
  1. 构建项目:
pnpm build
  1. 在开发模式下运行:
pnpm dev

出版

该项目使用变更集进行版本管理。要发布,请执行以下操作:

  1. 创建变更集:
pnpm changeset
  1. 版本包:
pnpm changeset version
  1. 发布到npm:
pnpm release

贡献

欢迎投稿!请随时提交拉取请求。

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

致谢