Skip to main content

🖥️ Shell MCP Server

PyPI version License: MIT Python Code style: black

🚀 Add secure shell command execution capabilities to your AI applications with the Shell MCP Server! Built for the Model Context Protocol.

Shell Server MCP server

✨ 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

🚀 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:

📝 Click to view configuration
{
    "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)

🛡️ 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.


🌟 Enhance Your AI with Secure Shell Access! 🌟

Built for the Model Context Protocol | Made with ❤️ by the MCP Community

🎉 Star us on GitHub!
If you find this tool useful, consider giving it a star! It helps others discover the project.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_blazickjp_shell_mcp_server-0.1.0.tar.gz (29.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_blazickjp_shell_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_blazickjp_shell_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 29.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_blazickjp_shell_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ec4f0a06a6b759275d8014573a7f635ed067488bf2ba20ec230b7704720b52cc
MD5 46d71de1b50ec3604bf5d71aa7dfbe7a
BLAKE2b-256 36f09cb263d5ab0c3ebea4524cf684fa9c8221ec6867d1758eea3dd945770d2a

See more details on using hashes here.

File details

Details for the file iflow_mcp_blazickjp_shell_mcp_server-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_blazickjp_shell_mcp_server-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_blazickjp_shell_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c62405a0e9cb86583c229847fa0a7c832972037350f2c6e86db34cb3a498abc9
MD5 ff03dcc5c216141887538397b3d4380e
BLAKE2b-256 92ca39c74e07f0dbe6618d0245235a052a3bdd816f46dca4df3a1cdc705d8827

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page