- Dynamic Shell Server
Dynamic Shell Server
# Dynamic Shell Command MCP Server
A Model Context Protocol (MCP) server that enables secure execution of shell commands with a dynamic approval system. This server allows running arbitrary commands while maintaining security through user approval and audit logging.
Features
- 🔐 Dynamic command approval system
- 📝 Persistent storage of approved commands
- 📊 Comprehensive audit logging
- ⏱️ Command timeout protection
- 🔄 Command revocation capability
Installation
-
Clone this repository: ```bash git clone cd dynamic-shell-server ```
-
Create a virtual environment and activate it: ```bash python -m venv venv source venv/bin/activate # On Windows use: venv\Scripts\activate ```
-
Install dependencies: ```bash pip install -r requirements.txt ```
Usage
Standalone Mode
Run the server directly:
```bash python dynamic_shell_server.py ```
Claude Desktop Integration
-
Open your Claude Desktop configuration:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
-
Add the server configuration: ```json { "mcpServers": { "shell": { "command": "/absolute/path/to/.venv/bin/python", "args": ["/absolute/path/to/dynamic_shell_server.py"] } } } ```
-
Restart Claude Desktop
Command Approval Process
When running a command for the first time, you'll be prompted with: ``` Command Approval Required
Command: Arguments: This command has not been previously approved. Do you want to:
- Allow this command once
- Allow this command and remember for future use
- Deny execution
Please choose an option (1-3): ```
Available Tools
-
`execute_command`: Execute a shell command
- Parameters:
- `command`: The command to execute
- `args`: Optional list of command arguments
- Parameters:
-
`revoke_command_approval`: Revoke approval for a previously approved command
- Parameters:
- `command`: The command to revoke approval for
- Parameters:
Available Resources
- `commands://approved`: Lists all approved commands with their approval dates
Data Storage
The server stores its data in `~/.config/mcp-shell-server/`:
- `approved_commands.json`: List of approved commands and their approval dates
- `audit.log`: Detailed execution history of all commands
Security Features
- User approval required for first-time command execution
- Persistent storage of approved commands
- Comprehensive audit logging
- 5-minute command timeout
- No shell execution (prevents injection attacks)
- Command revocation capability
Example Usage
Through Claude Desktop:
``` Human: Run 'npm install' in my project directory Assistant: I'll help you run that command. Since this is the first time running 'npm install', you'll need to approve it. [Command approval prompt appears]