关于 Model Context Protocol (MCP) MSPaint App Automation
这是一个用 MCP 和 pywinauto 自动化 Windows MSPaint 的示例项目,面向探索桌面应用自动化的开发者。Google Gemini 通过自带客户端调用工具解题,并将结果绘制到 Paint 画布。
主要功能
- 01通过工具控制 MSPaint
- 02绘制矩形并添加文字
- 03使用 Google Gemini 生成指令
- 04将计算结果显示在画布上
适用场景
- 01演示 AI Agent 操作传统 Windows 应用
- 02将数学问题的结果绘制到 Paint
- 03开发或调试 Paint 自动化工具
MCP 相关
项目的 MCP 服务通过 fastmcp 暴露打开 Paint、绘制矩形和添加文字等工具;配套客户端连接服务,并将 Google Gemini 的工具调用结果反馈给模型。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Model Context Protocol (MCP) MSPaint 应用自动化
本项目演示了如何使用 Model Context Protocol (MCP) 自动操作旧版 Windows 应用程序(MSPaint)。项目使用 pywinauto 控制 Paint 应用程序,并使用 fastmcp 定义可供 AI Agent 调用的工具。由 Google Gemini 模型驱动的 AI Agent 使用这些工具执行绘制矩形、向 Paint 画布添加文本等任务。
目录
简介
本项目展示了如何使用 AI Agent 自动操作 MSPaint。Agent 可以打开 Paint、绘制矩形并添加文本,所有操作均由自然语言指令驱动。这是通过 Model Context Protocol (MCP) 实现的,它允许 AI Agent 调用 Python 代码中定义的特定函数(工具)。
Model Context Protocol (MCP)
Model Context Protocol (MCP) 是一个让 AI 模型能够与外部工具和资源交互的框架。它为模型调用函数、检索数据以及在现实世界中执行操作提供了标准化方式。在本项目中,MCP 用于将 Paint 自动化函数作为工具提供给 AI Agent 使用。
项目结构
├── MSPaint-MCP-Server/
│ ├── mcp_server.py # Defines the MCP server with tools for Paint automation
│ ├── mcp_client.py # Defines the MCP client that interacts with the server and AI model
│ ├── requirements.txt # Lists the project dependencies
│ └── .env # Stores the Gemini API key
├── README.md # This file
要求
- Python 3.11+
- Conda(建议用于环境管理)
- Google Gemini API 密钥
- pywin32
- pywinauto
- fastmcp
- python-dotenv
- google-genai
设置
-
创建 Conda 环境:
conda create -n eagenv python=3.11 conda activate eagenv -
安装依赖:
pip install -r requirements.txt -
设置 Gemini API 密钥:
-
在目录中创建
.env文件。 -
将 Gemini API 密钥添加到
.env文件中:GEMINI_API_KEY=YOUR_API_KEY
-
用法
-
运行 MCP 客户端:
python mcp_paint_app/mcp_client.py这将启动 MCP 客户端,连接到 MCP 服务,初始化 AI Agent,并开始自动化流程。
工作原理
-
MCP 服务(
mcp_server.py):- 定义用于与 MSPaint 交互的工具(例如,
open_paint、draw_rectangle、add_text_in_paint)。 - 使用
pywinauto控制 MSPaint 应用程序。 - 通过
fastmcp库提供这些工具。
- 定义用于与 MSPaint 交互的工具(例如,
-
MCP 客户端(
mcp_client.py):- 连接到 MCP 服务。
- 使用 Google Gemini 模型生成指令。
- 解析模型输出,以确定要调用哪个工具。
- 调用 MCP 服务上相应的工具。
- 处理工具的响应,并将其反馈给模型。
-
AI Agent(Google Gemini):
- 接收查询(例如,“返回前 20 个 Fibonacci 数的总和。”)。
- 使用可用工具(在系统提示词中定义)解决问题。
- 生成函数调用(例如,
FUNCTION_CALL: fibonacci_numbers|20)来使用工具。 - 提供最终答案(例如,
FINAL_ANSWER: 6765),并使用 Paint 显示结果。
关键组件
mcp_server.py: 包含 MSPaint 自动化的核心逻辑。open_paint、draw_rectangle和add_text_in_paint函数是 AI Agent 使用的关键工具。mcp_client.py: 管理 AI Agent 与 MCP 服务之间的交互。它会设置系统提示词、调用工具并处理响应。requirements.txt: 列出项目所需的所有 Python 包。- .env: 存储 Google Gemini API 密钥。
故障排除
- **权限问题:**如果遇到权限问题,请尝试以管理员身份运行脚本。
- **坐标问题:**在 MSPaint 中点击所用的坐标可能需要根据屏幕分辨率和窗口大小进行调整。使用代码中的调试打印语句找出正确的坐标。
- **工具选择问题:**如果 AI Agent 未选择正确的工具,请检查系统提示词并确保工具描述准确。
- **API 密钥问题:**确保在
.env文件中正确设置了 Gemini API 密钥。
贡献
欢迎贡献!请提交包含更改的拉取请求。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。