PyWinAuto MCP
PyWinAuto MCP
Windows GUI 自动化 · 生成级智能 · MCP 协议
基于 pywinauto 的 Windows GUI 自动化工具集,通过 MCP (Model Context Protocol) 暴露 153 个工具,内置 100 条工作流和 10 个场景模板,具备自然语言转工作流、智能元素定位、自适应自愈执行等生成级能力。
特性
核心能力
162 个 MCP 工具 — 覆盖应用管理、窗口操作、控件交互、键盘鼠标、剪贴板、元素查找、时序控制、任务栏、桌面、菜单、特定控件等 23 个分类
105 条预置工作流 — 20 个类别 × 5 条,35 条可一键执行,覆盖应用生命周期、窗口管理、文本输入、按钮交互、菜单导航、列表组合框、文件对话框、对话框处理、键盘快捷键、鼠标操作、数据提取、验证等待、浏览器自动化、系统操作、截图捕获、表单填写、表格操作、树控件、标签页、错误恢复
10 个场景模板 — 记事本、计算器、浏览器、表单、对话框、截图、菜单、剪贴板、窗口管理、系统信息
v3.0 生成级能力
NL2Workflow — 自然语言描述 → 可执行工作流,附带推理过程和置信度
输入:"启动记事本,输入Hello World,然后保存" 输出:4 步工作流(app_start → app_top_window → safe_type_text → keyboard_send_keys)SmartLocator — 智能元素定位,16 种控件类型自动检测,4 级模糊匹配,多维度语义排序
AdaptiveExec — 自适应自愈执行,6 类错误自动识别,每类 2-4 种恢复策略,指数退避重试
UIAnalyzer — UI 理解与分析,界面结构描述、可交互元素发现、控件自然语言描述
ScenarioLib — 场景模板库,参数化模板一键生成工作流
ScriptGen — 工作流 → 独立可运行 pywinauto Python 脚本生成
v2.0 企业级加固
输入校验 — 10 类校验器(backend/button/timeout/workflow_id 等)
重试机制 — 指数退避重试,safe_click/safe_type_text 内置重试
超时保护 — 线程级超时,工作流步骤支持 timeout 参数
线程安全 — RLock 保护全部会话操作
会话 TTL — 2 小时无访问自动过期,cleanup_stale_sessions 手动清理
错误分类 — 6 类错误自动识别 + 恢复建议
健康检查 — health_check 9 项依赖和运行状态检测
安全操作 — safe_click(验证可见/可用+重试)、safe_type_text(焦点验证+剪贴板优化)
批量执行 — batch_execute 支持 $prev.field$ 引用
状态快照 — snapshot_ui_state + inspect_element 深度探查
系统要求
项目 | 要求 |
操作系统 | Windows 10 / Windows 11 |
Python | 3.10+ |
依赖 | pywinauto, fastmcp>=4.0, pywin32, comtypes, pydantic |
后端 | UIA(默认,推荐)/ Win32 |
快速开始
1. 安装依赖
pip install pywinauto fastmcp pywin32 comtypes pydantic2. 环境自检
python scripts/self_check.py3. 运行 MCP 服务器
# stdio 模式(默认,用于 MCP 客户端连接)
python scripts/mcp_server.py
# HTTP 模式
python scripts/mcp_server.py --http --host 127.0.0.1 --port 10789
# 列出全部工具
python scripts/mcp_server.py --list-tools4. 运行测试
python tests/test_wrapper.py5. 自然语言自动化(生成级)
from scripts.generation_engine import generate_and_execute
# 用自然语言描述任务,自动生成工作流并执行
result = generate_and_execute("启动记事本,输入Hello World,然后保存")
print(result["status"]) # success🤖 AI 自动部署提示词
将以下提示词复制给你的 AI 编程助手(Cursor / Claude Code / Copilot / Continue 等),AI 将自动完成 pywinauto-mcp 的部署。
📖 完整部署指南见 docs/ai_deployment_guide.md
提示词 1:快速部署(推荐)
请帮我部署 pywinauto-mcp,这是一个 Windows GUI 自动化的 MCP 服务器。
项目地址:https://github.com/walkzzz/pywinauto-mcp
请按照以下步骤执行:
1. 克隆仓库到本地
2. 创建 Python 虚拟环境并激活
3. 安装依赖:pip install -r requirements.txt
4. 运行环境自检:python scripts/self_check.py
5. 验证 MCP 服务器:python scripts/mcp_server.py --list-tools(应显示 162 个工具)
6. 配置当前 IDE 的 MCP 连接,指向 scripts/mcp_server.py
7. 验证工具调用:调用 health_check 确认连接正常
每完成一步请告诉我进度,遇到问题请尝试自动修复。提示词 2:完整部署 + 测试
请帮我完整部署 pywinauto-mcp 并运行全部测试。
项目地址:https://github.com/walkzzz/pywinauto-mcp
部署要求:
- 使用 Python 3.11+ 虚拟环境
- 安装全部依赖(pywinauto, fastmcp, pywin32, comtypes, pydantic)
- 运行 85 项单元测试,确保全部通过
- 验证 162 个 MCP 工具全部注册成功
- 验证 105 条工作流全部可用
- 配置 MCP 连接并验证 health_check / get_capabilities / generate_workflow 三个工具可正常调用
- 最后给出部署报告:环境信息、工具数量、测试结果、连接状态
请分步执行,每步验证后再继续。提示词 3:Cursor 专用部署
请帮我在 Cursor 中部署 pywinauto-mcp MCP 服务器。
项目地址:https://github.com/walkzzz/pywinauto-mcp
请执行:
1. 克隆仓库
2. 安装依赖
3. 在项目根目录创建 .cursor/mcp.json,配置 pywinauto MCP 服务器(使用项目内虚拟环境的 Python)
4. 验证配置格式正确
5. 提示我重启 Cursor 以加载 MCP 配置
6. 重启后验证:在对话中调用 pywinauto 的 health_check 工具
MCP 配置模板:
{
"mcpServers": {
"pywinauto": {
"command": "${workspaceFolder}\\venv\\Scripts\\python.exe",
"args": ["${workspaceFolder}\\scripts\\mcp_server.py"]
}
}
}提示词 4:Claude Code 专用部署
请帮我在 Claude Code 中部署 pywinauto-mcp。
项目地址:https://github.com/walkzzz/pywinauto-mcp
请执行:
1. 克隆仓库并安装依赖
2. 编辑 %APPDATA%\Claude\claude_desktop_config.json,添加 pywinauto MCP 服务器配置
3. 验证 JSON 格式正确
4. 使用 `claude mcp list` 验证服务器已连接
5. 调用 health_check 验证工具可用
配置格式:
{
"mcpServers": {
"pywinauto": {
"command": "python",
"args": ["C:\\path\\to\\pywinauto-mcp\\scripts\\mcp_server.py"]
}
}
}提示词 5:自动化任务执行(部署后使用)
你现在可以使用 pywinauto-mcp 的 162 个 Windows GUI 自动化工具。
请帮我完成以下任务:
1. 启动记事本应用
2. 输入文本 "Hello from pywinauto-mcp!"
3. 全选并复制文本
4. 截图保存
5. 关闭记事本
要求:
- 使用 safe_click / safe_type_text 等安全操作
- 每步操作后验证结果
- 遇到错误时使用 adaptive_execute 自动恢复
- 最后给出执行报告提示词 6:故障排查
pywinauto-mcp MCP 服务器连接失败,请帮我排查。
症状:[描述你的症状,例如:AI 工具显示 MCP 连接失败 / 工具列表为空 / 调用工具报错]
请按以下顺序排查:
1. 检查 Python 版本和依赖安装:python --version && pip list | findstr "pywinauto fastmcp"
2. 手动启动服务器查看错误:python scripts/mcp_server.py --list-tools
3. 运行自检:python scripts/self_check.py
4. 检查 MCP 配置文件中的路径是否正确
5. 检查是否有端口占用(HTTP 模式)
6. 查看 AI 工具的 MCP 日志
找到问题后请修复并验证连接恢复。支持的 AI 工具
AI 工具 | MCP 支持 | 配置方式 | 详细指南 |
Cursor | ✅ 原生支持 |
| |
Claude Code | ✅ 原生支持 |
| |
VS Code + Copilot | ✅ 预览支持 |
| |
JetBrains AI | ✅ 2024.2+ | Settings → AI Assistant | |
Continue.dev | ✅ 开源 |
| |
通用 MCP 客户端 | ✅ 标准协议 | 标准 MCP JSON 配置 |
文档
文档 | 说明 |
项目入口(本文件) | |
🤖 AI 自动部署指南(Cursor/Claude/Copilot/JetBrains/Continue) | |
快速开始指南 | |
架构设计文档 | |
常见问题 | |
参考成果声明 | |
162 工具完整 API 参考 | |
105 条工作流详解 | |
元素定位策略 | |
使用指南与最佳实践 | |
版本变更日志 | |
贡献指南 | |
行为准则 |
示例
示例 1:基础自动化
from scripts.pywinauto_wrapper import (
app_start, app_top_window, control_type_keys, keyboard_send_keys
)
# 启动记事本
app = app_start("notepad.exe", backend="uia")
win = app_top_window(app["app_id"])
# 输入文本
control_type_keys(win["wrapper_id"], "Hello, PyWinAuto MCP!")
# 保存
keyboard_send_keys("^s")示例 2:自然语言生成工作流
from scripts.generation_engine import generate_workflow
# 自然语言描述 → 工作流步骤
result = generate_workflow("启动计算器,输入123+456,按等号")
print(f"生成 {result['step_count']} 步,置信度 {result['confidence']}")
for step in result["steps"]:
print(f" - {step['tool']}: {step.get('description', '')}")示例 3:智能元素定位
from scripts.generation_engine import smart_find
# 自然语言描述查找控件
result = smart_find("确定按钮", wrapper_id="ctrl_xxx")
print(f"找到 {result['matches_found']} 个匹配")
for match in result["matches"][:3]:
print(f" - {match['text']} ({match['control_type']}) score={match['score']}")
# 最佳匹配已自动注册为 wrapper 会话
print(f"最佳匹配 wrapper_id: {result['best_match_wrapper_id']}")示例 4:自适应自愈执行
import json
from scripts.generation_engine import adaptive_execute
steps = json.dumps([
{"tool": "app_start", "params": {"cmd_line": "notepad.exe"}, "output_key": "app_id"},
{"tool": "app_top_window", "params": {"app_id": "$app_id$"}, "output_key": "wrapper_id"},
{"tool": "safe_type_text", "params": {"wrapper_id": "$wrapper_id$", "text": "Hello"}},
])
# 自动处理元素未找到、超时等错误
result = adaptive_execute(steps, auto_recover=True, max_retries_per_step=3)
print(f"状态: {result['status']}, 恢复次数: {result['total_recoveries']}")示例 5:场景模板
from scripts.generation_engine import apply_scenario
# 应用预置场景模板
result = apply_scenario("notepad_basic", params={"text": "Hello from scenario"})
print(f"场景: {result['scenario_name']}, 步骤: {result['step_count']}")更多示例见 docs/examples/。
工具分类
分类 | 数量 | 代表工具 |
应用管理 | 13 |
|
控件操作 | 55+ |
|
键盘鼠标 | 12 |
|
窗口查找 | 7 |
|
剪贴板 | 4 |
|
时序控制 | 5 |
|
系统信息 | 4 |
|
元素查找 | 3 |
|
任务栏/桌面 | 8 |
|
特定控件 | 14 |
|
健康诊断 | 5 |
|
生成级 | 10 |
|
工作流 | 5 |
|
总计 | 153 |
项目结构
pywinauto-mcp/
├── README.md # 项目入口文档
├── CHANGELOG.md # 变更日志
├── CONTRIBUTING.md # 贡献指南
├── CODE_OF_CONDUCT.md # 行为准则
├── LICENSE # MIT 许可证
├── CREDITS.md # 参考成果声明
├── SKILL.md # MCP Skill 定义文档
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md # Bug 报告模板
│ │ └── feature_request.md # 功能请求模板
│ └── PULL_REQUEST_TEMPLATE.md
├── docs/
│ ├── ai_deployment_guide.md # 🤖 AI 自动部署指南
│ ├── architecture.md # 架构设计文档
│ ├── getting_started.md # 快速开始指南
│ ├── faq.md # 常见问题
│ └── examples/
│ ├── basic_automation.py
│ ├── nl2workflow_demo.py
│ ├── smart_locator_demo.py
│ ├── adaptive_exec_demo.py
│ ├── scenario_template_demo.py
│ └── install_package_demo.py
├── scripts/
│ ├── mcp_server.py # MCP CLI 服务器(stdio/HTTP,162 工具)
│ ├── pywinauto_wrapper.py # 162 API 封装 + 105 工作流引擎
│ ├── generation_engine.py # v3.0 生成级引擎
│ └── self_check.py # 环境自检脚本
├── tests/
│ └── test_wrapper.py # 85 项单元测试
└── references/
├── api_reference.md # 162 工具 API 参考
├── workflows.md # 105 条工作流详解
├── element_locators.md # 元素定位策略
└── usage_guide.md # 使用指南路线图
v1.0 — 128 API 封装 + MCP 服务器
v2.0 — 企业级加固(校验/重试/超时/线程安全/健康检查)
v3.0 — 生成级能力(NL2Workflow/SmartLocator/AdaptiveExec/UIAnalyzer/ScriptGen)
v3.1 — 更多场景模板(Excel/Word/Outlook 等 Office 自动化)
v3.2 — 操作录制与回放(Record & Replay)
v4.0 — 视觉定位(基于截图的图像匹配定位)
v4.1 — 多显示器支持 + DPI 感知
v4.2 — 远程桌面自动化
贡献
欢迎贡献!请阅读 CONTRIBUTING.md 了解贡献流程。
开发环境设置
# 克隆仓库
git clone https://github.com/your-org/pywinauto-mcp.git
cd pywinauto-mcp
# 安装开发依赖
pip install -r requirements-dev.txt
# 运行测试
python tests/test_wrapper.py
# 运行自检
python scripts/self_check.py提交规范
本项目使用 Conventional Commits 规范:
feat:新功能fix:Bug 修复docs:文档更新refactor:代码重构test:测试相关chore:构建/工具链相关
许可证
本项目基于 MIT License 开源。
致谢
pywinauto — Windows GUI 自动化基础库
FastMCP — MCP 服务器框架
pywinauto-mcp (参考项目) — 架构参考
如果这个项目对你有帮助,请给个 ⭐ Star
Made with ❤️ for Windows Automation