MCP implementation to connect AI agents with the PyNet Platform for BIM/Engineering automation.
A MCP server that implements the Model Context Protocol to connect AI agents with the PyNet Platform for BIM/Engineering automation. It serves as the execution layer enabling AI models to control Autodesk desktop tools in real time, bridging Natural Language to Python and Autodesk APIs for automated BIM workflows.
๐ ๏ธ Key Features
MCP-based server enabling model-context communication with PyNet Platform
Bridges AI logic to Autodesk desktop tools (Navisworks, Revit, AutoCAD)
Real-time control for generating, executing, and refining BIM workflows
Integrations for Navisworks Manage, Revit, and Civil 3D
Connects AI models to Autodesk desktop APIs via Python
๐ Use Cases
Autonomous BIM workflow generation and refinement
AI-driven control of Autodesk tools for engineering automation
Real-time translation of natural language instructions into Python calls
โก Developer Benefits
Clear MCP-based interface for agent-to-tool orchestration
Facilitates end-to-end AI execution against Autodesk desktop APIs
Ground-truth description in readme excerpt for quick onboarding
โ ๏ธ Limitations
Provided readme excerpt indicates focus on real-time control and specific Autodesk integrations; broader tool support not stated
Details on authentication, security, and deployment specifics are not included in the source data
PyNet Bridge is the execution layer that allows AI models to control Autodesk tools in real-time.
It connects Natural Language โ Python โ Autodesk desktop tools (Navisworks, Revit, AutoCAD), enabling AI to generate, execute, and refine BIM workflows autonomously.
Available integrations include Navisworks Manage, Revit, and Civil 3D.
This bridge acts as the connective tissue between AI logic and Autodesk desktop APIs, allowing for dynamic UI creation, script execution, and BIM process automation using natural language.
๐ฌ Demos & Tutorials
See PyNet Bridge in action โ these recordings show the full natural-language โ BIM-action workflow inside live Autodesk models.
Claude Code drives Revit and Navisworks simultaneously to audit models, resolve clashes by tolerance rules, generate geometry, and self-correct API errors in real time.
These are the third-party libraries listed under Allowed Python Imports. Standard library modules (json, sys, re, etc.) are already included with Python.
Prerequisites
PyNet Platform plugin installed in Navisworks/Revit.
Python 3.10 or higher โ python.org โ Python 3.14 is supported.
uv โ docs.astral.sh/uv โ required. The Claude Desktop extension (.mcpb) launches the server with uvx pynet-mcp-bridge, so uv must be installed and on your PATH. Install it with winget install astral-sh.uv. Without uv, the extension will fail to start.
Git โ git-scm.com โ required for VS Code extensions (Claude Code, Cline, Roo Code) to function correctly.
These tools allow AI to fully control the PyNet environment, from UI creation to script execution and system monitoring.
Once connected, the AI will have access to the full suite of PyNet tools:
๐ง Core capabilities exposed to AI
๐ System & Connection
list_active_instances: Scans the system for running Autodesk processes with an active PyNet connection.
check_plugin_status: Handshake ping to verify the plugin listener is responsive.
๐๏ธ Module (Tab) Management
get_pynet_ui_layout: Fetches the full UI structure (ButtonsModules and ScriptButtons).
create_pynet_module: Creates a new custom Tab (ButtonsModule) in the Ribbon.
delete_pynet_module: Permanently deletes a module and all its contents.
๐ Button Management
get_buttons_data: Lists all script buttons for a specific module ID.
deploy_script_button: Installs a new ScriptButton into a specific module (Name, Script, Icon, Tooltip).
update_script_button: Updates metadata for an existing ScriptButton or moves it to another module.
delete_script_button: Permanently removes a ScriptButton from a module by Id.
๐ป Execution & Console Control
send_command: Direct script execution in the PyNet engine (Target PID, Script Name, Content).
get_output_window_status: Checks if the output window is currently available/visible.
configure_output_window: Toggles the visibility of the PyNet log/output window.
๐ง BIM Viewer Control (VS Code)
Drives the PyNet BIM Viewer open in VS Code. Reads clash data from the loaded .pnt package and controls the 3D view over a local (127.0.0.1) connection โ nothing leaves your machine.
viewer_status: Reports whether a PyNet BIM Viewer is open (port, package, data dir).
viewer_list_clashes: Reads the loaded package's clashes.json and returns each clash with its pnt_id identifiers.
viewer_load_package: Loads a .pnt into the open viewer, pushes the models, and returns a summary.
viewer_highlight_clash: Highlights a clash pair by pnt_id (element A red, element B green).
viewer_fit: Fits the camera to all models in the viewer.
viewer_clear: Clears highlights and ghosting in the viewer.
๐ก Usage Examples
These are realistic prompts you can give your AI client once PyNet Bridge is connected.
Example 1 โ Discover a running model and query it (read-only)
Prompt: "Connect to my open Navisworks model and tell me how many items are in the current selection."
The AI calls list_active_instances to find the running Navisworks process (e.g. Navisworks (PID 12345)), then calls send_command with a short Python script that reads the active document's selection. Expected output: a message like Current selection contains 42 items.
Example 2 โ Run a clash-detection summary
Prompt: "Give me a summary of clash test results in the open model and export the counts as a table."
The AI calls list_active_instances, then send_command with a script that iterates the DocumentClash results using the whitelisted Autodesk.Navisworks.Clash assembly and returns counts per test. Expected output: a table such as Test 'Structure vs MEP': 17 active, 3 resolved.
Example 3 โ Build a custom ribbon tool on the fly
Prompt: "Create a new ribbon tab called 'QA' and add a button that runs my hide-empty-layers script."
The AI calls create_pynet_module (returns a new module ID), then deploy_script_button with the button name, script path, icon and tooltip. Expected output:Button 'Hide Empty Layers' deployed to module QA. โ visible immediately in the Autodesk ribbon.
โน๏ธ Every script sent via send_command / send_command_by_path is first validated by the built-in static analyzer (see Safe AI Execution). Scripts that violate the import/call whitelist are rejected before reaching Autodesk.
๐ก๏ธ Safe AI Execution
PyNet Bridge includes a built-in validation layer that ensures all AI-generated scripts are safe and controlled before execution.
โ Prevents unsafe operations
โ Blocks unauthorized system access
โ Guarantees controlled interaction with BIM models
AI remains powerful, but within safe boundaries
Starting from v1.1.1, the MCP server includes a built-in static analyzer that validates every script before it reaches the Autodesk host. All scripts are parsed and inspected at the bridge level โ rejected scripts never leave the MCP server.
Allowed CLR Assemblies
Only these .NET references are permitted via clr.AddReference:
PyNet plugins:Raen.Core.Pynet.*, Raen.{Product}.Pynet.* (any version โ e.g. Raen.Core.Pynet.Resources, Raen.Navisworks.Pynet.2024, Raen.Civil3D.Pynet.2026)
Allowed Python Imports
clr, sys, json, re, time, datetime, pathlib, typing, threading, collections, xml, math, pandas, plotly, matplotlib, dash, webbrowser, psutil, functools
Allowed Python Submodules
Some modules are allowed at the submodule level only, preventing access to dangerous siblings:
PyNet Bridge runs entirely on your local machine. It does not collect, store, or transmit any personal data, telemetry, or analytics.
No data collection: The server does not send any information to RAEN Digital Tools or any third party.
Local-only communication: All communication between the MCP server and the PyNet plugin running inside Autodesk stays on your machine. No network sockets, no remote endpoints โ nothing leaves your computer.
Your scripts and model data stay on your machine and are only processed by the AI client you have connected.
PyNet Bridge is Windows-only. It relies on Windows-specific local communication facilities and on Autodesk desktop applications (Navisworks, Revit, Civil 3D), which are Windows products. macOS and Linux are not supported.