This guide is for using NavisHelper MCP without relying on the NavisHelper WPF form.
NavisHelper MCP has two parts:
NavisHelper.dllloaded inside Autodesk Navisworks. It owns the Navisworks API access and starts the local host bridge.NavisHelper.McpServer.exestarted by an MCP client or agent. It can start Navisworks throughstart_navisworks/open_latest_navisworks_file, then talks to the running Navisworks host through local discovery files and named pipes.
For an already open model, start Navisworks manually and let the plugin host be available first. For the common "open the last model" workflow, call open_latest_navisworks_file; it reads the current user's Navisworks Recent File List registry entries and waits for the NavisHelper host discovery record by default.
- Autodesk Navisworks Manage with the NavisHelper bundle installed.
.NET 9runtime forNavisHelper.McpServer.- Matching bundle DLL for the Navisworks version being used, for example
Contents/2027/NavisHelper.dll.
After building:
{
"mcpServers": {
"navishelper": {
"command": "D:\\GitHub\\NavisWorksMaster\\NavisHelper.McpServer\\bin\\Release\\net9.0\\NavisHelper.McpServer.exe",
"args": []
}
}
}For a packaged user install, replace the command path with the installed NavisHelper.McpServer.exe path.
Close Roamer.exe before running the packaged installer:
powershell -ExecutionPolicy Bypass -File .\Install-NavisHelperBundle.ps1 -ConfigureMcpThe package installs the bundle to %APPDATA%\Autodesk\ApplicationPlugins\NavisHelper.bundle, the MCP server to %LOCALAPPDATA%\NavisHelper\McpServer-<version>\NavisHelper.McpServer.exe, and the configurator to %LOCALAPPDATA%\NavisHelper\McpConfigurator\NavisHelper.McpConfigurator.exe. It configures missing client files when requested and then runs detection against that versioned executable. Restart or reload the MCP client after configuration.
The affected v2.6.3.0 ZIP could leave %LOCALAPPDATA%\NavisHelper\McpServer without a version. Current packages remove that directory only after verifying that it is an inactive NavisHelper MCP runtime; otherwise they warn and leave it untouched. To recover manually, verify the directory contents first, remove only the confirmed stale NavisHelper runtime, then rerun the installer and:
& "$env:LOCALAPPDATA\NavisHelper\McpConfigurator\NavisHelper.McpConfigurator.exe" --detectFor a private repository, authenticate with Git Credential Manager, gh auth login, or GitHub device flow. Never paste personal access tokens, browser cookies, or other secrets into prompts, source files, or logs.
After connecting an agent:
- Call
list_navisworks_hosts. - Call
host_status. - Call
mcp_health_check. - If multiple Navisworks windows are open, pass
instanceIdfromlist_navisworks_hosts. - If exactly one host of a specific version is open,
navisworksVersioncan be used, for example2027.
Selection:
selection_statusselection_copy_namesdump_subtree_names(csvorjsonl, hard-limited synchronous small root subtree name dump)start_subtree_names_dump/dump_subtree_names_status/cancel_subtree_names_dump(chunked large root subtree name dumps)
For large external name/position lookup dumps, prefer includePath=false for speed. Enable full paths only when the output needs hierarchy context.
selection_property_reportselection_export_properties(csvorxlsx, dry-run by default)selection_distinct_property_valuesselection_color_by_property(dry-run by default)selected_items_previewselected_items_ancestryselected_items_tree
Clashes:
clash_list_testsclash_list_resultsclash_generate_reportclash_report_statuscancel_clash_reportclash_manage_testsclash_bbox_pair_planclash_pair_tests_createclash_tests_from_setsclash_tests_exportclash_batchtest_importclash_create_matrix_from_selectionclash_save_viewpoints
Use clash_tests_from_sets for new set-bound tests. Use
clash_tests_export plus a JSON transfer plan, or
clash_batchtest_import for the supported nw-exchange-12.0 Selection Set
locator subset, when moving definitions between documents. Dry-run export and
BBox planning do not write files. A Selection Set itemId is local to the
current document/tree; exact full set path is the portable reference. Transfer
tools never carry old Clash results, viewpoints, comments, or calculation
history.
Startup/timing:
list_recent_navisworks_filesopen_latest_navisworks_filestart_navisworksmcp_task_timer_start/mcp_task_timer_finish(optional cross-tool workflow timer; every individual MCP tool call already returns automaticnavishelper_timing)
Model navigation/context:
host_statuslist_root_itemsfind_root_items_by_namefind_itemscurrent_viewpoint_infolist_saved_viewpointssaved_viewpoints_exportsaved_viewpoints_managesaved_viewpoints_reorderlist_selection_sets
For find_items property searches, prefer display category + property names with dataType. categoryInternal and propertyInternal are fallback-only. Run exactly one logical query/search per call; multiple targets must be separate sequential find_items calls.
These commands change the current Navisworks view or selection context but do not modify model data:
select_itemsselect_selection_setactivate_saved_viewpointzoom_to_selectionfocus_on_selectionfit_all
Commands with model side effects must keep apply=false by default and require explicit apply=true.
Examples:
hide_unselectedhide_selectedunhide_selectedreveal_selectedisolate_selectedshow_allcreate_selection_setcreate_viewpointmarkup_selection
If the agent cannot see Navisworks:
- Confirm Navisworks is running.
- Confirm the NavisHelper bundle for that Navisworks version is installed.
- Open any model and call the NavisHelper command at least once if the host was not initialized automatically.
- Check
%LOCALAPPDATA%\\NavisHelper\\Mcp\\instancesfor discovery files. - Call
mcp_diagnosticsandmcp_recent_calls.
If tools exist but calls fail:
- Use
mcp_error_contractfor stable error meanings. - Use
mcp_recent_callsto inspect target host, elapsed time, status, and error code. - Restart the MCP client after rebuilding
NavisHelper.McpServer.
Use the repository smoke test for local validation:
python tools\mcp_smoke_test.py --version 2027 --launch --nwd-dir "<folder-with-nwd-files>"If Navisworks is already running with a model:
python tools\mcp_smoke_test.py --version 2027The intended external distribution should contain:
- NavisHelper bundle for supported Navisworks versions.
NavisHelper.McpServerpublished self-contained or with documented.NET 9runtime requirement.- A short MCP client config snippet.
- A command guide generated from
MCP_COMMAND_OWNERSHIP.md.
See MCP_DISTRIBUTION_PLAN.md for the concrete publish command and package layout.