MIT License
9
最近更新:1年前

在 WSL 中通过内置的安全功能(如路径验证、超时和错误处理)提供安全的命令执行。

mcp-wsl-exec

面向 Windows Subsystem for Linux (WSL) 环境中的命令执行的模型上下协议 (MCP) 服务器。此服务器提供安全的命令执行,并具有内置的安全功能和验证。

徽章

功能

  • 🔒 在 WSL 环境中安全执行命令
  • ⚡ 内置安全特性:
    • 危险命令检测
    • 命令确认系统
    • 防止路径遍历
    • 命令清理
  • 📁 支持工作目录
  • ⏱️ 命令超时功能
  • 🔍 详细的命令输出格式化
  • ❌ 错误处理和验证
  • 🛡️ 防止 shell 注入攻击

配置

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

Cline 配置

在您的 Cline MCP 设置中添加以下内容:

json 复制代码
{
	"mcpServers": {
		"mcp-wsl-exec": {
			"command": "npx",
			"args": ["-y", "mcp-wsl-exec"]
		}
	}
}

Claude Desktop 配置

在您的 Claude Desktop 配置中添加以下内容:

json 复制代码
{
	"mcpServers": {
		"mcp-wsl-exec": {
			"command": "npx",
			"args": ["-y", "mcp-wsl-exec"]
		}
	}
}

API

该服务器实现了两个 MCP 工具:

execute_command

在 WSL 中执行命令并进行安全性检查和验证。

参数:

  • command (字符串, 必需): 要执行的命令
  • working_dir (字符串, 可选): 命令执行的工作目录
  • timeout (数值, 可选): 超时时间(以毫秒为单位)

confirm_command

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

参数:

  • confirmation_id (字符串, 必需): 从 execute_command 接收的确认 ID
  • confirm (布尔值, 必需): 是否继续执行该命令

安全特性

危险命令检测

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

  • 文件系统操作 (rm, rmdir, mv)
  • 系统命令 (shutdown, reboot)
  • 包管理 (apt, yum, dnf)
  • 文件重定向 (>, >>)
  • 权限更改 (chmod, chown)
  • 其他更多...

命令清理

所有命令均会被清理以防止:

  • Shell 特殊字符注入
  • 路径遍历尝试
  • 主目录引用
  • 危险的命令链

开发

设置

  1. 克隆存储库
  2. 安装依赖项:
bash 复制代码
pnpm install
  1. 构建项目:
bash 复制代码
pnpm build
  1. 在开发模式下运行:
bash 复制代码
pnpm dev

发布

该项目使用 changesets 进行版本管理。要发布:

  1. 创建一个 changeset:
bash 复制代码
pnpm changeset
  1. 版本化包:
bash 复制代码
pnpm changeset version
  1. 发布到 npm:
bash 复制代码
pnpm release

贡献

欢迎贡献!请不要犹豫提交 Pull Request。

许可证

MIT 许可证 - 查看 LICENSE 文件了解更多详情。

致谢