Rob Shermansuper-shell-mcp
Built by Metorial, the integration platform for agentic AI.
Rob Shermansuper-shell-mcp
Server Summary
Execute shell commands
Support multiple shells (cmd.exe, PowerShell, zsh, bash)
Automatic platform detection
Command whitelisting
Detailed logging of command executions
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
.dxt
package - 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.json
C:\\Windows\\System32\\cmd.exe
C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe
C:\\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
You 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
alwaysAllow
to 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
alwaysAllow
tofalse
is recommended for security reasons. Claude Desktop uses a boolean value instead of an array, wherefalse
means all commands require approval andtrue
means all commands are allowed without prompting.Important: The
alwaysAllow
parameter 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_info
Get information about the current platform and shell.
{}
execute_command
Execute a shell command on the current platform.
{
"command": "ls",
"args": ["-la"]
}
get_whitelist
Get the list of whitelisted commands.
{}
add_to_whitelist
Add a command to the whitelist.
{
"command": "python3",
"securityLevel": "safe",
"description": "Run Python 3 scripts"
}
update_security_level
Update the security level of a whitelisted command.
{
"command": "python3",
"securityLevel": "requires_approval"
}
remove_from_whitelist
Remove a command from the whitelist.
{
"command": "python3"
}
get_pending_commands
Get the list of commands pending approval.
{}
approve_command
Approve a pending command.
{
"commandId": "command-uuid-here"
}
deny_command
Deny 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.exe
Command Not Found
ls
, grep
, etc.dir
instead of ls
, findstr
instead of grep
)Shell Permissions
chmod +x /path/to/shell
Environment 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.