模型上下文协议(MCP)MSPaint应用程序自动化
该项目演示了如何使用模型上下文协议(MCP)自动化与旧版Windows应用程序(MSPaint)的交互。它利用 pywinauto 控制油漆应用 fastmcp 定义AI代理可以调用的工具。AI代理由谷歌的Gemini模型提供支持,使用这些工具执行绘制矩形和向Paint画布添加文本等任务。
目录
引言
该项目展示了使用AI代理实现MSPaint的自动化。该代理可以打开Paint、绘制矩形和添加文本,所有这些都由自然语言指令驱动。这是通过模型上下文协议(MCP)实现的,它允许AI代理调用Python代码中定义的特定函数(工具)。
模型上下文协议(MCP)
模型上下文协议(MCP)是一个框架,使AI模型能够与外部工具和资源进行交互。它为模型在现实世界中调用函数、检索数据和执行操作提供了一种标准化的方法。在这个项目中,MCP用于将Paint自动化功能作为AI代理可以使用的工具公开。
项目结构
├── 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
- 谷歌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代理,并开始自动化过程。
运作原理
- MCP服务器(
mcp_server.py):
- 定义用于与MSPaint交互的工具(例如。, open_paint, draw_rectangle, add_text_in_paint). - 用途 pywinauto 以控制MSPaint应用程序。 - 通过以下方式显示这些工具 fastmcp 图书馆。
- MCP客户端(
mcp_client.py):
- 连接到MCP服务器。 - 使用Google Gemini模型生成指令。 - 分析模型的输出以确定调用哪个工具。 - 调用MCP服务器上的相应工具。 - 处理来自工具的响应并将其反馈给模型。
- 人工智能代理(谷歌双子座):
- 接收查询(例如,“返回前20个斐波那契数的总和。”)。 - 使用可用工具(在系统提示中定义)解决问题。 - 生成函数调用(例如。, FUNCTION_CALL: fibonacci_numbers|20)使用工具。 - 提供最终答案(例如。, FINAL_ANSWER: 6765)并使用Paint显示结果。
关键组件
mcp_server.py: 包含自动化MSPaint的核心逻辑。这open_paint,draw_rectangle,以及add_text_in_paint函数是AI代理使用的关键工具。mcp_client.py: 管理AI代理和MCP服务器之间的交互。它设置系统提示、调用工具并处理响应。requirements.txt: 列出项目所需的所有Python包。- .env: 存储Google Gemini API密钥。
故障排除
- 权限问题: 如果遇到权限问题,请尝试以管理员身份运行脚本。
- 协调问题: 用于在MSPaint中单击的坐标可能需要根据您的屏幕分辨率和窗口大小进行调整。使用代码中的调试打印语句来标识正确的坐标。
- 工具选择问题: 如果AI代理没有选择正确的工具,请查看系统提示并确保工具描述准确。
- API关键问题: 确保Gemini API密钥在
.env文件。
贡献
欢迎投稿!请提交一个包含您的更改的拉取请求。

