Back to MCP directory
publicPublicdnsLocal runtime

mypc-mcp

一个基于MCP协议的Windows电脑控制服务器,为AI智能体提供屏幕截图、窗口管理、文件操作、系统控制等全面自动化能力,支持本地和远程访问。

article

README

🚀 MYPC-MCP

MYPC-MCP 是一款强大的基于 Model Context Protocol (MCP) 的 Windows 电脑控制服务器。它如同 AI 智能体的管家,赋予 AI 视觉(截图)、听觉(系统状态)、手脚(控制)和语音(自动化)能力,让 AI 能够全面掌控本地 Windows 电脑。

🚀 快速开始

一键安装(Windows)

# 双击运行 - 自动检查并安装所有依赖
start.bat

或者手动安装:

# 安装
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

# 启动
python main.py

服务器默认在 http://localhost:9999 上启动。

✨ 主要特性

  • 🖥️ 屏幕工具:支持全屏、活动窗口、网络摄像头截图,还能进行 AI 分析。
  • 🪟 窗口管理:可以列出、聚焦、最小化、最大化、关闭窗口。
  • 📁 文件操作:能读取、写入、编辑、复制、移动、删除文件,并具备安全区保护。
  • 🔍 文件搜索:通过 Everything 集成实现快速文件搜索。
  • ⌨️ 键鼠自动化:支持文本输入和快捷键自动化。
  • 🧠 智能检测:可自动检测活动窗口关联的文件路径。
  • 📊 Excel 自动化:通过 xlwings 控制已打开的 Excel 工作簿。
  • 📝 Office 自动化:借助 pywin32 控制 Word 和 PowerPoint。
  • 🌐 SSH 远程:能在远程 Linux 服务器上执行命令。
  • 📊 系统控制:可对音量、电源、通知、硬件状态进行控制。
  • 📋 剪贴板:支持读取和写入剪贴板内容。
  • 🐧 Bash Shell:执行 Git Bash 命令,且带有黑名单保护。

📦 安装指南

一键安装(Windows)

# 双击运行 - 自动检查并安装所有依赖
start.bat

手动安装

# 安装
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

# 启动
python main.py

💻 使用示例

基础用法

场景 1:读取和编辑文件

# 列出文档目录的文件
MyPC-list_directory(path="%USERPROFILE%\\Documents")

# 读取文件
MyPC-read_file(path="%USERPROFILE%\\Documents\\笔记.txt")

# 编辑文件
MyPC-edit_file(
    path="%USERPROFILE%\\Documents\\笔记.txt",
    search_text="旧文本",
    replace_text="新文本"
)

场景 2:浏览器自动化

# 获取当前浏览器 URL
MyPC-get_browser_url()

# 截图并 AI 分析
MyPC-take_screenshot(display_index=1, ai_analysis=True)

# 复制 URL 到剪贴板
MyPC-set_clipboard(text="https://example.com")

场景 3:窗口管理

# 列出所有窗口
MyPC-list_windows()

# 聚焦记事本
MyPC-focus_window(title="记事本")

# 输入文本
type_text(text="你好世界", enter=True)

# 保存并关闭
hotkey(keys=["ctrl", "s"])
MyPC-close_window(title="记事本")

场景 4:文件搜索

# 搜索 Python 文件
MyPC-search_files(query="*.py", limit=20)

# 在特定目录搜索
MyPC-search_files(query="项目笔记 ext:pdf")

场景 5:智能文件检测

# 检测当前打开的文件
MyPC-detect_active_file()
# 返回: {
#   "path": "D:\\Projects\\main.py",
#   "filename": "main.py",
#   "software": "Python",
#   "strategy": "标题路径提取"
# }

场景 6:远程 SSH 执行

# 列出 SSH 主机
MyPC-ssh_list_hosts()

# 在远程服务器执行命令
MyPC-ssh_execute(host="MyServer", command="docker ps")

📚 详细文档

配置说明

基础配置 (config.json)

{
    "server": {
        "enabled": true,
        "name": "MyPC-MCP",
        "port": 9999,
        "host": "0.0.0.0",
        "domain": "localhost"
    },
    "safe_zones": [
        "%USERPROFILE%\\Documents",
        "%USERPROFILE%\\Downloads",
        "%USERPROFILE%\\Desktop",
        "D:\\"
    ]
}

网络访问模式

仅本地访问(默认):

{
    "server": {
        "host": "127.0.0.1",
        "domain": "localhost"
    }
}

局域网访问

{
    "server": {
        "host": "0.0.0.0",
        "domain": "192.168.1.100"
    }
}

以管理员身份运行 setup-firewall.bat 允许端口 9999。

可用工具

屏幕与视觉

  • MyPC-take_screenshot - 截取全屏或指定显示器
  • MyPC-screenshot_active_window - 仅截取活动窗口
  • MyPC-take_webcam_photo - 从摄像头拍照
  • MyPC-list_monitors - 列出所有显示器

窗口管理

  • MyPC-get_active_window - 获取活动窗口信息
  • MyPC-list_windows - 列出所有可见窗口
  • MyPC-focus_window - 按标题/进程聚焦窗口
  • MyPC-minimize_window - 最小化窗口
  • MyPC-maximize_window - 最大化窗口
  • MyPC-close_window - 关闭窗口
  • MyPC-screenshot_active_window - 截取活动窗口
  • MyPC-get_browser_url - 获取浏览器地址栏 URL
  • MyPC-get_focused_control - 获取焦点控件信息

进程管理

  • MyPC-list_processes - 按 CPU/内存列出进程
  • MyPC-kill_process - 按名称或 PID 终止进程
  • MyPC-open_app - 打开应用程序

文件操作

  • MyPC-list_directory - 列出目录内容
  • MyPC-read_file - 读取文件(txt、docx、xlsx、pptx、pdf)
  • MyPC-write_file - 写入文本文件(仅安全区)
  • MyPC-edit_file - 文件搜索替换
  • MyPC-copy_file - 复制文件(仅进入安全区)
  • MyPC-move_file - 移动/重命名文件(仅安全区)
  • MyPC-delete_file - 删除文件(移入回收站)
  • MyPC-get_file_info - 获取文件详细信息
  • MyPC-search_files - 使用 Everything 搜索文件

文件搜索与检测

  • MyPC-search_files - 通过 Everything 快速搜索文件
  • MyPC-detect_active_file - 智能检测活动窗口的文件

Excel 自动化

  • MyPC-execute_excel_code - 在已打开的 Excel 中执行 xlwings 代码
  • MyPC-list_excel_books - 列出所有打开的 Excel 工作簿

Office 自动化

  • MyPC-execute_word_code - 在已打开的 Word 中执行 pywin32 代码
  • MyPC-execute_ppt_code - 在已打开的 PowerPoint 中执行 pywin32 代码

输入自动化

  • type_text - 输入文本(支持通过剪贴板输入中文)
  • hotkey - 按快捷键组合

剪贴板

  • MyPC-get_clipboard - 获取剪贴板内容
  • MyPC-set_clipboard - 设置剪贴板内容

系统控制

  • MyPC-get_system_status - 获取 CPU、内存、电池状态
  • MyPC-set_volume / MyPC-get_volume - 音量控制
  • MyPC-lock_screen - 锁定工作站
  • MyPC-sleep_display - 关闭显示器
  • MyPC-hibernate - 休眠系统

通知

  • MyPC-show_notification - 显示 Windows Toast 通知

硬件

  • MyPC-get_hardware_status - CPU、GPU、内存、磁盘信息

Bash Shell

  • MyPC-bash - 执行 Git Bash 命令
  • MyPC-bash_blocked - 列出被阻止的命令
  • MyPC-bash_status - 检查 Bash 安装

SSH 远程

  • MyPC-ssh_list_hosts - 列出配置的 SSH 主机
  • MyPC-ssh_execute - 执行远程命令
  • MyPC-ssh_test_connection - 测试 SSH 连接
  • MyPC-ssh_allowed_commands - 列出允许的命令

实用工具

  • MyPC-delay - 延迟执行(1-120 秒)

网络访问

本地访问

# 启动服务器
python main.py

# 本机访问
http://localhost:9999

局域网访问

  1. 配置防火墙(以管理员身份运行 setup-firewall.bat
  2. 编辑 config.json
    {
        "server": {
            "host": "0.0.0.0",
            "domain": "你的局域网IP"
        }
    }
    
  3. 从局域网访问:http://你的局域网IP:9999

公网访问

  1. 配置路由器端口转发(外部 9999 → 你的电脑:9999)
  2. 以管理员身份运行 setup-firewall.bat
  3. 配置域名或使用公网 IP

详细指南请参阅 NETWORK.md

🔧 技术细节

安全性

安全区

文件操作按权限级别分类:

  • 只读操作:任意目录
  • 写入操作:仅在配置的安全区内
  • 复制操作:只能复制进入安全区

SSH 安全

  • 命令白名单机制
  • 密码和密钥文件认证
  • 编码连接支持

数据保护

  • 文件删除移入回收站
  • 默认无永久数据丢失
  • 路径验证和规范化

高级配置

环境变量

配置支持环境变量扩展:

  • %USERPROFILE% - 用户目录
  • %APPDATA% - 应用数据目录
  • %TEMP% - 临时文件夹
  • ~ - 主目录

Everything 搜索

启用快速文件搜索,安装 Everything 并在 config.json 中配置路径:

{
    "paths": {
        "everything": [
            "C:\\Program Files\\Everything\\es.exe",
            "D:\\APP\\Everything\\es.exe"
        ]
    }
}

Git Bash

config.json 中配置 Git Bash 路径:

{
    "paths": {
        "git_bash": [
            "C:\\Program Files\\Git\\bin\\bash.exe"
        ]
    }
}

AI 分析(VLM)

配置视觉语言模型用于截图分析:

{
    "vlm": {
        "enabled": true,
        "base_url": "https://open.bigmodel.cn/api/paas/v4",
        "api_key": "your_api_key_here",
        "model": "glm-4.6v",
        "prompt": "请识别这张图片中的所有文字。"
    }
}

项目结构

MYPC-MCP/
├── main.py                   # 服务器入口
├── config.example.json       # 配置模板
├── config.json              # 配置文件(gitignored)
├── requirements.txt          # Python 依赖
├── start.bat               # 快速启动脚本
├── install.bat             # 安装脚本
├── stop.bat                # 停止服务脚本
├── setup-firewall.bat      # 防火墙配置
├── tools/                   # 工具模块
│   ├── screen.py            # 屏幕和摄像头工具
│   ├── system.py            # 系统控制工具
│   ├── files.py             # 文件管理工具
│   ├── window.py            # 窗口管理工具
│   ├── search.py            # 文件搜索工具
│   ├── ssh.py               # SSH 远程工具
│   ├── bash.py              # Git Bash 工具
│   ├── keyboard_mouse.py    # 键鼠自动化
│   ├── detector.py          # 智能文件检测
│   ├── detect_active_file.py # 文件检测实现
│   ├── excel.py             # Excel 自动化 (xlwings)
│   └── office.py            # Office 自动化 (Word/PPT)
├── utils/                   # 工具模块
│   └── config.py            # 配置加载器
└── screenshots/             # 截图存储

📄 许可证

MIT License

🤝 贡献

欢迎贡献!随时提交 Pull Request。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client