Skip to content

DYN-10834: Bump DynamoMCP to 0.6.0 - #17334

Merged
RobertGlobant20 merged 4 commits into
masterfrom
DYN-10834-bump-dynamomcp-0.6.0
Sep 18, 2026
Merged

RobertGlobant20 merged 4 commits into
masterfrom
DYN-10834-bump-dynamomcp-0.6.0

Conversation

@RobertGlobant20

Copy link
Copy Markdown
Contributor

Purpose

Lockstep bump of the hard-pinned DynamoVisualProgramming.DynamoMCP built-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:

  • DYN-10834 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 when DynamoModel.CLIMode is set. The two are mutually exclusive and triple-guarded (view extension returns early on CLIMode; McpExtension.Ready returns early when CLIMode is false; McpServerHost.isInitialized guards again), so exactly one server starts. The supported headless host is DynamoWPFCLI.exe, not DynamoCLI.exe — the tool layer builds a DynamoPlayer DynamoController and binds DynamoPlayer's net10.0-windows build, which references PresentationFramework/WindowsBase from Microsoft.WindowsDesktop.App, a framework DynamoCLI.exe does not load. On DynamoCLI the extension detects the missing framework and logs one explanatory line rather than throwing an assembly-load error out of Ready(). Full DynamoCLI / Dynamo-as-a-Service support is tracked in DYN-10835.
  • DYN-10834 Fixed — the build again ships MCP_ExtensionDefinition.xml, which registers the CLI extension. It and its CreatePackage wiring were deleted when the project switched to a view extension; a stale copy in a developer's gitignored dist/ masked that. A new ValidateExtensionDefinitions build task now asserts every shipped *ExtensionDefinition.xml resolves to an assembly present in the package and names a type actually in it, and CreatePackage starts from an empty package directory instead of never pruning.
  • DYN-10770 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 overlapping UpdateGraphAsyncTasks. The 11 batch mutating tools now wrap their per-item loop in BeginDelayedGraphExecution(), 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 the RunSettings.ForceBlockRun guard. 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.csproj succeeds and src/DynamoCoreWpf/obj/project.assets.json resolves DynamoVisualProgramming.DynamoMCP/0.6.0 under the exact-version pin, with no version-resolution errors.
  • The payload file set is not identical this time (33 → 34 files), unlike the last two bumps. The one addition is extra/MCP_ExtensionDefinition.xml, the DYN-10834 registration file above. Nothing was removed.
  • That new file needs no csproj change beyond the pin: BuildDynamoMcpDynamoPackage copies $(PkgDynamoVisualProgramming_DynamoMCP)\bin\**\* with DestinationFolder="$(DynamoMcpDestRoot)%(RecursiveDir)", so subdirectories are preserved and the file lands at Built-In Packages\packages\DynamoMCP\extra\MCP_ExtensionDefinition.xml. Its <AssemblyPath>..\bin\MCPExtension.dll</AssemblyPath> therefore resolves to ...\DynamoMCP\bin\MCPExtension.dll, where MCPExtension.dll in fact sits, and its <TypeName>Dynamo.MCP.McpExtension</TypeName> is the new CLI entry point.
  • All bundled third-party assembly versions are unchanged: BigGustave 1.0.6, Humanizer 3.0.1, Json.More 2.2.0, JsonPointer.Net 6.0.1, JsonSchema.Net 8.0.5, ModelContextProtocol[.Core] 1.3.0, SharpGLTF.* 1.0.0, Microsoft.Extensions.* (10.0.826.23019 / AI.Abstractions 10.500.226.25501), DynamoPlayer.* 7.0.7. The ABOUT.txt third-party attribution added in DYN-10707 therefore needs no update.
  • Only MCPServer.dll and MCPExtension.dll advance, 0.5.9.0 → 0.6.0.0 (verified by comparing VersionInfo.FileVersion across every DLL in both packages).
  • .github/scripts/check_file_version.ps1 lists 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

  • Is documented according to the standards — the existing csproj comment block documenting the hard pin, the bin\-wrapped package layout (pkg.json + bin\ + bin\mcp_server\ + extra\) and the lockstep-bump rule all remain accurate; no code added.
  • The level of testing this PR includes is appropriate — dependency version bump with no new code paths, so no new tests. Verified via restore resolution, a content/assembly-version diff of the 0.5.9 vs 0.6.0 packages, and tracing the new extra\ file through the existing %(RecursiveDir) copy (above).
  • Changes to the API follow Semantic Versioning and are documented in the API Changes document — no public Dynamo API changes in this PR.

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

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings September 14, 2026 22:39

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the ticket for this pull request: https://jira.autodesk.com/browse/DYN-10834

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 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

Copy link
Copy Markdown
Contributor

@RobertGlobant20 , approved. Still waiting on PR checks

RobertGlobant20 and others added 3 commits September 15, 2026 10:45
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>
@sonarqubecloud

Copy link
Copy Markdown

@RobertGlobant20

Copy link
Copy Markdown
Contributor Author

@RobertGlobant20
RobertGlobant20 merged commit 373a808 into master Sep 18, 2026
32 of 33 checks passed
@RobertGlobant20
RobertGlobant20 deleted the DYN-10834-bump-dynamomcp-0.6.0 branch September 18, 2026 18:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants