MSPaint MCP Server V2

MSPaint MCP Server V2

🚀 使用基于 Google Gemini 的 AI 代理自动化 MSPaint 应用

本项目展示了如何借助 Google Gemini 模型,通过中间件控制协议(MCP)服务器来实现 MSPaint 应用的自动化控制。AI 代理能够接收复杂的数学表达式,逐步完成计算与结果验证,并将最终答案绘制于 MSPaint 之中。

🚀 快速开始

本项目利用 Google Gemini 模型和 MCP 服务器,实现 MSPaint 应用的自动化控制及数学表达式的计算与绘制。以下是启动项目的基本步骤:

  1. 启动 MCP 服务器:
python mcp_server.py
  1. 启动 MCP 客户端:
python mcp_client.py

✨ 主要特性

  • 自动化控制:借助 pywinauto 库实现对 MSPaint 应用的自动化操作。
  • 数学运算与验证:提供多种数学运算工具,并能对计算结果进行验证。
  • AI 驱动:利用 Google Gemini 模型生成指令,解决数学表达式。

📦 安装指南

步骤 1:创建 Conda 虚拟环境

conda create -n eagenv python=3.11
conda activate eagenv

步骤 2:安装依赖包

pip install -r requirements.txt

步骤 3:配置 Gemini API 密钥

创建一个名为 .env 的文件,并添加以下内容:

GEMINI_API_KEY=your_api_key_here

💻 使用示例

基础用法

MCP 服务器 (mcp_server.py)

from fastmcp import MCPServer

class MSPaintMCP(MCPServer):
def __init__(self):
super().__init__()
self.add_tool(open_paint)
self.add_tool(draw_rectangle)
self.add_tool(add_text_in_paint)
# 添加其他工具...

if __name__ == "__main__":
server = MSPaintMCP()
server.start()

MCP 客户端 (mcp_client.py)

from fastmcp import MCPClient

client = MCPClient('localhost', 5000)
client.send_goal("solve_math_expression", {
'expression': '123 + 456 * 789',
'draw_result': True
})

📚 详细文档

项目架构

MCP 服务器 (mcp_server.py)

  • 主要功能:定义与 MSPaint 交互的工具(如 open_paint, draw_rectangle, add_text_in_paint)以及各种数学运算工具(如 add, subtract, multiply, divide, verify_calculation, verify_consistency)。
  • 技术亮点
    • 使用 pywinauto 库实现对 MSPaint 应用的自动化控制。
    • 通过 fastmcp 库将这些工具暴露给外部客户端。

MCP 客户端 (mcp_client.py)

  • 主要功能:连接到 MCP 服务器,利用 Google Gemini 模型生成指令并解决数学表达式。
  • 实现细节
    • 设置系统提示词以定义 AI 的行为边界和可用工具。
    • 解析模型输出以确定调用的工具及其参数。
    • 处理工具响应,并将其反馈给模型进行下一步操作。

核心组件

系统提示词(由 mcp_client.py 提供)

系统提示词定义了 AI 的行为边界和可用工具。以下是一个简化示例:

  • 定义可调用的工具及其功能。
  • 指定数学表达式的求解步骤,包括逐步计算和验证。

可用工具

MSPaint 控制工具
  1. open_paint(): 打开 MSPaint 应用。
  2. draw_rectangle(x1, y1, x2, y2): 在指定坐标绘制矩形。
  3. add_text_in_paint(text, x, y): 在指定位置添加文本。
数学运算工具
  1. add(a, b): 返回 a 和 b 的和。
  2. subtract(a, b): 返回 a 减去 b 的结果。
  3. multiply(a, b): 返回 a 乘以 b 的结果。
  4. divide(a, b): 返回 a 除以 b 的结果,需处理除零异常。
验证工具
  1. verify_calculation(a, b, expected_result): 验证 a 和 b 的计算是否与预期结果一致。
  2. verify_consistency(steps): 确保所有计算步骤的正确性。

项目依赖

  • Python 版本:3.11+
  • 推荐使用 Conda 管理环境
  • 其他依赖
    • pywin32
    • pywinauto
    • fastmcp
    • python-dotenv
    • google-genai
    • rich

🔧 技术细节

  • 自动化控制:使用 pywinauto 库实现对 MSPaint 应用的自动化操作,通过模拟用户操作实现应用的启动、绘制等功能。
  • AI 交互:通过 fastmcp 库将工具暴露给 Google Gemini 模型,模型根据系统提示词生成指令,调用相应工具解决数学表达式。

注意事项

⚠️ 重要提示

  • 确保所有工具调用都包含适当的异常处理。
  • 根据需要优化图形绘制和数学计算的效率。

贡献指南

欢迎提交问题报告和功能建议,详情请参考项目仓库。

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-25 07:06

相似服务问题