WinRemote MCP
The ultimate Windows MCP server for remote desktop control and automation. Control any Windows machine through the Model Context Protocol — perfect for AI agents, Claude Desktop, and OpenClaw integration. Transform your Windows desktop into a powerful, remotely-accessible automation endpoint. Run on the Windows machine you want to control. Built with FastMCP and the Model Context Protocol.
README
WinRemote MCP — Run MCP Servers Remotely on Windows
The ultimate Windows MCP server for remote desktop control and automation. Control any Windows machine through the Model Context Protocol — perfect for AI agents, Claude Desktop, and OpenClaw integration. Transform your Windows desktop into a powerful, remotely-accessible automation endpoint.
Run on the Windows machine you want to control. Built with FastMCP and the Model Context Protocol.
Quickstart (30 seconds)
# Install from PyPI
pip install winremote-mcp
# Start the Windows MCP server
winremote-mcp
That's it! Your Windows MCP server is now running on http://127.0.0.1:8090 and ready to accept commands from MCP clients like Claude Desktop or OpenClaw.
What's New in v0.4.8
- ✅ Added compatibility with fastmcp 3.x internal tool registry changes
- ✅ Kept compatibility with fastmcp 2.x
- ✅ Fixed tool wrapping/filtering paths that could raise:
AttributeError: 'FastMCP' object has no attribute '_tool_manager'
What Problem It Solves
- Remote Windows Control: Control Windows desktops from anywhere through standardized MCP protocol
- AI Agent Integration: Enable Claude, GPT, and other AI agents to interact with Windows GUI applications
- Cross-Platform Automation: Bridge the gap between Linux/macOS development environments and Windows targets
- Headless Windows Management: Manage Windows servers and workstations without RDP or VNC overhead
Features
- Desktop Control — Screenshot capture (JPEG compressed, multi-monitor), click, type, scroll, keyboard shortcuts
- Window Management — Focus windows, minimize-all, launch/resize applications, multi-monitor support
- Remote Shell Access — PowerShell command execution with working directory support
- File Operations — Read, write, list, search files; binary transfer via base64 encoding
- System Administration — Windows Registry access, service management, scheduled tasks, process control
- Network Tools — Ping hosts, check TCP ports, monitor network connections
- Advanced Features — OCR text extraction, screen recording (GIF), annotated screenshots with UI element labels
- Security & Auth — Optional API key authentication, localhost-only binding by default
🤖 OpenClaw Integration
winremote-mcp works great with OpenClaw — providing full Windows desktop control as an MCP endpoint for AI agents.
Setup with OpenClaw
-
Start winremote-mcp on your Windows machine:
pip install winremote-mcp winremote-mcp --port 8090 -
Configure OpenClaw to use it — add to your
openclaw.json:{ "plugins": { "entries": { "winremote": { "type": "mcp", "url": "http://<WINDOWS_IP>:8090/mcp" } } } } -
That's it. Your AI agent can now:
- Execute PowerShell/CMD commands on Windows
- Take screenshots of the desktop
- Transfer files between Linux and Windows
- Control GUI applications
- Access Windows-specific tools and APIs
No-Auth Mode (for trusted networks)
For home lab / LAN setups where authentication isn't needed:
winremote-mcp --port 8090 --no-auth
Note: winremote-mcp is a standard MCP server — it works with any MCP-compatible client, not just OpenClaw.
Installation
From PyPI (Recommended)
pip install winremote-mcp
From Source
git clone https://github.com/dddabtc/winremote-mcp.git
cd winremote-mcp
pip install .
With Optional Dependencies
# Install with OCR support (includes pytesseract)
pip install winremote-mcp[ocr]
# Install development dependencies
pip install winremote-mcp[test]
OCR Setup (Optional)
For text extraction from screenshots:
# 1. Install Tesseract OCR engine
winget install UB-Mannheim.TesseractOCR
# 2. Install with OCR dependencies
pip install winremote-mcp[ocr]
Usage
Basic Usage
Tier and tool controls
# Default: tier1 + tier2 enabled, tier3 disabled
winremote-mcp
# Enable destructive tier3 tools
winremote-mcp --enable-tier3
# Disable interactive tier2 (tier1 only)
winremote-mcp --disable-tier2
# Both together: tier1 + tier3 (tier2 disabled)
winremote-mcp --enable-tier3 --disable-tier2
# Backward-compatible: enable everything
winremote-mcp --enable-all
# Explicit tool list (highest precedence over tier flags)
winremote-mcp --tools Snapshot,Click,Type
# Remove specific tools from resolved set
winremote-mcp --enable-tier3 --exclude-tools Shell,FileWrite
Config file (winremote.toml)
Search order:
--config /path/to/winremote.toml./winremote.toml~/.config/winremote/winremote.toml
[server]
host = "127.0.0.1"
port = 8090
auth_key = ""
[security]
ip_allowlist = ["127.0.0.1", "192.168.1.0/24"]
enable_tier3 = false
disable_tier2 = false
[tools]
enable = ["Snapshot", "Click", "Type"]
exclude = []
Precedence: CLI flags override config file values; config file values override defaults.
IP allowlist
# CLI
winremote-mcp --ip-allowlist 127.0.0.1,192.168.1.0/24
# Or via config [security].ip_allowlist
Supports both single IPs and CIDR ranges (IPv4/IPv6). Non-allowlisted clients receive HTTP 403 with a clear error.
Health check
# Start MCP server (localhost only, no auth)
winremote-mcp
# Start with remote access and authentication
winremote-mcp --host 0.0.0.0 --port 8090 --auth-key "your-secret-key"
# Enable all tools including high-risk Tier 3 (Shell, FileWrite, etc.)
winremote-mcp --enable-all
# Start with hot reload for development
winremote-mcp --reload
MCP Client Configuration
For Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"winremote": {
"command": "winremote-mcp",
"args": ["--transport", "stdio"]
}
}
}
For OpenClaw or other HTTP MCP clients:
{
"mcpServers": {
"winremote": {
"type": "streamable-http",
"url": "http://192.168.1.100:8090/mcp",
"headers": {
"Authorization": "Bearer your-secret-key"
}
}
}
}
Auto-Start on Boot
# Create Windows scheduled task
winremote-mcp install
# Remove scheduled task
winremote-mcp uninstall
Security
Tools are organized into three risk tiers. By default, only Tier 1-2 tools are enabled.
| Tier | Risk | Default | Examples |
|---|---|---|---|
| Tier 1 | Read-only | ✅ Enabled | Snapshot, GetSystemInfo, ListProcesses |
| Tier 2 | Interactive | ✅ Enabled | Click, Type, Shortcut, App |
| Tier 3 | Destructive | ❌ Disabled | Shell, FileWrite, KillProcess, RegWrite |
# Enable all tiers (use with caution)
winremote-mcp --enable-all
# Always use auth for remote access
winremote-mcp --host 0.0.0.0 --auth-key "your-secret-key"
See SECURITY.md for the full security guide.
Tools
| Tool | Description |
|---|---|
| Desktop | |
| Snapshot | Screenshot (JPEG, configurable quality/max_width) + window list + UI elements |
| AnnotatedSnapshot | Screenshot with numbered labels on interactive elements |
| OCR | Extract text from screen via OCR (pytesseract or Windows built-in) |
| ScreenRecord | Record screen activity as animated GIF |
| Input | |
| Click | Mouse click (left/right/middle, single/double/hover) |
| Type | Type text at coordinates |
| Scroll | Vertical/horizontal scroll |
| Move | Move mouse / drag |
| Shortcut | Keyboard shortcuts |
| Wait | Pause execution |
| Window Management | |
| FocusWindow | Bring window to front (fuzzy title match) |
| MinimizeAll | Show desktop (Win+D) |
| App | Launch/switch/resize applications |
| System | |
| Shell | Execute PowerShell commands (with optional cwd) |
| GetClipboard | Read clipboard |
| SetClipboard | Write clipboard |
| ListProcesses | Process list with CPU/memory |
| KillProcess | Kill process by PID or name |
| GetSystemInfo | System information |
| Notification | Windows toast notification |
| LockScreen | Lock workstation |
| ReconnectSession | Reconnect disconnected Windows desktop session to console |
| File System | |
| FileRead | Read file content |
| FileWrite | Write file content |
| FileList | List directory contents |
| FileSearch | Search files by pattern |
| FileDownload | Download file as base64 (binary) |
| FileUpload | Upload file from base64 (binary) |
| Registry & Services | |
| RegRead | Read Windows Registry value |
| RegWrite | Write Windows Registry value |
| ServiceList | List Windows services |
| ServiceStart | Start a Windows service |
| ServiceStop | Stop a Windows service |
| Scheduled Tasks | |
| TaskList | List scheduled tasks |
| TaskCreate | Create a scheduled task |
| TaskDelete | Delete a scheduled task |
| Network | |
| Scrape | Fetch URL content |
| Ping | Ping a host |
| PortCheck | Check if a TCP port is open |
| NetConnections | List network connections |
| EventLog | Read Windows Event Log entries |
How It Works
graph LR
A["MCP Client<br/>(Claude/AI)"] -->|commands| B["WinRemote MCP<br/>Server"]
B -->|API calls| C["Windows APIs<br/>(Win32/WMI/PS)"]
C -->|results| B
B -->|responses| A
Transport Options:
- stdio: Direct process communication (ideal for Claude Desktop)
- HTTP: RESTful API with optional authentication (ideal for remote access)
Core Architecture:
- Tool Layer: 40+ Windows automation tools (screenshot, click, type, etc.)
- Task Manager: Concurrency control and task cancellation
- Transport Layer: MCP protocol over stdio or HTTP
- Security Layer: Optional Bearer token authentication
Troubleshooting / FAQ
Q: MCP server not starting?
A: Check Python version (requires 3.10+) and ensure no other service is using port 8090:
python --version
netstat -an | findstr :8090
Q: Can't connect from remote machine?
A: Use --host 0.0.0.0 to bind to all interfaces (default is localhost only):
winremote-mcp --host 0.0.0.0 --auth-key "secure-key"
Q: Screenshot tool returns empty/black images?
A: Windows may be locked or display turned off. Ensure:
- Windows is unlocked and display is active
- No screen saver is running
- For multi-monitor setups, specify
monitorparameter
Q: OCR not working?
A: Install Tesseract OCR engine:
winget install UB-Mannheim.TesseractOCR
pip install winremote-mcp[ocr]
Q: Permission errors with registry/services?
A: Run with administrator privileges:
# Right-click Command Prompt → "Run as administrator"
winremote-mcp
Contributing
We welcome contributions! Please see our Contributing Guide for details.
Development Setup
git clone https://github.com/dddabtc/winremote-mcp.git
cd winremote-mcp
pip install -e ".[test]"
pytest # Run tests
Acknowledgments
Inspired by Windows-MCP by CursorTouch. Thanks for the pioneering work on Windows desktop automation via MCP.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Ready to automate Windows with AI? ⚡ Install winremote-mcp and connect your favorite AI agent to any Windows machine in under 30 seconds.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。