UNPKG

ez-mcp

Version:

A simple Model Context Protocol (MCP) server for executing command-line tools across different shell environments (WSL, PowerShell, CMD, Bash). Easy setup for Claude Desktop, GitHub Copilot, LM Studio, and Cursor.

387 lines (301 loc) 10.3 kB
# EZ-MCP: Easy Model Context Protocol Server A simple yet powerful Model Context Protocol (MCP) server for executing command-line tools across different shell environments. Works seamlessly with Claude Desktop, GitHub Copilot, LM Studio, Cursor, and other AI tools. ## >>> Quick Start ### Installation & Setup (One Command!) ```bash # Setup for Claude Desktop npx ez-mcp setup claude # Setup for GitHub Copilot (VS Code) npx ez-mcp setup copilot # Setup for LM Studio npx ez-mcp setup lmstudio # Setup for Cursor IDE npx ez-mcp setup cursor ``` That's it! The setup automatically: - [+] Downloads and configures the MCP server - [+] Updates your AI tool's configuration - [+] Preserves existing MCP servers - [+] Works across Windows, Mac, and Linux ## [STRUCTURE] Project Structure ``` ez-mcp/ ├── src/ # TypeScript source code ├── build/ # Compiled JavaScript files ├── scripts/ # Setup scripts for manual installation │ ├── setup.bat # Windows batch script │ ├── setup.ps1 # PowerShell script │ └── setup.sh # Unix/Linux shell script ├── test/ # Test files └── package.json # NPM configuration ``` The setup scripts in the `scripts/` folder are provided for manual installation scenarios where `npx` might not be available. ## [TOOLS] Features ### [SYSTEM] **Multi-Shell Support** Execute commands in any shell environment: - **Windows**: PowerShell, CMD - **Linux/WSL**: Bash, Zsh, Sh - **WSL Integration**: Target specific distributions ### [SECURITY] **Military-Grade Security** - **25+ Dangerous Command Patterns** detected - **Absolute blocking** of destructive operations without confirmation - **Smart warnings** with clear consequences - **Audit logging** for security compliance ### [TARGET] **Windows Application Management** - Launch any Windows application safely - Command-line arguments support - Working directory configuration - Multiple launch methods ### [QUICK] **Developer-Friendly** - **One-command setup** for popular AI tools - **Cross-platform** compatibility - **Zero configuration** for basic usage - **Extensible** and maintainable ## [TOOLS] Available Tools ### 1. `execute_command` Execute any command in your preferred shell environment. ```json { "command": "ls -la", "shell": "bash", "workingDirectory": "/home/user/projects" } ``` **Parameters:** - `command` (required): The command to execute - `shell` (optional): `wsl`, `powershell`, `cmd`, `bash`, `zsh`, `sh` (default: `powershell`) - `workingDirectory` (optional): Working directory for command execution - `timeout` (optional): Command timeout in milliseconds (default: 30000) - `wslDistribution` (optional): Specific WSL distribution name - `confirmed` (optional): Set to `true` for dangerous commands (see Security section) ### 2. `list_directory` List contents of any directory across different shell environments. ```json { "path": "/home/user/projects", "shell": "wsl" } ``` ### 3. `check_path` Verify if a path exists and get detailed information. ```json { "path": "C:\\Users\\username\\Documents", "shell": "powershell" } ``` ### 4. `open_windows_app` Launch Windows applications with advanced options. ```json { "app": "notepad", "arguments": "C:\\temp\\file.txt", "workingDirectory": "C:\\temp" } ``` ## [SECURE] Security Features ### [DANGER] **Dangerous Command Protection** EZ-MCP automatically detects and blocks **25+ dangerous command patterns** to prevent accidental system damage: #### [CRITICAL] **CRITICAL COMMANDS** (Require Confirmation) - **Disk Operations**: `format`, `fdisk`, `diskpart` - **Recursive Deletion**: `rm -rf /`, `del C:\*`, `rmdir /s` - **System Control**: `shutdown`, `restart`, `reboot` - **Registry**: `reg delete`, `regedit` - **Process Control**: `taskkill /f`, `stop-process -force` - **Container Ops**: `docker system prune -f`, `kubectl delete` - **Git Destructive**: `git reset --hard`, `git clean -fd` - **Database**: `drop database`, `truncate table` #### [WARN] **Security Warning Example** ``` [DANGER] DANGEROUS COMMAND BLOCKED [DANGER] [BLOCKED] EXECUTION REFUSED FOR SAFETY [CRITICAL] DISK FORMATTING/PARTITIONING - PERMANENT DATA LOSS [WARN] POTENTIAL CONSEQUENCES: • Permanent data loss • System corruption or instability • Complete system failure [SECURITY] SECURITY REQUIREMENT: This command will ONLY execute if you explicitly set "confirmed": true ``` #### [+] **Safe Override** (Use with EXTREME caution) ```json { "command": "rm -rf /tmp/safe-to-delete", "confirmed": true } ``` ## [PACKAGE] Installation Methods ### Method 1: Quick Setup (Recommended) ```bash # No installation needed - setup automatically downloads npx ez-mcp setup claude ``` ### Method 2: Global Installation ```bash npm install -g ez-mcp ez-mcp setup claude ``` ### Method 3: Manual Setup Scripts ```bash # Clone the repository git clone https://github.com/thechandanbhagat/ez-mcp.git cd ez-mcp # Run platform-specific setup script # Windows (Command Prompt) scripts\setup.bat # Windows (PowerShell) scripts\setup.ps1 # Linux/Mac/WSL chmod +x scripts/setup.sh scripts/setup.sh ``` ### Method 4: Manual MCP Configuration ```json { "mcpServers": { "ez-mcp": { "command": "npx", "args": ["ez-mcp"] } } } ``` ## [TARGET] Use Cases ### [AI] **AI Assistant Integration** - Execute system commands through Claude, Copilot, etc. - File system operations and navigation - Development workflow automation - System monitoring and diagnostics ### [DEV] **Development Workflows** ```json // Build and test projects {"command": "npm run build && npm test", "shell": "bash"} // Git operations {"command": "git status && git log --oneline -5", "shell": "bash"} // Cross-platform development {"command": "ls -la", "shell": "wsl", "wslDistribution": "Ubuntu"} ``` ### [TOOLS] **System Administration** ```json // Check system resources {"command": "Get-Process | Sort-Object CPU -Desc | Select-Object -First 10", "shell": "powershell"} // Monitor disk space {"command": "df -h", "shell": "bash"} // Network diagnostics {"command": "ping -c 4 google.com", "shell": "bash"} ``` ### [WINDOWS] **Windows App Management** ```json // Launch applications {"app": "code", "arguments": ".", "workingDirectory": "C:\\Projects"} // Open system tools {"app": "taskmgr", "method": "start"} // Start with specific settings {"app": "notepad++", "arguments": "file.txt", "waitForExit": true} ``` ## [QUICK] Examples ### Basic Commands ```json // List files {"command": "ls -la", "shell": "bash"} // Windows directory listing {"command": "dir", "shell": "cmd"} // PowerShell processes {"command": "Get-Process", "shell": "powershell"} ``` ### Advanced Usage ```json // WSL with specific distribution { "command": "uname -a && lsb_release -a", "shell": "wsl", "wslDistribution": "Ubuntu-20.04" } // Working directory execution { "command": "npm install && npm start", "shell": "bash", "workingDirectory": "/home/user/project", "timeout": 60000 } // Windows app with arguments { "app": "C:\\Program Files\\VSCode\\Code.exe", "arguments": "--new-window .", "workingDirectory": "C:\\Projects\\MyApp" } ``` ## [TOOLS] Configuration ### Supported AI Tools | Tool | Status | Setup Command | |------|--------|---------------| | **Claude Desktop** | [+] Fully Supported | `npx ez-mcp setup claude` | | **GitHub Copilot** | [+] VS Code Integration | `npx ez-mcp setup copilot` | | **LM Studio** | [+] Local Models | `npx ez-mcp setup lmstudio` | | **Cursor IDE** | [+] AI Code Editor | `npx ez-mcp setup cursor` | | **Other MCP Clients** | [+] Manual Config | See manual setup below | ### Manual Configuration ```json { "mcpServers": { "ez-mcp": { "command": "npx", "args": ["ez-mcp"] } } } ``` ## [DEBUG] Troubleshooting ### WSL Issues ```bash # Check WSL status wsl --list --verbose # Install WSL if missing wsl --install # Update WSL distribution wsl --update ``` ### Permission Errors - **Windows**: Run terminal as Administrator for system operations - **Linux/Mac**: Use `sudo` for privileged commands (with `confirmed: true`) - **WSL**: Ensure WSL has proper permissions ### Command Timeouts - Increase `timeout` parameter for long operations - Use `&` for background processes in Unix shells - Consider `Start-Job` for PowerShell background tasks ### Common Issues | Issue | Solution | |-------|----------| | "Command not found" | Check PATH environment variable | | "Access denied" | Run with appropriate permissions | | "Shell not supported" | Use supported shell names | | "WSL not available" | Install and configure WSL | ## [STATS] Performance - **Lightweight**: ~10KB package size - **Fast**: Direct shell execution, no overhead - **Reliable**: Comprehensive error handling - **Scalable**: Handles concurrent command execution ## [CONTRIB] Contributing 1. **Fork** the repository 2. **Create** a feature branch (`git checkout -b feature/amazing-feature`) 3. **Commit** changes (`git commit -m 'Add amazing feature'`) 4. **Push** to branch (`git push origin feature/amazing-feature`) 5. **Open** a Pull Request ### Development Setup - `src/` - TypeScript source code - `build/` - Compiled JavaScript (auto-generated) - `scripts/` - Platform-specific setup scripts - `test/` - Test files for validation ## [LICENSE] License MIT License - see [LICENSE](LICENSE) file for details. ## [SUPPORT] Support - **Issues**: [GitHub Issues](https://github.com/thechandanbhagat/ez-mcp/issues) - **Documentation**: This README + inline help - **Security**: Report security issues via GitHub Security tab ## >>> What's Next? - **v1.1**: Enhanced logging and audit trails - **v1.2**: Plugin system for custom commands - **v1.3**: Web UI for command management - **v2.0**: Distributed execution and clustering --- **[STAR] Star this repo if EZ-MCP helps your AI workflow!**