
Shell MCP Server
โ 21from blazickjp
Executes secure shell commands with configurable directory, shell, and timeout validation.
๐ฅ๏ธ Shell MCP Server
<a href="https://glama.ai/mcp/servers/@blazickjp/shell-mcp-server"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@blazickjp/shell-mcp-server/badge" alt="Shell Server MCP server" /> </a>๐ Add secure shell command execution capabilities to your AI applications with the Shell MCP Server! Built for the Model Context Protocol.
โจ Features
- ๐ Secure Execution - Commands run only in specified directories
- ๐ Multiple Shells - Support for bash, sh, cmd, powershell
- โฑ๏ธ Timeout Control - Automatic termination of long-running commands
- ๐ Cross-Platform - Works on both Unix and Windows systems
- ๐ก๏ธ Safe by Default - Built-in directory and shell validation
๐ก๏ธ Security Features
- ๐ Directory Isolation: Commands can only execute in specified directories
- ๐ Shell Control: Only configured shells are allowed
- โฐ Timeout Protection: All commands have a configurable timeout
- ๐ Path Validation: Working directory validation prevents traversal attacks
- ๐ค Permission Isolation: Commands run with the same permissions as the server process
๐ ๏ธ Development
Set up your development environment:
# Create and activate virtual environment
uv venv
source .venv/bin/activate
# Install development dependencies
uv pip install -e ".[test]"
# Run tests
python -m pytest
# Run tests with coverage
python -m pytest --cov=shell_mcp_server๐ค Contributing
Contributions are welcome! Feel free to:
- ๐ Report bugs
- ๐ก Suggest features
- ๐ง Submit pull requests
- ๐ Improve documentation
๐ License
MIT License - see LICENSE for details.
<div align="center">
๐ Enhance Your AI with Secure Shell Access! ๐
Built for the Model Context Protocol | Made with โค๏ธ by the MCP Community
<details> <summary>๐ Star us on GitHub!</summary> <br> If you find this tool useful, consider giving it a star! It helps others discover the project. </details> </div># Using pip
pip install shell-mcp-server
# Using uv (recommended)
uv pip install shell-mcp-server๐ Quick Start
Installation
# Using pip
pip install shell-mcp-server
# Using uv (recommended)
uv pip install shell-mcp-server๐ Claude Desktop Integration
Add this to your Claude Desktop config to enable shell command execution:
<details> <summary>๐ Click to view configuration</summary>{
"mcpServers": {
"shell-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/shell-mcp-server",
"run",
"shell-mcp-server",
"/path/to/allowed/dir1",
"/path/to/allowed/dir2",
"--shell", "bash", "/bin/bash",
"--shell", "zsh", "/bin/zsh"
]
}
}
}๐ฎ Usage Examples
Basic File Operations
# List directory contents
result = execute_command(
command="ls -la",
shell="bash",
cwd="/path/to/project"
)
# Find files by pattern
result = execute_command(
command="find . -name '*.py'",
shell="bash",
cwd="/path/to/project"
)Project Management
# Git operations
result = execute_command(
command="git status && git diff",
shell="bash",
cwd="/path/to/repo"
)
# Package management
result = execute_command(
command="pip list --outdated",
shell="bash",
cwd="/path/to/python/project"
)System Information
# Resource usage
result = execute_command(
command="df -h && free -h",
shell="bash",
cwd="/path/to/dir"
)
# Process monitoring
result = execute_command(
command="ps aux | grep python",
shell="bash",
cwd="/path/to/dir"
)File Processing
# Search file content
result = execute_command(
command="grep -r 'TODO' .",
shell="bash",
cwd="/path/to/project"
)
# File manipulation
result = execute_command(
command="awk '{print $1}' data.csv | sort | uniq -c",
shell="bash",
cwd="/path/to/data"
)Windows-Specific Examples
# List processes
result = execute_command(
command="Get-Process | Where-Object {$_.CPU -gt 10}",
shell="powershell",
cwd="C:\\path\\to\\dir"
)
# System information
result = execute_command(
command="systeminfo | findstr /B /C:'OS'",
shell="cmd",
cwd="C:\\path\\to\\dir"
)โ๏ธ Configuration
Configure behavior with command-line arguments:
| Argument | Description |
|---|---|
directories | ๐ List of allowed directories |
--shell name path | ๐ Shell specifications (name and path) |
Environment variables:
COMMAND_TIMEOUT: โฑ๏ธ Max execution time in seconds (default: 30)
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
Licensed under Apache-2.0โ you can use, modify, and redistribute it under that license's terms.