mcpField
P

pynet-mcp-bridge

本地服务
github.com/rafa2403nunez-droid媒体与设计36 天前更新

关于 pynet-mcp-bridge

pynet-mcp-bridge 是连接 AI 模型与桌面 BIM 工具的 MCP 服务,供工程团队通过 PyNet 在实时模型中执行 Python 脚本并自动化 BIM 工作流。它还提供界面元素管理和脚本执行前的静态校验。

主要功能

  1. 01在 Navisworks、Revit 等工具中执行脚本
  2. 02创建和管理功能区选项卡与按钮
  3. 03检查运行中的 Autodesk 实例和插件状态
  4. 04执行前静态校验 AI 生成的脚本
  5. 05控制 BIM Viewer 并查看碰撞数据

适用场景

  1. 01查询当前模型选中项和碰撞结果
  2. 02在 BIM 模型中生成几何并修复脚本错误
  3. 03创建用于重复工程任务的自定义按钮

MCP 相关

作为 MCP 服务,向 AI 客户端提供 PyNet 环境控制、脚本执行、界面管理和 BIM Viewer 工具。脚本会在发送至宿主应用前经过校验。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"rafa2403nunez-droid-pynet-mcp-bridge": {
"command": "uvx",
"args": [
"pynet-mcp-bridge"
]
}
}
}
启动命令uvx pynet-mcp-bridge

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypipynet-mcp-bridge1.4.5

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

README 配图

Release PyPI Python Windows Hosts MCP License

PyNet Bridge 是一个执行层,可让 AI 模型实时控制桌面 BIM 工具。

它将自然语言 → Python → 桌面 BIM 工具(Navisworks、Revit、AutoCAD、Rhino、Tekla Structures、RIB Presto)连接起来,使 AI 能够自主生成、执行和优化 BIM 工作流。

可用的集成包括 Navisworks Manage、Revit、Civil 3D、Rhino、Tekla Structures(2023–2026)和 RIB Presto(预算、COM API)。

该桥接层是 AI 逻辑与这些宿主的桌面 API 之间的连接纽带,可通过自然语言动态创建 UI、执行脚本并自动化 BIM 流程。

🎬 演示与教程

观看 PyNet Bridge 的实际运行——这些录屏展示了在运行中的 Autodesk 模型内,完整的自然语言 → BIM 操作工作流。

演示描述视频
⭐ 自主 BIM 协调(Revit + Navisworks)Claude Code 同时驱动 Revit 和 Navisworks,审核模型、按容差规则解决碰撞、生成几何图形,并实时自行修正 API 错误。🎬 在此观看
PyNET + Codex 集成介绍如何使用 Codex 配置 PyNet Bridge 并查询 Navisworks。🎬 在此观看
⭐ 精选:自主 BIM 协调

在此技术演示中,Claude Code 同时连接 Navisworks 和 Revit,从头到尾执行完整的协调工作流:

  • 以 Skill 形式定义工程标准 — AI 应用容差规则,判断哪些干涉可以自动批准。
  • 实时数据审核 — 在协调之前验证模型完整性并检测缺失参数(PYNET_Classification)。
  • 自主生成几何图形 — 直接在 Revit 中生成建筑套管(pasatubos),并精确旋转空间方向以匹配管道角度。
  • 自修复代码 — 遇到实时 Revit API 数据类型异常后,分析故障、即时重写脚本并完成任务。

🔄 工作原理

  1. 用户用自然语言描述任务。
  2. AI 生成 Python 脚本。
  3. PyNet Bridge 验证并发送脚本。
  4. PyNet 插件在 Autodesk 中执行脚本。
  5. 将结果返回给 AI。

这使 AI 从聊天机器人转变为 BIM 执行引擎。


🚀 PyNet Bridge 的强大之处

  • AI → 行动: 将 AI 生成的代码转化为 Navisworks/Revit 中的实际操作
  • 实时执行: 无需离开 BIM 环境即可立即运行脚本
  • 动态创建 UI: 让 AI 即时创建工具、按钮和工作流
  • 可靠通信: 快速且稳定,完全在本地运行
  • 模型感知自动化: 直接操作实时 BIM 模型

🛠️ 安装

✅ 选项 A — 自动安装程序(推荐)

打开 PowerShell 并运行:

irm https://raw.githubusercontent.com/RAEN-DT/PyNetBridge/main/install.ps1 | iex

这将自动:

  1. 检查是否已安装 Python 3.10+
  2. 如果缺少 uv,则安装 uv,然后使用 uv 从 PyPI 安装 pynet-mcp-bridge(绝不使用 pip)
  3. 自动检测并配置所有已安装的 AI 客户端:
    • Claude Desktop(标准版和 Microsoft Store 版本)
    • Claude Code(VS Code 扩展 / CLI)
    • Cline(VS Code 扩展)
    • Roo Code(VS Code 扩展)
    • Codex CLI(~/.codex/config.toml)

pynet-mcp-bridge 软件包包含:

软件包用途
pynet-mcp-bridge通过 PyNET 将 AI 模型连接到桌面 BIM 工具的 MCP 服务
mcp[cli](1.x)Model Context Protocol SDK 和 CLI 工具
psutil系统进程检测(查找正在运行的 Autodesk 实例)

安装后,请重启 AI 客户端以应用更改。

📦 Python 库入门包(可选)

安装 PyNET 脚本推荐使用的 Python 库:

irm https://raw.githubusercontent.com/RAEN-DT/PyNetBridge/main/install-libraries.ps1 | iex

此操作将安装:

库用途
pandas数据分析与处理
plotly交互式图表和可视化
matplotlib静态绘图和图表
dash使用 Python 构建 Web 仪表板

这些是 允许的 Python 导入项 中列出的第三方库。标准库模块(json、sys、re 等)已随 Python 一同提供。

前置条件
  • 已在 Navisworks/Revit 中安装 PyNet Platform 插件。
  • Python 3.10 或更高版本 → python.org — 支持 Python 3.14。
  • uv → docs.astral.sh/uv — 必需。 Claude Desktop 扩展(.mcpb)使用 uvx pynet-mcp-bridge 启动服务,因此必须安装 uv 并将其添加到 PATH 中。使用 winget install astral-sh.uv 安装。没有 uv,扩展将无法启动。
  • Git → git-scm.com — VS Code 扩展(Claude Code、Cline、Roo Code)正常运行所必需。
  • 对于 Cline / Roo Code:VS Code → code.visualstudio.com

🔧 选项 B — 手动安装

1. 安装软件包:

uv tool install pynet-mcp-bridge

仅使用 uv — 不要使用 pip 安装。通过 pip 安装的副本会落在与 pynet-bridge 启动器不同的解释器中,因此升级和修复会悄无声息地错过实际运行所用的环境。

2. 配置 Claude Desktop:

将以下内容添加到 claude_desktop_config.json:

  • 标准版:%APPDATA%\Claude\claude_desktop_config.json
  • Microsoft Store 版:%LOCALAPPDATA%\Packages\Claude_*\LocalCache\Roaming\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "pynet-bridge": {
      "command": "pynet-bridge",
      "args": []
    }
  }
}

3. 配置 Claude Code(VS Code 扩展):

添加到 %USERPROFILE%\.claude.json:

{
  "mcpServers": {
    "pynet-bridge": {
      "type": "stdio",
      "command": "pynet-bridge",
      "args": []
    }
  }
}

4. 配置 Cline:

添加到 %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json:

{
  "mcpServers": {
    "pynet-bridge": {
      "type": "stdio",
      "command": "pynet-bridge",
      "args": []
    }
  }
}

5. 配置 Roo Code:

添加到 %APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\mcp_settings.json:

{
  "mcpServers": {
    "pynet-bridge": {
      "type": "stdio",
      "command": "pynet-bridge",
      "args": []
    }
  }
}

6. 配置 Codex CLI:

添加到 %USERPROFILE%\.codex\config.toml:

[mcp_servers.pynet-bridge]
command = "C:/Users/<user>/.local/bin/pynet-bridge.exe"
args = []

🛠️ 可用的 MCP 工具

这些工具可让 AI 全面控制 PyNet 环境,涵盖 UI 创建、脚本执行和系统监控。 连接后,AI 即可使用完整的 PyNet 工具套件:

🧠 向 AI 提供的核心功能
🔍 系统与连接
  • list_active_instances:扫描系统,查找具有活动 PyNet 连接的 Autodesk 运行进程。
  • check_plugin_status:通过握手 ping 检查插件监听器是否有响应。
🏗️ 模块(选项卡)管理
  • get_pynet_ui_layout:获取完整的 UI 结构(ButtonsModules 和 ScriptButtons)。
  • create_pynet_module:在 Ribbon 中创建新的自定义选项卡(ButtonsModule)。
  • delete_pynet_module:永久删除模块及其所有内容。
🔘 按钮管理
  • get_buttons_data:列出指定模块 ID 下的所有脚本按钮。
  • deploy_script_button:在指定模块中安装新的 ScriptButton(名称、脚本、图标、工具提示)。
  • update_script_button:更新现有 ScriptButton 的元数据,或将其移至其他模块。
  • delete_script_button:根据 ID 从模块中永久移除 ScriptButton。
💻 执行与控制台控制
  • send_command:在 PyNet 引擎中直接执行脚本(目标 PID、脚本名称、内容)。
  • get_output_window_status:检查输出窗口当前是否可用或可见。
  • configure_output_window:切换 PyNet 日志/输出窗口的可见性。
🧊 BIM 查看器控制(VS Code)

控制在 VS Code 中打开的 PyNet BIM 查看器。从已加载的 .pnt 软件包中读取碰撞数据,并通过本地(127.0.0.1)连接控制 3D 视图——数据不会离开你的机器。

  • viewer_status:报告 PyNet BIM 查看器是否已打开(端口、软件包、数据目录)。
  • viewer_list_clashes:读取已加载软件包的 clashes.json,并返回每处碰撞及其 pnt_id 标识符。
  • viewer_load_package:将 .pnt 加载到已打开的查看器中,推送模型并返回摘要。
  • viewer_highlight_clash:根据 pnt_id 高亮一对碰撞元素(元素 A 为红色,元素 B 为绿色)。
  • viewer_fit:调整相机视角,使其适配查看器中的所有模型。
  • viewer_clear:清除查看器中的高亮和幽灵效果。

💡 使用示例

PyNet Bridge 连接后,你可以向 AI 客户端提供以下真实场景提示词。

示例 1 — 发现正在运行的模型并查询(只读)

提示词:“连接到我已打开的 Navisworks 模型,并告诉我当前选中项有多少个。”

AI 会调用 list_active_instances 查找正在运行的 Navisworks 进程(例如 Navisworks (PID 12345)),然后调用 send_command,运行一段读取当前文档选区的简短 Python 脚本。**预期输出:**类似 Current selection contains 42 items. 的消息。

示例 2 — 生成碰撞检测摘要

提示词:“汇总已打开模型中的碰撞测试结果,并将数量导出为表格。”

AI 会调用 list_active_instances,然后通过 send_command 运行一段脚本,使用列入白名单的 Autodesk.Navisworks.Clash 程序集遍历 DocumentClash 结果,并返回每项测试的数量。**预期输出:**类似 Test 'Structure vs MEP': 17 active, 3 resolved 的表格。

示例 3 — 即时创建自定义功能区工具

提示词:“创建一个名为 'QA' 的新功能区选项卡,并添加一个用于运行我的隐藏空图层脚本的按钮。”

AI 会调用 create_pynet_module(返回新的模块 ID),然后调用 deploy_script_button,并提供按钮名称、脚本路径、图标和工具提示。预期输出:Button 'Hide Empty Layers' deployed to module QA.——按钮会立即显示在 Autodesk 功能区中。

ℹ️ 通过 send_command / send_command_by_path 发送的每个脚本,都会先经过内置静态分析器验证(参见安全 AI 执行)。违反导入/调用白名单的脚本会在到达 Autodesk 之前被拒绝。


🛡️ 安全 AI 执行

PyNet Bridge 内置了验证层,可确保所有 AI 生成的脚本在执行前都安全且受控。

✔ 防止不安全操作
✔ 阻止未经授权的系统访问
✔ 确保与 BIM 模型的交互受到控制

AI 依然强大,但会在安全边界内运行

从 v1.1.1 开始,MCP 服务内置了静态分析器,会在每个脚本到达宿主应用程序之前进行验证。所有脚本都会在桥接层进行解析和检查——被拒绝的脚本绝不会离开 MCP 服务。

允许的 CLR 程序集

只能通过 clr.AddReference 引用以下 .NET 程序集:

  • 通用: System、System.Windows.Forms、System.Drawing、System.Collections.Generic
  • Navisworks: Autodesk.Navisworks.Api、.ComApi、.Interop.ComApi、.Clash
  • Revit: RevitAPI、RevitAPIUI
  • AutoCAD / Civil 3D / Map 3D: AcMgd、AcCoreMgd、AcDbMgd、AecBaseMgd、AecPropDataMgd、AeccDbMgd、ManagedMapApi
  • Rhino: RhinoCommon、Rhino.UI、Eto
  • Tekla Structures: Tekla.Structures、.Model、.Drawing、.Datatype、.Dialog、.Catalogs、.Plugins
  • RIB Presto: 无需引用 — 脚本通过 __presto__ 作用域变量(COM)驱动 Presto
  • PyNet 插件: Raen.Core.Pynet.*、Raen.{Product}.Pynet.*(任意版本 — 例如 Raen.Core.Pynet.Resources、Raen.Navisworks.Pynet.2024、Raen.Civil3D.Pynet.2026、Raen.Rhino.Pynet.8、Raen.Tekla.Pynet.2026、Raen.Presto.Pynet)
允许的 Python 导入

clr、sys、json、re、time、datetime、pathlib、typing、threading、collections、xml、math、pandas、plotly、matplotlib、dash、webbrowser、psutil、functools、openpyxl、uuid、zipfile、io、mimetypes、difflib、csv、ifcopenshell、numpy、shapely、qgis、processing、pypdf、docx、rhinoscriptsyntax、scriptcontext

允许的 Python 子模块

部分模块仅允许导入指定子模块,以阻止访问存在风险的同级模块:

允许禁止原因
http.serverhttp.client、http.cookiejar允许本地 HTTP 服务,阻止向外发送请求
禁止的 Python 导入

os、subprocess、shutil、socket、ctypes、pickle、importlib、urllib、signal、multiprocessing、tempfile、glob、inspect、code、codeop

禁止的调用

eval、exec、compile、__import__、getattr、setattr、delattr、globals、locals、vars、breakpoint、open

禁止的属性访问

__builtins__、__subclasses__、__globals__、__code__

任何违反这些规则的脚本都会立即被拒绝,并显示具体错误信息,且绝不会发送给插件。


📂 项目结构

  • pynet_mcp/:核心 MCP 服务逻辑(FastMCP)。
  • pyproject.toml:软件包配置和依赖管理。

📥 入门指南

几分钟内即可开始构建自主 BIM 工作流。

安装桥接程序,连接 AI 客户端,并将自然语言转化为模型中的实际操作。


❓ 常见问题

对安装、配置或使用有疑问?请查看完整的常见问题页面:

👉 PyNet 常见问题


🔗 此 MCP 如何融入生态系统

此 MCP 属于一个模块化系统,旨在通过桌面 BIM 工具实现 AI 驱动的 BIM 自动化。

此仓库旨在与以下组件协同工作:

  • PyNet Platform → 通过 Python.NET 在 Navisworks、Revit、Civil 3D、Rhino、Tekla Structures 和 RIB Presto 中执行脚本
  • PyNet Library → 为 AI 提供 Python 脚本库作为上下文

这些组件共同实现:

自然语言 → AI → Python 脚本 → PyNet → 宿主应用程序 → BIM 操作

组件仓库用途
PyNet PlatformPyNetNavisworks、Revit、Civil 3D、Rhino、Tekla Structures 和 RIB Presto 插件 — 托管 Python.NET 引擎
PyNet Bridge (MCP)此仓库MCP 服务 — 将 AI 模型连接到 PyNET,并包含安全脚本验证
PyNet LibraryPyNetLibrary脚本参考库和 AI 上下文

🔒 隐私政策

PyNet Bridge 完全在您的本地计算机上运行。它不会收集、存储或传输任何个人数据、遥测数据或分析数据。

  • **不收集数据:**该服务不会向 RAEN Digital Tools 或任何第三方发送任何信息。
  • **仅限本地通信:**MCP 服务与运行在 Autodesk 内部的 PyNet 插件之间的所有通信都在您的计算机上进行。没有网络套接字,没有远程端点——不会有任何信息离开您的计算机。
  • 您的脚本和模型数据会保留在您的计算机上,且只由您连接的 AI 客户端处理。

完整隐私政策:https://privacy.raendt.com/

🆘 支持

🖥️ 平台支持

PyNet Bridge 仅支持 Windows。它依赖 Windows 专属的本地通信设施,以及桌面 BIM 应用程序(Navisworks、Revit、Civil 3D、Rhino、Tekla Structures、RIB Presto),这些都是 Windows 产品。不支持 macOS 和 Linux。

📄 许可证

本项目采用 MIT 许可证授权。


mcp-name: io.github.RAEN-DT/pynet-mcp-bridge

RAEN Digital Tools

© 2026 RAEN Digital Tools · 保留所有权利。
本作品已在马德里自治区知识产权登记处登记。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。