这是一个用于在多个平台(Windows、macOS、Linux)上执行 shell 命令的 MCP(模型上下文协议)服务器。该服务器提供了一种安全的方式来执行 shell 命令,并内置了白名单和审批机制。
🎉 现在可以作为 Claude Desktop 扩展使用! 使用
.dxt包一键安装 - 不需要开发者工具或配置。
Claude Desktop 的一键安装:
下载 super-shell-mcp.dxt 文件从 最新发布
快速安装: 在打开 Claude Desktop 的情况下双击 .dxt 文件
或者
手动安装:
super-shell-mcp.dxt 文件配置 (可选): 如需自定义 shell 路径,请进行设置
开始使用 - 扩展立即可用!
✅ DXT 安装的好处:
要通过 Smithery 自动安装 Super Shell MCP 服务器:
npx -y @smithery/cli install @cfdude/super-shell-mcp --client claude
# 克隆仓库
git clone https://github.com/cfdude/super-shell-mcp.git
cd super-shell-mcp
# 安装依赖
npm install
# 构建项目
npm run build
如果你使用的是 .dxt 扩展 (方案 1),你已经准备好使用了! 不需要额外配置。扩展会自动处理一切:
如果你是手动安装 (方案 2 或 3),你需要配置 Claude Desktop 或你的 MCP 客户端:
npm start
或者直接:
node build/index.js
对于手动安装,Roo Code 和 Claude Desktop 使用类似的 MCP 服务器配置格式:
最简单的方法是使用 NPX,它会自动从 npm 安装并运行包,而不需要手动设置。该包可以在 https://www.npmjs.com/package/super-shell-mcp 上找到。
"super-shell": {
"command": "npx",
"args": [
"-y",
"super-shell-mcp"
],
"alwaysAllow": [],
"disabled": false
}
"super-shell": {
"command": "npx",
"args": [
"-y",
"super-shell-mcp"
],
"alwaysAllow": false,
"disabled": false
}
如果你更喜欢使用本地安装,将以下内容添加到你的 Roo Code MCP 设置配置文件中(位于 ~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json):
"super-shell": {
"command": "node",
"args": [
"/path/to/super-shell-mcp/build/index.js"
],
"alwaysAllow": [],
"disabled": false
}
你可以选择提供一个受信任的 shell 并通过设置环境变量而不是命令行标志来启用 shell 解析:
"super-shell": {
"command": "node",
"args": [
"/path/to/super-shell-mcp/build/index.js"
],
"env": {
"CUSTOM_SHELL": "/usr/bin/bash",
"SUPER_SHELL_USE_SHELL": "true"
},
"alwaysAllow": [],
"disabled": false
}
Windows 11 示例:
"super-shell": {
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": [
"C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npx-cli.js",
"-y",
"super-shell-mcp",
"C:\\Users\\username"
],
"env": {
"CUSTOM_SHELL": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"SUPER_SHELL_USE_SHELL": "true"
},
"alwaysAllow": [],
"disabled": false
}
将以下内容添加到你的 Claude Desktop 配置文件中(位于 ~/Library/Application Support/Claude/claude_desktop_config.json):
"super-shell": {
"command": "node",
"args": [
"/path/to/super-shell-mcp/build/index.js"
],
"alwaysAllow": false,
"disabled": false
}
对于 Windows 用户,配置文件通常位于 %APPDATA%\Claude\claude_desktop_config.json。
%APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json%APPDATA%\Claude\claude_desktop_config.jsonC:\\Windows\\System32\\cmd.exeC:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exeC:\\Program Files\\PowerShell\\7\\pwsh.exe~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json~/Library/Application Support/Claude/claude_desktop_config.json/bin/zsh/bin/bash/bin/sh~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json~/.config/Claude/claude_desktop_config.json/bin/bash/bin/sh/usr/bin/zsh默认禁用 shell 解析以确保安全。可以通过以下环境变量自定义行为:
SUPER_SHELL_USE_SHELL: 设置为 true (或 1/yes/on) 以启用 shell 解析,适用于可信的工作流。忽略或设置为 false 以保持更安全的默认设置。CUSTOM_SHELL: 可选的 shell 可执行文件路径,当启用 shell 解析时使用。SUPER_SHELL_COMMAND_TIMEOUT: 可选的超时值(毫秒),覆盖默认的 30 秒命令超时。⚠️ 启用 shell 解析会重新引入命令注入的风险。仅在完全信任命令来源和负载时才启用它。
替换 /path/to/super-shell-mcp 为实际克隆仓库的位置。
注意:
- 对于 Roo Code: 为了安全原因,建议将
alwaysAllow设置为空数组[],这样会在执行任何命令之前提示批准。如果你想允许特定命令而不提示,可以将它们的名字添加到数组中,例如:"alwaysAllow": ["execute_command", "get_whitelist"]。- 对于 Claude Desktop: 为了安全原因,建议将
alwaysAllow设置为false。Claude Desktop 使用布尔值而不是数组,其中false表示所有命令都需要批准,true表示所有命令都可以在不提示的情况下执行。重要:
alwaysAllow参数由 MCP 客户端 (Roo Code 或 Claude Desktop) 处理,而不是由超级 shell MCP 服务器本身处理。客户端会在发送请求给服务器之前处理审批过程,因此服务器可以正确地处理这两种格式。
服务器暴露了以下 MCP 工具:
get_platform_info获取当前平台和 shell 的信息。
{}
execute_command在当前平台上执行 shell 命令。
{
"command": "ls",
"args": ["-la"]
}
get_whitelist获取白名单命令列表。
{}
add_to_whitelist将命令添加到白名单。
{
"command": "python3",
"securityLevel": "safe",
"description": "运行 Python 3 脚本"
}
update_security_level更新白名单命令的安全级别。
{
"command": "python3",
"securityLevel": "requires_approval"
}
remove_from_whitelist从白名单中移除命令。
{
"command": "python3"
}
get_pending_commands获取待批准的命令列表。
{}
approve_command批准待批准的命令。
{
"commandId": "command-uuid-here"
}
deny_command拒绝待批准的命令。
{
"commandId": "command-uuid-here",
"reason": "此命令可能具有危险性"
}
服务器包括根据检测到的平台自动选择的平台特定命令白名单。
echo - 将文本打印到标准输出ls - 列出目录内容pwd - 打印工作目录echo - 将文本打印到标准输出cat - 连接并打印文件grep - 在文件中搜索模式find - 在目录层次结构中查找文件cd - 更改目录head - 输出文件的开头部分tail - 输出文件的结尾部分wc - 打印换行符、单词和字节计数dir - 列出目录内容type - 显示文本文件的内容findstr - 在文件中搜索字符串where - 查找程序whoami - 显示当前用户hostname - 显示计算机名称ver - 显示操作系统版本copy - 复制文件move - 移动文件mkdir - 创建目录rmdir - 删除目录rename - 重命名文件attrib - 更改文件属性mv - 移动 (重命名) 文件cp - 复制文件和目录mkdir - 创建目录touch - 更改文件时间戳或创建空文件chmod - 更改文件模式位chown- 更改文件所有者和组del - 删除文件erase - 删除文件format - 格式化磁盘runas - 以其他用户身份执行程序rm - 删除文件或目录sudo - 以其他用户身份执行命令execFile 而不是 exec 来防止 shell 注入你可以通过使用 add_to_whitelist 工具来扩展白名单。例如:
{
"command": "npm",
"securityLevel": "requires_approval",
"description": "Node.js 包管理器"
}
Super Shell MCP 是一个 npm 包,可在 https://www.npmjs.com/package/super-shell-mcp 获取。
使用 NPX 方法(如配置部分所示)提供了几个优点:
如果你希望直接从 GitHub 使用最新开发版本:
"super-shell": {
"command": "npx",
"args": [
"-y",
"github:cfdude/super-shell-mcp"
],
"alwaysAllow": [], // 对于 Roo Code
"disabled": false
}
如果你想将自己修改过的版本发布到 npm:
"bin": {
"super-shell-mcp": "./build/index.js"
}
npm publish
为了实现与使用 NPX 的 MCP 客户端的最佳集成,该项目遵循以下最佳实践:
#!/usr/bin/env node) 并在构建时设置为可执行。"type": "module" - 确保使用 ES 模块"bin" 字段 - 将命令名称映射到入口点"files" 字段 - 指定发布时包含的文件"prepare" 脚本 - 确保安装时发生编译"module": "NodeNext" - 正确支持 ES 模块"moduleResolution": "NodeNext" - 与 ES 模块一致npx -y 自动安装和运行包# 更新 package.json 中的版本
npm version patch # 或 minor/major 适当
# 构建并发布
npm publish
这些做法确保 MCP 服务器可以由 MCP 客户端自动启动,而不需要单独的终端窗口,从而提高用户体验和操作效率。
Set-ExecutionPolicy RemoteSigned 或