
Super Shell Mcp
超级外壳 MCP
Super Shell MCP 服务器
一个用于跨平台(Windows、macOS、Linux)执行Shell命令的MCP(模型上下文协议)服务器。该服务器提供了一种安全的方式来执行Shell命令,具有内置的白名单和审批机制。
功能特性
- 通过MCP在Windows、macOS和Linux上执行Shell命令
- 自动平台检测和Shell选择
- 支持多种Shell:
- Windows: cmd.exe、PowerShell
- macOS: zsh、bash、sh
- Linux: bash、sh、zsh
- 具有安全等级的命令白名单:
- 安全:无需批准即可执行的命令
- 需要批准:执行前需要显式批准的命令
- 禁止:明确阻止的命令
- 平台特定的命令白名单
- 非阻塞的潜在危险命令审批流程
- 基于文件的全面日志系统
- 全面的命令管理工具
- 用于诊断的平台信息工具
安装
通过Smithery安装
通过Smithery为Claude Desktop自动安装Super Shell MCP服务器:
bash
npx -y @smithery/cli install @cfdude/super-shell-mcp --client claude
手动安装
bash
# 克隆仓库
git clone https://github.com/cfdude/super-shell-mcp.git
cd super-shell-mcp
# 安装依赖
npm install
# 构建项目
npm run build
使用方法
启动服务器
bash
npm start
或直接运行:
bash
node build/index.js
在Roo Code和Claude Desktop中配置
Roo Code和Claude Desktop都使用类似的MCP服务器配置格式。以下是设置Super Shell MCP服务器的方法:
选项1:使用NPX(推荐)
使用Super Shell MCP的最简单方法是使用NPX,它会自动从npm安装并运行包,无需手动设置。该包可在NPM上找到:https://www.npmjs.com/package/super-shell-mcp。
使用NPX的Roo Code配置
json
"super-shell": {
"command": "npx",
"args": [
"-y",
"super-shell-mcp"
],
"alwaysAllow": [],
"disabled": false
}
使用NPX的Claude Desktop配置
json
"super-shell": {
"command": "npx",
"args": [
"-y",
"super-shell-mcp"
],
"alwaysAllow": false,
"disabled": false
}
选项2:使用本地安装
如果希望使用本地安装,请将以下内容添加到Roo Code MCP设置配置文件中(位于~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
):
json
"super-shell": {
"command": "node",
"args": [
"/path/to/super-shell-mcp/build/index.js"
],
"alwaysAllow": [],
"disabled": false
}
您可以选择性地通过添加shell参数指定自定义Shell:
json
"super-shell": {
"command": "node",
"args": [
"/path/to/super-shell-mcp/build/index.js",
"--shell=/usr/bin/bash"
],
"alwaysAllow": [],
"disabled": false
}
Windows 11示例
json
"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"
],
"alwaysAllow": [],
"disabled": false
}
Claude Desktop配置
将以下内容添加到Claude Desktop配置文件中(位于~/Library/Application Support/Claude/claude_desktop_config.json
):
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
。
平台特定配置
Windows
- 默认Shell:cmd.exe(如果可用则使用PowerShell)
- 配置路径:
- Roo Code:
%APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json
- Claude Desktop:
%APPDATA%\Claude\claude_desktop_config.json
- Roo Code:
- Shell路径示例:
- cmd.exe:
C:\\Windows\\System32\\cmd.exe
- PowerShell:
C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe
- PowerShell Core:
C:\\Program Files\\PowerShell\\7\\pwsh.exe
- cmd.exe:
macOS
- 默认Shell:/bin/zsh
- 配置路径:
- Roo Code:
~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
- Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json
- Roo Code:
- Shell路径示例:
- zsh:
/bin/zsh
- bash:
/bin/bash
- sh:
/bin/sh
- zsh:
Linux
- 默认Shell:/bin/bash(或$SHELL环境变量)
- 配置路径:
- Roo Code:
~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
- Claude Desktop:
~/.config/Claude/claude_desktop_config.json
- Roo Code:
- Shell路径示例:
- bash:
/bin/bash
- sh:
/bin/sh
- zsh:
/usr/bin/zsh
- bash:
您可以选择性地指定自定义Shell:
json
"super-shell": {
"command": "node",
"args": [
"/path/to/super-shell-mcp/build/index.js",
"--shell=C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
],
"alwaysAllow": false,
"disabled": false
}
将/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)处理,而不是由Super Shell MCP服务器本身处理。服务器可以与任一格式正常工作,因为客户端在将请求发送到服务器之前处理批准流程。
可用工具
服务器公开了以下MCP工具:
get_platform_info
获取有关当前平台和Shell的信息。
json
{}
execute_command
在当前平台上执行Shell命令。
json
{
"command": "ls",
"args": ["-la"]
}
get_whitelist
获取白名单中的命令列表。
json
{}
add_to_whitelist
将命令添加到白名单。
json
{
"command": "python3",
"securityLevel": "safe",
"description": "运行Python 3脚本"
}
update_security_level
更新白名单中命令的安全级别。
json
{
"command": "python3",
"securityLevel": "requires_approval"
}
remove_from_whitelist
从白名单中移除命令。
json
{
"command": "python3"
}
get_pending_commands
获取待批准命令的列表。
json
{}
approve_command
批准待处理的命令。
json
{
"commandId": "command-uuid-here"
}
deny_command
拒绝待处理的命令。
json
{
"commandId": "command-uuid-here",
"reason": "此命令可能存在危险"
}
默认白名单命令
服务器包含基于检测到的平台自动选择的平台特定命令白名单。
通用安全命令(所有平台)
echo
- 将文本打印到标准输出
Unix类安全命令(macOS/Linux)
ls
- 列出目录内容pwd
- 打印工作目录echo
- 将文本打印到标准输出cat
- 连接并打印文件grep
- 在文件中搜索模式find
- 在目录层次结构中查找文件cd
- 更改目录head
- 输出文件的第一部分tail
- 输出文件的最后部分wc
- 打印换行符、单词和字节计数
Windows特定安全命令
dir
- 列出目录内容type
- 显示文本文件内容findstr
- 在文件中搜索字符串where
- 定位程序whoami
- 显示当前用户hostname
- 显示计算机名称ver
- 显示操作系统版本
需要批准的命令
Windows需要批准的命令
copy
- 复制文件move
- 移动文件mkdir
- 创建目录rmdir
- 移除目录rename
- 重命名文件attrib
- 更改文件属性
Unix需要批准的命令
mv
- 移动(重命名)文件cp
- 复制文件和目录mkdir
- 创建目录touch
- 更改文件时间戳或创建空文件chmod
- 更改文件模式位chown
- 更改文件所有者和组
禁止的命令
Windows禁止的命令
del
- 删除文件erase
- 删除文件format
- 格式化磁盘runas
- 以其他用户身份执行程序
Unix禁止的命令
rm
- 删除文件或目录sudo
- 以其他用户身份执行命令
安全考虑
- 所有命令都以运行MCP服务器的用户权限执行
- 需要批准的命令会保留在队列中,直到明确批准
- 禁止的命令永远不会执行
- 服务器使用Node.js的
execFile
而不是exec
来防止Shell注入 - 当指定时,参数会根据允许的模式进行验证
扩展白名单
您可以使用add_to_whitelist
工具扩展白名单。例如:
json
{
"command": "npm",
"securityLevel": "requires_approval",
"description": "Node.js包管理器"
}
NPM包信息
Super Shell MCP作为npm包可在https://www.npmjs.com/package/super-shell-mcp获取。
使用NPX的好处
使用NPX方法(如配置部分选项1所示)具有以下几个优势:
- 无需手动设置:无需克隆仓库、安装依赖或构建项目
- 自动更新:始终使用最新发布的版本
- 跨平台兼容性:在Windows、macOS和Linux上以相同方式工作
- 简化配置:无需绝对路径的简短配置
- 减少维护:无需管理或更新本地文件
从GitHub使用
如果您希望直接使用GitHub上的最新开发版本:
json
"super-shell": {
"command": "npx",
"args": [
"-y",
"github:cfdude/super-shell-mcp"
],
"alwaysAllow": [], // 对于Roo Code
"disabled": false
}
发布您自己的版本
如果您希望发布自己的修改版本到npm:
- 使用您的详细信息更新package.json
- 确保"bin"字段配置正确:
json
"bin": { "super-shell-mcp": "./build/index.js" }
- 发布到npm:
bash
npm publish
NPX最佳实践
为了与使用NPX的MCP客户端实现最佳集成,本项目遵循以下最佳实践:
-
可执行入口点:主文件包含shebang行(
#!/usr/bin/env node
)并在构建期间设置为可执行 -
包配置:
"type": "module"
- 确保使用ES模块"bin"
字段 - 将命令名称映射到入口点"files"
字段 - 指定发布时要包含的文件"prepare"
脚本 - 确保在安装时进行编译
-
TypeScript配置:
"module": "NodeNext"
- 适当的ES模块支持"moduleResolution": "NodeNext"
- 与ES模块一致
-
自动安装和执行:
- MCP客户端配置使用
npx -y
自动安装并运行包 - 由于进程在后台运行,不会占用终端窗口
- MCP客户端配置使用
-
发布流程:
bash# 更新package.json中的版本 npm version patch # 或根据需要选择minor/major # 构建并发布 npm publish
这些实践确保MCP服务器可以由MCP客户端自动启动,而无需单独的终端窗口,从而提高用户体验和操作效率。
故障排除
跨平台问题
Windows特定问题
-
PowerShell脚本执行策略
- 问题:PowerShell可能会阻止脚本执行,并显示错误"Execution of scripts is disabled on this system"
- 解决方案:以管理员身份运行PowerShell并执行
Set-ExecutionPolicy RemoteSigned
或在配置Shell时使用-ExecutionPolicy Bypass
参数
-
路径分隔符
- 问题:Windows在路径中使用反斜杠(
\
),在JSON中需要转义 - 解决方案:在JSON配置文件中使用双反斜杠(
\\
),例如C:\\Windows\\System32\\cmd.exe
- 问题:Windows在路径中使用反斜杠(
-
命令未找到
- 问题:Windows没有Unix命令如
ls
、grep
等 - 解决方案:使用Windows等效命令(
dir
代替ls
,findstr
代替grep
)
- 问题:Windows没有Unix命令如
macOS/Linux特定问题
-
Shell权限
- 问题:执行命令时权限被拒绝
- 解决方案:使用
chmod +x /path/to/shell
确保Shell具有适当的权限
-
环境变量
- 问题:MCP服务器中无法使用环境变量
- 解决方案:在Shell的配置文件中设置环境变量(
.zshrc
、.bashrc
等)
一般故障排除
-
Shell检测问题
- 问题:服务器无法检测到正确的Shell
- 解决方案:在配置中明确指定Shell路径
-
命令执行超时
- 问题:命令执行时间过长并超时
- 解决方案:在命令服务构造函数中增加超时值
日志系统
服务器包含一个全面的日志系统,将日志写入文件以便于调试和监控:
-
日志文件位置
- 默认:服务器目录中的
logs/super-shell-mcp.log
- 日志目录自动创建并由Git跟踪(使用.gitkeep文件)
- 日志文件本身通过.gitignore排除在Git之外
- 包含有关服务器操作、命令执行和审批流程的详细信息
- 默认:服务器目录中的
-
日志级别
- INFO:一般操作信息
- DEBUG:详细的调试信息
- ERROR:错误条件和异常
-
查看日志
- 使用标准文件查看命令检查日志:
bash
# 查看完整日志 cat logs/super-shell-mcp.log # 实时跟踪日志更新 tail -f logs/super-shell-mcp.log
- 使用标准文件查看命令检查日志:
-
日志内容
- 服务器启动和配置
- 命令执行请求和结果
- 审批流程事件(待处理、已批准、已拒绝)
- 错误条件和故障排除信息
-
白名单管理
- 问题:需要将自定义命令添加到白名单
- 解决方案:使用
add_to_whitelist
工具添加特定于您环境的命令
许可证
本MCP服务器根据MIT许可证授权。这意味着您可以自由使用、修改和分发该软件,但需遵守MIT许可证的条款和条件。有关详细信息,请参阅项目存储库中的LICENSE文件。

3d Printer Server
连接 MCP 到主要的 3D 打印机 API(Orca、Bambu、OctoPrint、Klipper、Duet、Repetier、Prusa、Creality)。控制打印、监控状态,并执行高级 STL 操作,如缩放、旋转、截面编辑和底座扩展。包括切片和可视化。
Abap Adt
一个服务器,它将模型上下文协议(MCP)与SAP ABAP系统连接起来,使像Cline这样的工具能够检索ABAP源代码、表结构和其他开发工件。
Ableton Live Server
MCP 服务器实现,用于控制 Ableton Live OSC
Ableton Mcp
通过支持双向通信系统来控制Ableton Live音乐制作软件,该系统支持音轨创建、MIDI编辑、播放控制、乐器加载和库浏览,适用于音乐创作和声音设计工作流程。