超级终端
STDIO跨平台命令执行服务器,具备安全白名单与审批机制
跨平台命令执行服务器,具备安全白名单与审批机制
An MCP (Model Context Protocol) server for executing shell commands across multiple platforms (Windows, macOS, Linux). This server provides a secure way to execute shell commands with built-in whitelisting and approval mechanisms.
🎉 Now available as a Claude Desktop Extension! Install with one click using the
.dxtpackage - no developer tools or configuration required.
One-Click Installation for Claude Desktop:
Download the super-shell-mcp.dxt file from the latest release
Quick Install: Double-click the .dxt file while Claude Desktop is open
OR
Manual Install:
super-shell-mcp.dxt fileConfigure (optional): Set custom shell path if needed
Start using - The extension is ready to use immediately!
✅ Benefits of DXT Installation:
To install Super Shell MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @cfdude/super-shell-mcp --client claude
# Clone the repository git clone https://github.com/cfdude/super-shell-mcp.git cd super-shell-mcp # Install dependencies npm install # Build the project npm run build
If you installed using the .dxt extension (Option 1), you're ready to go! No additional configuration needed. The extension handles everything automatically:
If you installed manually (Option 2 or 3), you'll need to configure Claude Desktop or your MCP client:
npm start
Or directly:
node build/index.js
For manual installations, both Roo Code and Claude Desktop use a similar configuration format for MCP servers:
The easiest way to use Super Shell MCP is with NPX, which automatically installs and runs the package from npm without requiring manual setup. The package is available on NPM at 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 }
If you prefer to use a local installation, add the following to your Roo Code MCP settings configuration file (located at ~/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 }
You can optionally specify a custom shell by adding a shell parameter:
"super-shell": { "command": "node", "args": [ "/path/to/super-shell-mcp/build/index.js", "--shell=/usr/bin/bash" ], "alwaysAllow": [], "disabled": false }
Windows 11 example
"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 }
Add the following to your Claude Desktop configuration file (located at ~/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 }
For Windows users, the configuration file is typically located at %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/zshYou can optionally specify a custom shell:
"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 }
Replace /path/to/super-shell-mcp with the actual path where you cloned the repository.
Note:
- For Roo Code: Setting
 alwaysAllowto an empty array[]is recommended for security reasons, as it will prompt for approval before executing any commands. If you want to allow specific commands without prompting, you can add their names to the array, for example:"alwaysAllow": ["execute_command", "get_whitelist"].- For Claude Desktop: Setting
 alwaysAllowtofalseis recommended for security reasons. Claude Desktop uses a boolean value instead of an array, wherefalsemeans all commands require approval andtruemeans all commands are allowed without prompting.Important: The
alwaysAllowparameter is processed by the MCP client (Roo Code or Claude Desktop), not by the Super Shell MCP server itself. The server will work correctly with either format, as the client handles the approval process before sending requests to the server.
The server exposes the following MCP tools:
get_platform_infoGet information about the current platform and shell.
{}
execute_commandExecute a shell command on the current platform.
{ "command": "ls", "args": ["-la"] }
get_whitelistGet the list of whitelisted commands.
{}
add_to_whitelistAdd a command to the whitelist.
{ "command": "python3", "securityLevel": "safe", "description": "Run Python 3 scripts" }
update_security_levelUpdate the security level of a whitelisted command.
{ "command": "python3", "securityLevel": "requires_approval" }
remove_from_whitelistRemove a command from the whitelist.
{ "command": "python3" }
get_pending_commandsGet the list of commands pending approval.
{}
approve_commandApprove a pending command.
{ "commandId": "command-uuid-here" }
deny_commandDeny a pending command.
{ "commandId": "command-uuid-here", "reason": "This command is potentially dangerous" }
The server includes platform-specific command whitelists that are automatically selected based on the detected platform.
echo - Print text to standard outputls - List directory contentspwd - Print working directoryecho - Print text to standard outputcat - Concatenate and print filesgrep - Search for patterns in filesfind - Find files in a directory hierarchycd - Change directoryhead - Output the first part of filestail - Output the last part of fileswc - Print newline, word, and byte countsdir - List directory contentstype - Display the contents of a text filefindstr - Search for strings in fileswhere - Locate programswhoami - Display current userhostname - Display computer namever - Display operating system versioncopy - Copy filesmove - Move filesmkdir - Create directoriesrmdir - Remove directoriesrename - Rename filesattrib - Change file attributesmv - Move (rename) filescp - Copy files and directoriesmkdir - Create directoriestouch - Change file timestamps or create empty fileschmod - Change file mode bitschown - Change file owner and groupdel - Delete fileserase - Delete filesformat - Format a diskrunas - Execute a program as another userrm - Remove files or directoriessudo - Execute a command as another userexecFile instead of exec to prevent shell injectionYou can extend the whitelist by using the add_to_whitelist tool. For example:
{ "command": "npm", "securityLevel": "requires_approval", "description": "Node.js package manager" }
Super Shell MCP is available as an npm package at https://www.npmjs.com/package/super-shell-mcp.
Using the NPX method (as shown in Option 1 of the Configuration section) offers several advantages:
If you prefer to use the latest development version directly from GitHub:
"super-shell": { "command": "npx", "args": [ "-y", "github:cfdude/super-shell-mcp" ], "alwaysAllow": [], // For Roo Code "disabled": false }
If you want to publish your own modified version to npm:
"bin": { "super-shell-mcp": "./build/index.js" }
npm publish
For optimal integration with MCP clients using NPX, this project follows these best practices:
Executable Entry Point: The main file includes a shebang line (#!/usr/bin/env node) and is made executable during build.
Package Configuration:
"type": "module" - Ensures ES Modules are used"bin" field - Maps the command name to the entry point"files" field - Specifies which files to include when publishing"prepare" script - Ensures compilation happens on installTypeScript Configuration:
"module": "NodeNext" - Proper ES Modules support"moduleResolution": "NodeNext" - Consistent with ES ModulesAutomatic Installation and Execution:
npx -y to automatically install and run the packagePublishing Process:
# Update version in package.json npm version patch # or minor/major as appropriate # Build and publish npm publish
These practices ensure the MCP server can be started automatically by the MCP client without requiring a separate terminal window, improving user experience and operational efficiency.
PowerShell Script Execution Policy
Set-ExecutionPolicy RemoteSigned or use the -ExecutionPolicy Bypass parameter when configuring the shellPath Separators
\) in paths, which need to be escaped in JSON\\) in JSON configuration files, e.g., C:\\Windows\\System32\\cmd.exeCommand Not Found
ls, grep, etc.dir instead of ls, findstr instead of grep)Shell Permissions
chmod +x /path/to/shellEnvironment Variables
.zshrc, .bashrc, etc.)Shell Detection Issues
Command Execution Timeout
The server includes a comprehensive logging system that writes logs to a file for easier debugging and monitoring:
Log File Location
logs/super-shell-mcp.log in the server's directoryLog Levels
Viewing Logs
# View the entire log cat logs/super-shell-mcp.log # Follow log updates in real-time tail -f logs/super-shell-mcp.log
Log Content
Whitelist Management
add_to_whitelist tool to add commands specific to your environmentThis MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.