DYN-10834: Bump DynamoMCP to 0.6.0 - #17334
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was a problem hiding this comment.
See the ticket for this pull request: https://jira.autodesk.com/browse/DYN-10834
RobertGlobant20
requested review from
edwin-vasquez-ucaldas and
jasonstratton
September 14, 2026 22:40
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The package bump is verified and no unresolved review issues remain.
Pull request overview
Updates DynamoCoreWpf’s hard-pinned DynamoMCP package from 0.5.9 to 0.6.0.
Changes:
- Enables upstream headless hosting and batched graph mutations.
- Includes the new extension definition through existing packaging logic.
File summaries
| File | Description |
|---|---|
src/DynamoCoreWpf/DynamoCoreWpf.csproj |
Updates the DynamoMCP package reference. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
jasonstratton
approved these changes
Sep 14, 2026
Contributor
|
@RobertGlobant20 , approved. Still waiting on PR checks |
DynamoMCP 0.6.0 ships a new model extension manifest
(extra/MCP_ExtensionDefinition.xml, Dynamo.MCP.McpExtension) that
0.5.9 did not have. BuildDynamoMcpDynamoPackage copies the package
into Built-In Packages, so the extension now loads at test startup
and every hard-coded model extension count or name list is off by one.
Update the three affected assertions:
* PackageManagerLoadsAndAddsExtension - expect the new
"Dynamo MCP CLI Extension" name.
* PackageLoaderRequestsExtensionsBeLoaded - 2 -> 3.
* LateLoadedViewExtensionsHaveMethodsCalled - 1 -> 2.
The view extension counts are unchanged, since MCP already shipped a
view extension in 0.5.9. Comments added at the count assertions to
explain what the numbers track for the next bump.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…cct/dynamo-build-image-pipeline#26)
|
Contributor
Author
|
Dynamo Smoke Test passed here: https://c007.cloudbees-ci.autodesk.com/job/DYNCI/job/Dynamo/job/DynamoAGTTests/job/smoke/608/ |
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Purpose
Lockstep bump of the hard-pinned
DynamoVisualProgramming.DynamoMCPbuilt-in package reference from[0.5.9]to[0.6.0], to consume the DynamoMCP 0.6.0 release. Same one-line shape as #17319 (0.5.8 → 0.5.9) and #17314 (0.5.7 → 0.5.8).Tracking task: DYN-10834.
This is a minor bump, not a patch — the first since 0.5.0. DynamoMCP reserves its minor slot for changes to how the package is consumed or hosted (0.3.0 first shipped it as a signed NuGet, 0.4.0 moved publishing to nuget.org, 0.5.0 raised the minimum to Dynamo 4.2), and 0.6.0 adds a new host mode:
Added— the MCP server can now start in a headless Dynamo session. DynamoMCP previously shipped as a view extension only (McpViewExtension : IViewExtension), and Dynamo loads view extensions only when there is a UI, so a CLI host could not reach the server. A second entry point,McpExtension : IExtension, starts the same server whenDynamoModel.CLIModeis set. The two are mutually exclusive and triple-guarded (view extension returns early onCLIMode;McpExtension.Readyreturns early whenCLIModeis false;McpServerHost.isInitializedguards again), so exactly one server starts. The supported headless host isDynamoWPFCLI.exe, notDynamoCLI.exe— the tool layer builds a DynamoPlayerDynamoControllerand binds DynamoPlayer'snet10.0-windowsbuild, which references PresentationFramework/WindowsBase fromMicrosoft.WindowsDesktop.App, a frameworkDynamoCLI.exedoes not load. OnDynamoCLIthe extension detects the missing framework and logs one explanatory line rather than throwing an assembly-load error out ofReady(). FullDynamoCLI/ Dynamo-as-a-Service support is tracked in DYN-10835.Fixed— the build again shipsMCP_ExtensionDefinition.xml, which registers the CLI extension. It and itsCreatePackagewiring were deleted when the project switched to a view extension; a stale copy in a developer's gitignoreddist/masked that. A newValidateExtensionDefinitionsbuild task now asserts every shipped*ExtensionDefinition.xmlresolves to an assembly present in the package and names a type actually in it, andCreatePackagestarts from an empty package directory instead of never pruning.Fixed— every mutating MCP tool call ran the entire graph once per mutation rather than batching: creating a ~31-node graph triggered ~31 full graph runs (2m51s for a single Autodesk Assistant edit) and widened the window for delta-sync races by queuing many overlappingUpdateGraphAsyncTasks. The 11 batch mutating tools now wrap their per-item loop inBeginDelayedGraphExecution(), so one run is requested per tool call. This changes only how many runs are requested — not which thread mutations run on, and it does not bypass theRunSettings.ForceBlockRunguard. Annotation-only tools (create_groups,assign_group_styles,create_notes) request no run at all, matching their pre-DYN-10770 behaviour.Verification performed against the published package:
dotnet restore src/DynamoCoreWpf/DynamoCoreWpf.csprojsucceeds andsrc/DynamoCoreWpf/obj/project.assets.jsonresolvesDynamoVisualProgramming.DynamoMCP/0.6.0under the exact-version pin, with no version-resolution errors.extra/MCP_ExtensionDefinition.xml, the DYN-10834 registration file above. Nothing was removed.BuildDynamoMcpDynamoPackagecopies$(PkgDynamoVisualProgramming_DynamoMCP)\bin\**\*withDestinationFolder="$(DynamoMcpDestRoot)%(RecursiveDir)", so subdirectories are preserved and the file lands atBuilt-In Packages\packages\DynamoMCP\extra\MCP_ExtensionDefinition.xml. Its<AssemblyPath>..\bin\MCPExtension.dll</AssemblyPath>therefore resolves to...\DynamoMCP\bin\MCPExtension.dll, whereMCPExtension.dllin fact sits, and its<TypeName>Dynamo.MCP.McpExtension</TypeName>is the new CLI entry point.MCPServer.dllandMCPExtension.dlladvance, 0.5.9.0 → 0.6.0.0 (verified by comparingVersionInfo.FileVersionacross every DLL in both packages)..github/scripts/check_file_version.ps1lists the DynamoMCP assemblies by filename with no pinned versions, and 0.6.0 adds no new assembly, so its exclusion list is unaffected.Declarations
Check these if you believe they are true
bin\-wrapped package layout (pkg.json + bin\ + bin\mcp_server\ + extra\) and the lockstep-bump rule all remain accurate; no code added.extra\file through the existing%(RecursiveDir)copy (above).Release Notes
Autodesk Assistant graph edits are substantially faster — a multi-node edit now triggers a single graph run instead of one per node. The MCP server can additionally run in a headless Dynamo session (
DynamoWPFCLI.exe).Reviewers
@jasonstratton (reviewed #17307, #17314, #17319)
Notes: the only functional change in this diff is the pinned version string on line 2222; everything else above is verification evidence. Worth a look at the file-set change bullet — this bump adds a package file, which the previous two did not.
FYIs
N/A
🤖 Generated with Claude Code