MCP.so
Sign In
Servers

PowerShell MCP Server

@gunjanjp

PowerShell MCP Server

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 directory
  • execute-powershell-script - Run PowerShell script files with parameters
  • create-powershell-script - Create new PowerShell scripts

System Tools

  • get-system-info - Comprehensive Windows system information
  • get-process-list - Running processes with CPU/memory usage (sortable/filterable)
  • get-service-status - Windows services status with filtering
  • check-disk-space - Disk space usage for all or specific drives

File Tools

  • list-directory - Enhanced directory listing with filtering
  • get-file-info - Detailed file and directory metadata
  • search-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 Bypass and -NoProfile for 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

  1. Fork the repository
  2. Create feature branch: git checkout -b feature-name
  3. Make changes and test: npm test
  4. Commit: git commit -am 'Add feature'
  5. Push: git push origin feature-name
  6. 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.

More from Developer Tools