MCPControl

MCPControl

Windows control server for the Model Context Protocol, enabling programmatic control of mouse, keyboard, window management, screen capture, and clipboard operations to allow AI models to interact with and automate Windows desktops.

Category
访问服务器

README

MCPControl

<p align="center"> <img src="https://github.com/user-attachments/assets/1c577e56-7b8d-49e9-aaf5-b8550cc6cfc0" alt="MCPControl Logo" width="250"> </p>

<p align="center"> <a href="https://github.com/Cheffromspace/MCPControl/releases/tag/v0.2.0"> <img src="https://img.shields.io/badge/release-v0.2.0-blue.svg" alt="Latest Release"> </a> </p>

Windows control server for the Model Context Protocol, providing programmatic control over system operations including mouse, keyboard, window management, and screen capture functionality.

Note: This project currently supports Windows only.

🔥 Why MCPControl?

MCPControl bridges the gap between AI models and your desktop, enabling secure, programmatic control of:

  • 🖱️ Mouse movements and clicks
  • ⌨️ Keyboard input and shortcuts
  • 🪟 Window management
  • 📸 Screen capture and analysis
  • 📋 Clipboard operations

🔌 Quick Start

Prerequisites

  1. Install Build Tools (including VC++ workload)

    # Run as Administrator - may take a few minutes to complete
    winget install Microsoft.VisualStudio.2022.BuildTools --override "--wait --passive --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"
    
  2. Install Python (if not already installed)

    # Install Python (required for node-gyp)
    winget install Python.Python.3.12
    
  3. Install Node.js

    # Install latest LTS version
    winget install OpenJS.NodeJS
    

Installation

  1. Install MCPControl Package
    npm install -g mcp-control
    

Configuration

MCPControl works best in a virtual machine at 1280x720 resolution for optimal click accuracy.

Configure your Claude client to launch MCPControl using the default stdio transport:

{
  "mcpServers": {
    "MCPControl": {
      "command": "mcp-control"
    }
  }
}

The MCP client starts MCPControl as a local subprocess, so no separate server startup is required. If you are running from a local checkout instead of the globally installed package, use the built entry point:

{
  "mcpServers": {
    "MCPControl": {
      "command": "node",
      "args": ["C:\\path\\to\\MCPControl\\build\\index.js"]
    }
  }
}

Starting the Server

In stdio mode, start MCPControl through your MCP client configuration. To launch it manually for testing, run:

mcp-control

Optional SSE Transport

SSE is available for remote or network-based deployments. Start MCPControl with --sse, then configure your MCP client with the server URL:

mcp-control --sse

Replace 192.168.1.100:3232 with your server's IP address and port:

{
  "mcpServers": {
    "MCPControl": {
      "transport": "sse",
      "url": "http://192.168.1.100:3232/mcp"
    }
  }
}

VM Setup Example

  1. Start your Windows VM with 1280x720 resolution
  2. Install MCPControl on the VM:
    npm install -g mcp-control
    
  3. Configure your MCP client to use stdio:
    mcp-control
    
  4. Configure Claude with the stdio command:
    {
      "mcpServers": {
        "MCPControl": {
          "command": "mcp-control"
        }
      }
    }
    
  5. Restart Claude and MCPControl will appear in your MCP menu!

🔧 CLI Options

MCPControl supports several command-line flags for optional SSE/HTTPS configurations:

# Run with the default stdio transport
mcp-control

# Run with optional SSE transport on the default port (3232)
mcp-control --sse

# Run with SSE on custom port
mcp-control --sse --port 3000

# Run with HTTPS/TLS (required for production deployments)
mcp-control --sse --https --cert /path/to/cert.pem --key /path/to/key.pem

# Run with HTTPS on custom port
mcp-control --sse --https --port 8443 --cert /path/to/cert.pem --key /path/to/key.pem

Command Line Arguments

  • --sse - Enable optional SSE (Server-Sent Events) transport for network access
  • --port [number] - Specify custom port (default: 3232)
  • --https - Enable HTTPS/TLS (required for remote deployments per MCP spec)
  • --cert [path] - Path to TLS certificate file (required with --https)
  • --key [path] - Path to TLS private key file (required with --https)

Security Note

According to the MCP specification, HTTPS is mandatory for all HTTP-based transports in production environments. When deploying MCPControl for remote access, always use the --https flag with valid TLS certificates.

🚀 Popular Use Cases

Assisted Automation

  • Application Testing: Delegate repetitive UI testing to Claude, allowing AI to navigate through applications and report issues
  • Workflow Automation: Have Claude operate applications on your behalf, handling repetitive tasks while you focus on creative work
  • Form Filling: Let Claude handle data entry tasks with your supervision

AI Experimentation

  • AI Gaming: Watch Claude learn to play simple games through visual feedback
  • Visual Reasoning: Test Claude's ability to navigate visual interfaces and solve visual puzzles
  • Human-AI Collaboration: Explore new interaction paradigms where Claude can see your screen and help with complex tasks

Development and Testing

  • Cross-Application Integration: Bridge applications that don't normally communicate
  • UI Testing Framework: Create robust testing scenarios with visual validation
  • Demo Creation: Automate the creation of product demonstrations

⚠️ IMPORTANT DISCLAIMER

THIS SOFTWARE IS EXPERIMENTAL AND POTENTIALLY DANGEROUS

By using this software, you acknowledge and accept that:

  • Giving AI models direct control over your computer through this tool is inherently risky
  • This software can control your mouse, keyboard, and other system functions which could potentially cause unintended consequences
  • You are using this software entirely at your own risk
  • The creators and contributors of this project accept NO responsibility for any damage, data loss, or other consequences that may arise from using this software
  • This tool should only be used in controlled environments with appropriate safety measures in place

USE AT YOUR OWN RISK

🌟 Features

<table> <tr> <td> <h3>🪟 Window Management</h3> <ul> <li>List all windows</li> <li>Get active window info</li> <li>Focus, resize & reposition</li> </ul> </td> <td> <h3>🖱️ Mouse Control</h3> <ul> <li>Precision movement</li> <li>Click & drag operations</li> <li>Scrolling & position tracking</li> </ul> </td> </tr> <tr> <td> <h3>⌨️ Keyboard Control</h3> <ul> <li>Text input & key combos</li> <li>Key press/release control</li> <li>Hold key functionality</li> </ul> </td> <td> <h3>📸 Screen Operations</h3> <ul> <li>High-quality screenshots</li> <li>Screen size detection</li> <li>Active window capture</li> </ul> </td> </tr> </table>

🔧 Automation Providers

MCPControl supports multiple automation providers for different use cases:

  • keysender (default) - Native Windows automation with high reliability
  • powershell - Windows PowerShell-based automation for simpler operations
  • autohotkey - AutoHotkey v2 scripting for advanced automation needs

Provider Configuration

You can configure the automation provider using environment variables:

# Use a specific provider for all operations
export AUTOMATION_PROVIDER=autohotkey

# Configure AutoHotkey executable path (if not in PATH)
export AUTOHOTKEY_PATH="C:\Program Files\AutoHotkey\v2\AutoHotkey.exe"

Or use modular configuration for specific operations:

# Mix and match providers for different operations
export AUTOMATION_KEYBOARD_PROVIDER=autohotkey
export AUTOMATION_MOUSE_PROVIDER=keysender
export AUTOMATION_SCREEN_PROVIDER=keysender  
export AUTOMATION_CLIPBOARD_PROVIDER=powershell

See provider-specific documentation:

🛠️ Development Setup

If you're interested in contributing or building from source, please see CONTRIBUTING.md for detailed instructions.

Development Requirements

To build this project for development, you'll need:

  1. Windows operating system (required for the keysender dependency)
  2. Node.js 18 or later (install using the official Windows installer which includes build tools)
  3. npm package manager
  4. Native build tools:
    • node-gyp: npm install -g node-gyp
    • cmake-js: npm install -g cmake-js

The keysender dependency relies on Windows-specific native modules that require these build tools.

📋 Project Structure

  • /src
    • /handlers - Request handlers and tool management
    • /tools - Core functionality implementations
    • /types - TypeScript type definitions
    • index.ts - Main application entry point

🔖 Repository Branches

  • main - Main development branch with the latest features and changes
  • release - Stable release branch that mirrors the latest stable tag (currently v0.2.0)

Version Installation

You can install specific versions of MCPControl using npm:

# Install the latest stable release (from release branch)
npm install mcp-control

# Install a specific version
npm install mcp-control@0.1.22

📚 Dependencies

🚧 Known Limitations

  • Window minimize/restore operations are currently unsupported
  • Multiple screen functions may not work as expected, depending on setup
  • The get_screenshot utility does not work with the VS Code Extension Cline. See GitHub issue #1865
  • Some operations may require elevated permissions depending on the target application
  • Only Windows is supported
  • MCPControl works best at 1280x720 resolution, single screen. Click accuracy is optimized for this resolution. We're working on an offset/scaling bug and looking for testers or help creating testing tools

👥 Contributing

See CONTRIBUTING.md

⚖️ License

This project is licensed under the MIT License - see the LICENSE file for details.

📖 References

MseeP.ai Security Assessment Badge

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选