A comprehensive Model Context Protocol (MCP) server that enables Claude and other LLM applications to execute PowerShell commands, scripts, and perform system operations on Windows systems.
π Key Features
- π§ PowerShell Execution: Execute commands, run scripts, and create new PowerShell files
- π₯οΈ System Monitoring: Get system info, monitor processes, check services and disk space
- π File Operations: List directories, get file info, and search files with pattern matching
- βοΈ Simple Setup: One-command installation with automatic Claude Desktop configuration
- π‘οΈ Secure: Safe execution with proper error handling and session management
π οΈ Available Tools
PowerShell Tools
execute-powershell- Execute PowerShell commands with optional working directoryexecute-powershell-script- Run PowerShell script files with parameterscreate-powershell-script- Create new PowerShell scripts
System Tools
get-system-info- Comprehensive Windows system informationget-process-list- Running processes with CPU/memory usage (sortable/filterable)get-service-status- Windows services status with filteringcheck-disk-space- Disk space usage for all or specific drives
File Tools
list-directory- Enhanced directory listing with filteringget-file-info- Detailed file and directory metadatasearch-files- Recursive file search with pattern matching
π Prerequisites
- Windows 10/11 or Windows Server 2016+
- Node.js 18.0.0 or higher
- PowerShell 5.1+ or PowerShell Core 7+
- Claude Desktop application
π Quick Setup
Option 1: Safe Automated Setup (Recommended)
# Clone and setup with configuration management
git clone https://github.com/gunjanjp/powershell-mcp.git
cd powershell-mcp
complete-setup.bat
Option 2: Configuration Recovery (If you had existing settings)
# If previous setup overwrote your existing configuration
node recovery.js status # Check current state
node recovery.js scan # Find backup configurations
node recovery.js restore 1 # Restore from backup
# OR
node recovery.js merge 1 # Merge backup with current config
Option 3: Manual Setup
# Clone the repository
git clone https://github.com/gunjanjp/powershell-mcp.git
cd powershell-mcp
# Install dependencies
npm install
# Safely add to existing configuration
node recovery.js add-powershell
# Restart Claude Desktop
π Usage Examples
Ask Claude:
- "Execute PowerShell: Get-Date"
- "Check my system information"
- "Show me the top 10 processes by CPU usage"
- "What's my disk space usage?"
- "List files in my Downloads folder"
- "Search for all .txt files in C:\Users"
- "Create a PowerShell script to backup my Documents folder"
π§ Commands
Server Commands
# Start the server
npm start
# Test components
npm test
# Run diagnostics
node diagnose.bat
# Start server directly
node src/server.js
Configuration Management
# Check configuration status
node recovery.js status
# Find backup configurations
node recovery.js scan
# Safely add PowerShell server
node recovery.js add-powershell
# Restore from backup
node recovery.js restore <number>
# Merge configurations
node recovery.js merge <number>
# Show backup contents
node recovery.js show <number>
Quick Setup Commands
# Complete setup with safety checks
complete-setup.bat
# Test server only
run-test.bat
π Project Structure
powershell-mcp/
βββ src/
β βββ server.js # Main MCP server (with stderr logging fix)
β βββ tools/ # Tool implementations
β β βββ powershell-tools.js
β β βββ system-tools.js
β β βββ file-tools.js
β βββ utils/ # Utility modules
β βββ system-utils.js
βββ examples/ # Example PowerShell scripts
βββ scripts/ # Setup utilities
βββ test/ # Test files
βββ claude_desktop_config.json # Claude Desktop configuration
βββ setup.bat # Automated setup script
βββ diagnose.bat # Diagnostic tool
βββ test-server.js # Component testing
βββ README.md
βοΈ Claude Desktop Configuration
The server uses this configuration (automatically applied by setup):
{
"mcpServers": {
"powershell": {
"command": "node",
"args": ["D:/claude/claude-powershell-mcp/src/server.js"],
"env": {}
}
}
}
Config location: %APPDATA%\Claude\claude_desktop_config.json
π‘οΈ Security Features
- Safe Execution: Uses
-ExecutionPolicy Bypassand-NoProfilefor security - Input Validation: All inputs validated with Zod schemas
- Session Management: PowerShell sessions properly disposed after use
- Error Handling: Comprehensive error handling prevents system issues
- Logging: All operations logged to stderr (not interfering with JSON-RPC)
π Troubleshooting
Server won't start
# Check Node.js version (need 18+)
node --version
# Check dependencies
npm install
# Test components
node test-server.js
Claude Desktop integration issues
# Run setup again
setup.bat
# Check configuration
type "%APPDATA%\Claude\claude_desktop_config.json"
# Restart Claude Desktop completely
PowerShell execution issues
# Test PowerShell
powershell -Command "Get-Date"
# Check execution policy
Get-ExecutionPolicy
# Run diagnostics
node diagnose.bat
π Recent Updates (v1.1.2)
Configuration Management Improvements
- β Safe Configuration Management - No more overwriting existing configs
- β Automatic Backups - Creates backups before any configuration changes
- β Configuration Recovery - Tools to find and restore previous configurations
- β Merge Capability - Intelligent merging of multiple MCP server configs
- β Interactive Recovery - Step-by-step configuration recovery process
Previous Fixes (v1.1.1)
- β Fixed Claude Desktop JSON parsing error - Changed console.log to console.error (stderr)
- β Cleaned up project structure - Removed redundant server files
- β Simplified setup - One script setup process
- β Proper error handling - Enhanced logging and error management
π€ Contributing
- Fork the repository
- Create feature branch:
git checkout -b feature-name - Make changes and test:
npm test - Commit:
git commit -am 'Add feature' - Push:
git push origin feature-name - Submit pull request
π License
MIT License - see LICENSE file for details.
π Links
Made with β€οΈ for the Claude and PowerShell communities
β οΈ Important: This tool provides direct access to PowerShell commands. Use responsibly and be aware of security implications.