Lilith Shell

by charles-adedotun
Verified
# Lilith Shell ⚠️ **IMPORTANT SECURITY WARNING**: This MCP server grants AI assistants unrestricted ability to execute terminal commands on your system. **Only use in controlled environments like virtual machines (VMs) or development systems you can afford to rebuild.** ## About Lilith Shell is an enhanced MCP server that empowers AI assistants to execute terminal commands on your system with improved security controls and testing. Due to the unrestricted access this provides, it's crucial to use this software responsibly and be fully aware of the security risks involved. **Note**: This server is compatible with any AI assistant that supports the Model Context Protocol (MCP). The provided configuration and setup instructions are specifically tailored for Claude Desktop, which offers comprehensive support for all MCP features. ## Features - Execute shell commands with security validation - Capture command output (stdout/stderr) - Set working directory - Handle command timeouts - Improved test coverage - Enhanced security controls - FastMCP integration ## API ### Tools - **execute_command** - Execute shell commands and return their output - **Inputs**: - `command` (string): Command to execute - `directory` (string, optional): Working directory - **Returns**: - Command exit code - Standard output - Standard error - **Features**: - 5-minute timeout - Working directory support - Error handling - Security validation ## Installation ### Prerequisites - **Claude Desktop** with an active Claude Pro/Enterprise subscription - Download from: [Claude AI](https://claude.ai/download) - **Python 3.10** or higher - **Git** - **uv** (required for package management) # Windows Installation 1. Install Prerequisites: **Option A** - Using winget (if available on your system): ```powershell winget install python git ``` **Option B** - Manual installation (recommended): - Download and install Python from [python.org](https://www.python.org) - Download and install Git from [git-scm.com](https://git-scm.com) 2. Install uv: Open Command Prompt (`cmd.exe`) as administrator and run: ```powershell powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" ``` If you encounter any issues, you may need to restart your terminal or computer for the changes to take effect. 3. Clone and set up the project: ```cmd git clone https://github.com/charles-adedotun/Lilith-Shell.git cd Lilith-Shell ``` Then create a virtual environment. Try these commands in order until one works: ```cmd python -m venv venv ``` If that doesn't work, try: ```cmd python3 -m venv venv ``` Then activate the environment: ```cmd venv\Scripts\activate ``` 4. Install dependencies: ```cmd uv pip install -e ".[dev]" ``` **Note**: If you installed Python from [python.org](https://www.python.org), you'll typically use `python`. If you installed via winget or from the Microsoft Store, you might need to use `python3`. Try both commands if one doesn't work. ### macOS Installation 1. Install Prerequisites: ```bash brew install python git uv ``` 2. Clone and set up the project: ```bash git clone https://github.com/charles-adedotun/Lilith-Shell.git cd Lilith-Shell python3 -m venv venv source venv/bin/activate ``` 3. Install dependencies: ```bash uv pip install -e ".[dev]" ``` ## Configuration ### Windows Locate the correct configuration directory - try these paths in order: 1. `%APPDATA%\Claude\` (typically `C:\Users\[YourUsername]\AppData\Roaming\Claude\`) 2. `%LOCALAPPDATA%\AnthropicClaude\` (typically `C:\Users\[YourUsername]\AppData\Local\AnthropicClaude\`) Create or edit `claude_desktop_config.json` in the correct directory: ```json { "mcpServers": { "lilith-shell": { "command": "C:/path/to/cloned/Lilith-Shell/venv/Scripts/python.exe", "args": [ "C:/path/to/cloned/Lilith-Shell/src/lilith_shell/executor.py" ], "env": { "PYTHONPATH": "C:/path/to/cloned/Lilith-Shell/src" } } } } ``` #### Important Notes for Windows: - Use forward slashes (`/`) in paths, not backslashes (`\`) - Replace `[YourUsername]` with your actual Windows username - File must be named exactly `claude_desktop_config.json` - If both possible config locations exist, try each until successful ### macOS Create or edit `~/Library/Application Support/Claude/claude_desktop_config.json`: ```json { "mcpServers": { "lilith-shell": { "command": "/path/to/cloned/Lilith-Shell/venv/bin/python", "args": [ "/path/to/cloned/Lilith-Shell/src/lilith_shell/executor.py" ], "env": { "PYTHONPATH": "/path/to/cloned/Lilith-Shell/src" } } } } ``` #### Important Notes for macOS: - Replace `[YourUsername]` with your actual username - You can use `$HOME` instead of `/Users/[YourUsername]` if preferred - File must be named exactly `claude_desktop_config.json` - The `command` path should point to the Python interpreter inside your virtual environment (`venv/bin/python`), not the system Python ### After Configuration 1. Restart Claude Desktop completely (quit/exit, not just close the window). 2. Click the 🔌 icon to verify the server appears in the "Installed MCP Servers" list. 3. If the server doesn't appear, check Claude's logs: - **Windows**: `%APPDATA%\Claude\Logs\mcp*.log` or `%LOCALAPPDATA%\AnthropicClaude\Logs\mcp*.log` - **macOS**: `~/Library/Logs/Claude/mcp*.log` ## Security Considerations This server executes commands with your user privileges. **Take these precautions:** - Use **only** in VMs or disposable development environments. - **Never** use on production systems or machines with sensitive data. - Consider implementing command restrictions if needed. - Monitor system access and activity. - Keep backups of important data. **Disclaimer**: The developers are not responsible for any damages or losses resulting from the use of this software. Use it at your own risk. ## Troubleshooting If you encounter issues: 1. **Check logs:** - **Windows**: `%APPDATA%\Claude\Logs\mcp*.log` or `%LOCALAPPDATA%\AnthropicClaude\Logs\mcp*.log` - **macOS**: `~/Library/Logs/Claude/mcp*.log` 2. **Verify installation:** - Ensure `uv` is properly installed and in your PATH. - Check that `mcp` package is installed: `pip show mcp`. - Verify Python version is 3.10 or higher. 3. **Configuration issues:** - Double-check all paths in `claude_desktop_config.json`. - Verify JSON syntax is valid. - Ensure proper path separators for your OS. - Confirm config file is in the correct location. 4. **Environment issues:** - Make sure `virtualenv` is activated if using one. - Verify `PYTHONPATH` is set correctly. - Check file permissions. 5. **Test server manually:** ```bash # First, make sure you're in the Lilith-Shell directory: cd /path/to/cloned/Lilith-Shell # For macOS: ./venv/bin/python src/lilith_shell/executor.py # For Windows: .\venv\Scripts\python.exe src\lilith_shell\executor.py # The executor will appear to hang with no output - this is normal. # It's waiting for connections from Claude Desktop. # Use Ctrl+C to stop it. ``` 6. **Connection issues:** - If you get "Could not connect to MCP server" errors, ensure you're using the virtual environment's Python interpreter in your config file. - For macOS: Use `/path/to/cloned/Lilith-Shell/venv/bin/python` - For Windows: Use `C:/path/to/cloned/Lilith-Shell/venv/Scripts/python.exe` ## Testing After setup, try these commands in Claude Desktop: ```text Can you run 'pwd' and tell me what directory we're in? ``` or ```text Can you list the files in my home directory? Which of them are larger than 200 MB? ``` ## Acknowledgments This project is a fork of [Pandoras-Shell](https://github.com/Zelaron/Pandoras-Shell) by Christian Hägg, with significant enhancements to security, testing, and functionality. The original project provided the foundation and inspiration for Lilith Shell.