内容
# 监视 - 只读 Fusion 360 MCP
**允许本地 AI 检查您打开的 Autodesk Fusion 设计 - 而不允许它触及任何内容。**
监视将实时 Fusion 会话暴露为结构化的、严格只读的 [MCP](https://modelcontextprotocol.io) 工具:装配树、关节、刚性组、装配约束、时间线健康、参数、当前选择、视口截图 - 加上 **直接测量** (`measure`, `get_geometry_context`),以便答案来自评估几何,而不是猜测。
> *"列出我当前设计中的所有关节、刚性组和约束,并告诉我哪些存在错误或冲突。*"
> *"测量这两个组件之间的最小间隙。*"
> *"我刚刚选择了什么,它的参数是什么?*"
**状态:正在开发,Windows 已验证。** macOS 路径存在但未经测试。预计会有一些问题;工具会诚实地报告自己的限制。
## 只读意味着只读
**此代码库中没有写路径**。没有变异工具,没有“在 Fusion 中运行 Python”的逃脱口,没有时间线回滚;本地桥接只接受 GET 请求,不接受其他 HTTP 方法。这是代码的属性,通过回归测试强制执行,如果出现变异调用,回归测试将失败 - 而不是运行时标志。在命令中途、设计中途查询是安全的,不用担心它可能会做什么。
## 工作原理
```
任何 MCP 客户端(Claude Desktop,Claude Code,其他)
│ MCP 通过 stdio
▼
periscope_mcp 外部 Python 进程(官方 `mcp` SDK)
│ HTTP GET,127.0.0.1:8735, bearer token
▼
Fusion 插件桥接 在 Fusion 的嵌入式 Python 中,仅限标准库
▼
实时 Fusion 会话 (所有 API 调用都在 Fusion 的主线程上)
```
两个进程,因为 Fusion API 只存在于 Fusion 的解释器中,并且不是线程安全的。桥接仅绑定环回,并且需要每个请求都生成一个本地 bearer token。
## 快速入门
要求:Windows,Autodesk Fusion,Python 3.10+。
```bash
git clone https://github.com/VXNTedits/fusion360-mcp-periscope
cd fusion360-mcp-periscope
python install/install.py
```
然后在 Fusion 中:**Shift+S → 插件选项卡 → 监视 → 运行**(勾选 *启动时运行*)。
从 shell 验证:
```bash
python install/verify.py --probe
```
在 Claude Desktop / Claude Code 中注册:
```bash
python install/register.py --show # 预览
python install/register.py --all
```
其他 stdio-MCP 客户端 - 指向:
```json
{
"command": "<repo>/server/.venv/Scripts/python.exe",
"args": ["-m", "periscope_mcp"],
"env": { "PYTHONPATH": "<repo>/server" }
}
```
注意:注册的命令指向您的克隆 - 安装后不要移动文件夹。
## 工具
十二种,所有注释均为只读。有关详细信息,请参见 [FEATURES.md](FEATURES.md),有关 AI 面向的使用指南,请参见 [AGENTS.md](AGENTS.md)。
`fusion_health` · `get_session_info` · `get_assembly_tree` · `get_joints` · `get_rigid_groups` · `get_constraints` · `get_timeline` · `get_parameters` · `measure` · `get_geometry_context` · `get_selection` · `capture_viewport`
## 设计原则
- **测量优于推断。** 距离和范围来自 Fusion 的 `MeasureManager` 和评估的 B-Rep 界限。每个值都被分类为 `fusion_measured`、`fusion_reported` 或 `derived`(并显示公式)。参数标记为名义输入,因为 `1000 mm` 挤出参数对于后续功能没有任何意义。
- **诚实的间隙。** “此设计中没有”和“API 看不到此”永远不是相同的答案。覆盖块、截断注释和内联错误节点使差异明确 - 具有一个损坏功能的設計仍然可检查,因为损坏的功能通常是您询问的内容。
- **无聊的安全。** 仅限环回绑定(否则拒绝启动),每个安装的 token 与 `hmac.compare_digest` 进行比较,浏览器的 `Origin` 和 DNS 重新绑定 `Host` 检查,关闭失败。设计数据仅作为答案进入您自己的 AI 对话中离开机器。
## 限制(当前)
- 检查 **打开** 的设计文档;不浏览云文件、图纸或版本历史记录。
- 约束 *关系实体*(哪些面与现有约束配对)不可读 - Fusion API 仅在时间线回滚后公开它们,这是一种写入操作,而 PERISCOPE 拒绝执行。名称、健康状态、错误文本、偏移量和时间线顺序均已报告。
- 非常大的装配体获得有界限的、明确标记的部分结果,而不是挂起。
- 在 Fusion 内一次请求(按设计);模态对话框或长计算产生干净的 `fusion_busy`。
## 鸣谢
传输和线程模式的灵感来自于阅读几个 MIT 许可的 Fusion MCP 项目,主要是 [ndoo/fusion360-mcp-bridge](https://github.com/ndoo/fusion360-mcp-bridge) 和 [frankhommers/autodesk-fusion-mcp](https://github.com/frankhommers/autodesk-fusion-mcp)。两者都没有被 fork:它们都是具有代码执行曲面的作者工具,而 PERISCOPE 的只读诊断曲面没有先例可循。
## 许可证
[MIT](LICENSE)