返回市场
数学CAD-MCP

数学CAD-MCP

作者:puran-water6 星标更新:2025-03-26

项目介绍

MathCAD MCP Server

这是一个提供与PTC MathCAD Prime集成的模型上下文协议(MCP)服务器,允许像Claude这样的AI助手通过标准化接口与MathCAD工作表进行交互。

功能

  • 工作表管理:打开、关闭和保存MathCAD工作表
  • 输入控制:设置带有单位的数值、字符串和矩阵
  • 输出访问:获取带有适当单位的计算结果
  • 计算管理:暂停、恢复和重新计算工作表
  • 导出选项:将工作表保存为PDF、RTF和XPS文件

要求

  • Windows操作系统(用于MathCAD COM自动化)
  • Python 3.10或更高版本
  • 安装了PTC MathCAD Prime 3.0或更高版本
  • 依赖项:MathcadPy、pywin32 和 MCP Python SDK(参见requirements.txt)

安装

使用Claude Desktop快速安装

  1. 安装所需的依赖项:

    pip install -r requirements.txt
    
  2. 运行安装脚本:

    python install_standalone.py
    

    选项:

    • 使用--hide标志在运行时隐藏MathCAD窗口:python install_standalone.py --hide
  3. 重启Claude Desktop以使更改生效。

手动配置

编辑您的Claude Desktop配置文件位于~/Library/Application Support/Claude/claude_desktop_config.json(Mac)或%APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "mathcad": {
      "command": "python",
      "args": [
        "path/to/mathcad-mcp/standalone.py"
      ],
      "env": {
        "MATHCAD_VISIBLE": "true"
      }
    }
  }
}

使用方法

工具

该服务器公开以下MCP工具:

  • list_mathcad_version:获取正在运行的MathCAD版本
  • open_worksheet:从文件路径打开一个MathCAD工作表
  • close_worksheet:关闭特定的工作表
  • close_all_worksheets:关闭所有打开的工作表
  • quit_mathcad:完全退出MathCAD应用程序
  • save_worksheet:将工作表保存到指定路径和格式
  • save_worksheet_inplace:就地保存工作表
  • activate_worksheet:将工作表带到前台
  • set_real_input:设置带有可选单位的数值输入
  • set_string_input:设置字符串输入
  • set_matrix_input:设置带有可选单位的矩阵输入
  • get_input:检索指定输入(实数/字符串/矩阵)的当前值
  • get_matrix_input:检索指定矩阵输入的当前值
  • calculate_worksheet:重新计算工作表
  • sync_worksheet:计算工作表的别名
  • pause_calculation:暂停工作表计算
  • resume_calculation:恢复工作表计算
  • get_output:获取指定输出值(实数、字符串或矩阵)
  • get_real_output:从工作表中获取数值输出值
  • get_real_output_with_units:获取带有转换为指定单位的数值输出值
  • get_matrix_output:从工作表中获取矩阵输出
  • get_matrix_output_with_units:获取带有单位转换的矩阵输出
  • save_as_pdf:将工作表保存为PDF文件(仅限Mathcad Prime 5+)
  • save_as_rtf:将工作表保存为RTF文件
  • save_as_xps:将工作表保存为XPS文件
  • is_worksheet_readonly:检查工作表是否为只读
  • is_worksheet_modified:检查工作表是否有未保存的更改
  • set_worksheet_modified:强制设置工作表的“已修改”状态

资源

该服务器公开以下MCP资源:

  • mathcad://worksheets:列出所有打开的工作表
  • mathcad://worksheets/paths:列出带有完整文件路径的工作表
  • mathcad://worksheet/{worksheet_name}/inputs:列出工作表中的输入
  • mathcad://worksheet/{worksheet_name}/outputs:列出工作表中的输出
  • mathcad://worksheet/{worksheet_name}/output/{output_name}:获取特定输出值
  • mathcad://worksheet/{worksheet_name}/output/{output_name}/matrix:获取矩阵输出
  • mathcad://worksheet/{worksheet_name}/output/{output_name}/with_units/{units}:获取带有单位转换的输出
  • mathcad://worksheet/{worksheet_name}/info:获取关于工作表的信息
  • ``mathcad://worksheet/{worksheet_name}/status`:获取工作表的状态

提示模板

该服务器提供了以下提示模板,以帮助完成与MathCAD相关的任务:

  • solve_equation:解决数学方程的模板
  • plot_function:绘制函数的模板
  • analyze_engineering_problem:分析工程问题的模板
  • unit_conversion:执行单位转换任务的模板
  • create_worksheet_template:创建新的工作表模板的模板

示例工作流

示例1:解决物理问题

1. 打开现有的MathCAD工作表:
   "你能打开我位于C:\Users\username\Documents\Physics\projectile_motion.mcdx的物理工作表吗?"

2. 设置输入参数:
   "将初始速度设置为50 m/s,发射角度设置为30度。"

3. 计算结果:
   "现在计算轨迹并显示最大高度和距离。"

4. 提取输出值:
   "投射物达到的最大高度是多少?"

示例2:工程分析

1. 打开或创建用于分析的工作表:
   "我需要分析一个梁弯曲问题。你能打开structural_analysis.mcdx工作表吗?"

2. 配置工作表:
   "将负载P设置为5000 N,梁长L设置为2 m,杨氏模量E设置为200 GPa,惯性矩I设置为4×10⁻⁶ m⁴。"

3. 运行计算:
   "计算工作表并告诉我最大挠度。"

4. 导出结果:
   "将工作表保存为PDF,以便我可以将其包含在我的报告中。"

环境变量

  • MATHCAD_VISIBLE:设置为"true"以显示MathCAD应用程序窗口(默认),或设置为"false"以隐藏它。

架构

该服务器使用MCP Python SDK的FastMCP框架构建。主要组件包括:

  • standalone.py:具有MathCAD集成的独立服务器脚本
  • install_standalone.py:用于在Claude Desktop中安装服务器的实用脚本

故障排除

常见问题

COM自动化错误

如果遇到COM自动化错误:

  • 确保已安装并正确许可MathCAD
  • 检查是否在Windows上运行
  • 尝试重新启动MathCAD和MCP服务器

工作表未找到

如果找不到工作表:

  • 使用绝对路径,而不是相对路径
  • 确保文件路径正确转义
  • 验证文件存在且是有效的.mcdx文件

单位转换问题

如果单位转换失败:

  • 检查单位之间的兼容性(例如,长度不能转换为质量)
  • 确保使用正确的单位符号(例如,'m'表示米)
  • 尝试使用标准单位格式(例如,'m/s'而不是'm*s^(-1)')

许可证

此项目根据MIT许可证发布 - 详情请参阅LICENSE文件。

致谢