内容
# Autodesk Inventor MCP
[MCP](https://modelcontextprotocol.io) 服务器,通过 COM 自动化将 Claude(或任何 MCP 兼容客户端)桥接到 **Autodesk Inventor**。它将 Inventor 的零件建模、装配、绘图和文档工具暴露为可调用的 MCP 工具,因此 AI 助手可以直接在运行的 Inventor 会话中进行草图、拉伸、圆角、放置装配组件、生成绘图视图等操作。
> **平台注意:** Autodesk Inventor 的 COM API 仅适用于 Windows。此服务器必须在安装了 Inventor 的 Windows 上运行,使用带有 `pywin32` 的 Python 环境。
## 功能
- **草图** — 线条、矩形、圆圈、弧线、多边形、折线、槽、椭圆、样条曲线、圆角、构造几何体、镜像、约束和尺寸。
- **3D 零件特征** — 拉伸、旋转、扫描、 loft、线圈(螺旋线/弹簧)、孔、圆角、倒角、壳、矩形/圆形图案、镜像、组合(布尔联合/减/交)。
- **工作几何体** — 工作平面、轴和点。
- **参数** — 列出、读取、设置和创建模型参数。
- **属性** — iProperties 和质量属性(体积、质量、重心等)。
- **几何体检查** — 列出实体、面、边和边界框。
- **装配** — 放置/固定/定位组件、添加和检查配合约束、矩形/圆形组件图案、物料清单。
- **绘图** — 图纸、基准/投影视图、尺寸、零件列表、标题块字段。
- **外观** — 列出和应用视觉样式/材质。
- **文档和应用程序控制** — 新建/打开/保存/关闭文档、活动文档切换、状态检查。
- **可视化** — 缩放以适应和截图捕获,用于视觉验证。
工具实现位于 `inventor/tools/` 下,按领域组织(`sketch_tools.py`、`feature_tools.py`、`assembly_tools.py`、`drawing_tools.py`、`geometry_tools.py`、`parameter_tools.py`、`property_tools.py`、`appearance_tools.py`、`export_tools.py`、`view_tools.py`、`app_tools.py`)。
## 要求
- 安装并授权 **Autodesk Inventor** 的 Windows。
- Python 3.10+(建议使用虚拟环境)。
- `requirements.txt` 中列出的依赖项,特别是:
- [`mcp`](https://pypi.org/project/mcp/) (FastMCP 服务器框架)
- [`pywin32`](https://pypi.org/project/pywin32/) (COM 自动化)
## 安装
```powershell
# 从仓库根目录
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
```
## 运行服务器
服务器通过 stdio 通信,如 MCP 客户端(如 Claude Desktop)所期望的那样:
```powershell
.venv\Scripts\python.exe inventor_mcp.py
```
它将连接到正在运行的 Inventor 实例,或在没有打开时启动一个实例。
### 与 Claude Desktop / Cowork 一起使用
在 MCP 客户端的配置中添加一个条目,指向 venv 解释器和 `inventor_mcp.py`,例如:
```json
{
"mcpServers": {
"inventor": {
"command": "C:\\path\\to\\repo\\.venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\repo\\inventor_mcp.py"]
}
}
}
```
在 `inventor-mcp-ext/manifest.example.json` 处提供了一个可自定义的 Claude Desktop 扩展(`.mcpb`)清单模板 — 复制它到 `inventor-mcp-ext/manifest.json`,用本地仓库路径替换 `<ABSOLUTE_PATH_TO_REPO>` 占位符,然后打包或加载它。
## 架构说明
- `inventor/connection.py` 管理与 `Inventor.Application` 的连接,为每个调用重新初始化 COM,以确保在 MCP 服务器可以接收的多线程调用中保持安全。
- `inventor/registry.py` 通过不透明的 `entity_id` 字符串跟踪草图实体和其他 COM 对象引用,以便工具调用可以引用早期调用中创建的对象,而无需重新查询几何体。
- `inventor/helpers.py` 和 `inventor/units.py` 提供共享的几何帮助程序和毫米/厘米单位转换(Inventor 的 API 内部使用厘米)。
- Inventor COM 类型库中的几个功能/草图集合被 `win32com.client.dynamic.Dispatch` 包装,而不是早期绑定的 gencache 代理,解决了在使用某些集合时观察到的 `gen_py` 缓存过期问题(例如 `CoilFeatures`、`SweepFeatures`、`LoftFeatures`、`CombineFeatures`)。
- 封闭的草图配置文件通过将每个新线从前一条线的端点对象链接起来构建,而不是通过独立点上的 `AddCoincident` — 这避免了 Inventor 在合并两个线端点 `SketchPoint` 时引发的 COM 错误。
## 许可证
免费用于非商业用途。商业用途需要事先获得作者的书面许可 — 请参阅 [LICENSE](LICENSE)。