基于MCP的数学绘图客户端
数学绘图客户端(talk2mcp_math_draw_client.py)是一个将数学计算与可视化绘图功能相结合的Python应用程序。它使用Gemini AI模型来处理数学查询并生成适当的响应。
特性
当前实现的功能
- 与Gemini AI集成以解决数学问题
- 数学结果可视化表示的绘图功能
- 迭代问题解决方法(最多9次迭代)
- 支持基本的数学运算和ASCII值计算
- 在画布上自动绘制结果
- 基本错误处理和恢复
- 简单的画布操作
- 基本文本放置
- 操作超时处理(LLM操作超时10秒)
- 会话管理
- 工具执行与参数验证
服务器要求
- MCP服务器设置:
- Python 3.x环境 - 已安装MCP服务器包 - 所需的服务器依赖关系: - mcp 包裹 - google-generativeai 用于AI集成 - python-dotenv 环境管理
- 服务器配置:
- 端口配置(默认值:8080) - 数学运算的内存分配 - 画布大小设置(默认值:1920x1080) - 最大并发连接数 - 操作超时设置
- 服务器工具:
- 数学计算引擎 - 绘图画布管理器 - 工具执行处理程序 - 会话管理器 - 错误处理系统
先决条件
- Python 3.x
- 所需的Python包:
- python-dotenv - google-generativeai - mcp 包裹
环境设置
- 创建一个
.env项目根目录中的文件 - 添加您的Gemini API密钥:
GEMINI_API_KEY=your_api_key_here服务器安装程序
- 安装服务器依赖项:
pip install mcp google-generativeai python-dotenv- 在中配置服务器设置
config.json:
{
"server": {
"port": 8080,
"max_connections": 10,
"timeout": 30,
"canvas": {
"width": 1920,
"height": 1080
}
}
}- 启动MCP服务器:
python example2-3_server.py可用工具
当前实施的工具
- 数学运算:
- 基本算术运算(加、减、乘、除) - 高级数学函数(指数、对数) - ASCII值计算 - 字符串操作和转换 - 阵列操作 - 素数计算 - 因式计算 - 斐波那契数列生成
- 绘图工具:
- 具有自定义尺寸的矩形图形 - 带格式的基本文本放置 - 画布清理和重置 - 基于坐标的绘图 - 简单的颜色选择 - 基础层管理
计划中的未来工具
- 增强的数学运算
- 高级绘图功能:
- 分析工具:
- 实用工具:
安装
- 克隆存储库
- 安装所需的软件包:
pip install python-dotenv google-generativeai mcp- 如上所述设置环境变量
用法
- 启动MCP服务器(请参阅服务器设置部分)
- 确保服务器正在运行且可访问
- 运行客户端:
python talk2mcp_math_draw_client.py服务器客户端通信
- 连接协议:
- 客户端与服务器建立连接 - 身份验证握手 - 工具列表同步 - 会话初始化
- 数据流:
- 客户端发送数学查询 - 服务器处理请求 - 结果返回给客户端 - 执行绘图命令 - 传达状态更新
- 错误处理:
- 连接重试机制 - 会话恢复 - 工具执行回退 - 资源清理
查询示例
- 基础数学绘图:
Calculate the sum of ASCII values for the word "HELLO" and draw it inside a rectangle at the center of the canvas.- 复杂数学可视化:
Find the exponential values of first 5 prime numbers, sum them up, and display the result in a blue rectangle at coordinates (500, 300).- 多种操作:
Convert the word "MATH" to ASCII values, calculate their sum, find the square root, and display the result in a red rectangle with white text.- 高级绘图:
Draw a rectangle at (200, 200) with width 400 and height 300, then place the result of (2^10 + 3^5) inside it with centered text.运作原理
- 客户端使用stdio通信连接到MCP服务器
- 它使用Gemini AI模型处理数学查询
- 结果会自动绘制在画布上
- 该系统使用迭代方法(最多9次迭代)来解决复杂问题
- 结果以视觉上吸引人的格式显示
- 每个操作都根据工具模式进行验证
- 错误处理和超时机制到位
错误处理
客户端包括强大的错误处理功能,用于:
- API超时(LLM操作超时10秒)
- 无效输入
- 连接问题
- 工具执行错误
- 绘图工具故障
- 参数验证错误
- 会话管理问题
贡献
请随时提交问题和增强请求。
许可证
根据Apache许可证2.0版(“许可证”)许可; 除非遵守许可证,否则您不得使用此文件。 您可以在以下网址获得许可证副本
http://www.apache.org/licenses/LICENSE-2.0除非适用法律要求或书面同意,否则软件 根据许可证分发的内容按“原样”分发, 无任何明示或暗示的保证或条件。 请参阅许可证,了解管理权限和 许可证下的限制。
故障排除
- 常见问题:
- 连接超时 - 绘图工具故障 - 内存问题 - 性能问题 - 身份验证错误
- 解决:
- 检查服务器状态 - 验证网络连接 - 清除缓存和临时文件 - 更新依赖关系 - 检查系统资源
性能提示
- 优化:
- 使用适当的画布大小 - 限制并发操作 - 清除未使用的资源 - 监控内存使用情况 - 使用高效算法
- 最佳实践:
- 定期备份 - 系统更新 - 资源监控 - 错误记录 - 性能测试
