Skip to main content
Glama
Kenny-666

Dynamics 365 MCP Server

by Kenny-666

d365_plugin_assembly_update

Destructive

Update a Dynamics 365 plugin assembly by comparing a new DLL against the stored unmanaged assembly, preserving existing plugin type IDs and names with preview validation.

Instructions

Default preview only. Compare actual DLL against a stored unmanaged database assembly and preserve all existing plugin type IDs/names. Permit same major/minor non-decreasing build/revision, same identity/framework/references and AnyCPU signed managed DLL only. Managed, packaged, workflow, added/removed/unresolved types and dependency changes are blocked. Execute with preview fingerprint and metadata-gated concurrency; verify stored bytes, identity and type IDs after saving. .NET 10 Runtime required. Never creates assemblies or retargets steps.

Input Schema

NameRequiredDescriptionDefault
dryRunNoDefault true; use false only with the same preview fingerprint.
dry_runNoDefault true; use false only with the same preview fingerprint.
ifMatchNoSpecific ETag; wildcard rejected.
filePathNoLocal regular managed DLL, at most 16 MiB. Never executed.
if_matchNoSpecific ETag; wildcard rejected.
file_pathNoLocal regular managed DLL, at most 16 MiB. Never executed.
assemblyIdNo
assembly_idNo
contentBase64NoCanonical base64 managed DLL; exclusive with file_path.
content_base64NoCanonical base64 managed DLL; exclusive with file_path.
expectedFingerprintNo
expected_fingerprintNo
allowUnprotectedUpdateNoExplicitly allow If-Match:* only when table concurrency is not confirmed; cannot bypass a supplied ETag.
allow_unprotected_updateNoExplicitly allow If-Match:* only when table concurrency is not confirmed; cannot bypass a supplied ETag.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructive and non-idempotent annotations, the description discloses preview defaults, validation rules, blocked change categories, concurrency gating, post-save verification, and the .NET runtime requirement. This is unusually rich behavioral context for an update operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but largely free of filler, and most sentences carry essential constraints or safeguards. It is somewhat run-on and leads with 'Default preview only' rather than an explicit purpose statement, which slightly hurts readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, destructive update tool with no output schema, it covers the critical safety and validation model well, including preview, fingerprinting, concurrency, and verification. It still leaves gaps around permissions/auth expectations and the exact shape of the preview or save result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 71%, so the schema already documents many parameters. The description adds conceptual context around preview fingerprints and metadata-gated concurrency, but it does not meaningfully explain key parameters such as assembly_id or expectedFingerprint beyond what the schema and naming imply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description makes clear that this is a controlled update of an existing plugin assembly from a DLL, with preview-first behavior and preservation of plugin type IDs. It distinguishes itself from creation and step-retargeting, but it never explicitly names the sibling tools or states 'update plugin assembly' as a crisp purpose sentence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives strong usage context: preview by default, execute only with the preview fingerprint, and do not use it to create assemblies or retarget steps. It also lists blocked scenarios, but it stops short of explicitly routing the agent to alternative tools such as inspection or query tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools