Skip to main content
Glama
Kenny-666

Dynamics 365 MCP Server

by Kenny-666

update_model_relationship

Destructive

Preview and update existing unmanaged 1:N or N:N relationship menus and cascade behaviors via native PUT, preserving identities and omitted settings; requires a plan hash and explicit write approval.

Instructions

Preview/update an existing unmanaged custom 1:N menu/cascade or N:N per-side menus by full native PUT with language merging. Preserves table/column/intersect identity and omitted settings. Menu must be confirmed customizable. Cascade changes can affect future related-record deletion, ownership and access; native cross-relationship rules remain platform-validated. Requires planHash and explicit unprotected write; saves and reads back separately from publication.

Input Schema

NameRequiredDescriptionDefault
patchNo
dryRunNoDefault true performs reads/eligibility checks and returns a native request preview. Set false to execute.
dry_runNoDefault true performs reads/eligibility checks and returns a native request preview. Set false to execute.
schemaNameNo
schema_nameNo
expectedHashNoCurrent preview planHash (binds target, patch and environment), required for execution.
expected_hashNoCurrent preview planHash (binds target, patch and environment), required for execution.
solutionUniqueNameNoExisting unmanaged solution; its publisher prefix is validated for new schemas.
solution_unique_nameNoExisting unmanaged solution; its publisher prefix is validated for new schemas.
allowUnprotectedWriteNoExplicitly permit the native PUT/Action without atomic concurrency protection. A preview fingerprint is still required.
allow_unprotected_writeNoExplicitly permit the native PUT/Action without atomic concurrency protection. A preview fingerprint is still required.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4/5.0
Behavior5/5

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

Annotations only flag destructive/not-idempotent; the description goes well beyond by disclosing that table/column/intersect identity and omitted settings are preserved, that cascade changes affect future deletion, ownership and access, that native cross-relationship rules stay platform-validated, that a planHash plus explicit unprotected write are required, and that saving is separate from publication. These are exactly the operational facts an agent needs before invoking a destructive mutation.

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 whole definition is a single dense paragraph where every clause carries distinct information (scope, preservation, risk, gating, publication). It is front-loaded with the verb+resource, though heavy jargon like 'per-side menus' and 'full native PUT' makes it slower to parse than a short bulleted structure would.

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 11-parameter nested mutation with no output schema, the description covers the risk profile, the preview/execute contract, prerequisites and the fact that saving is distinct from publication. What remains thin is the return of the preview step and the eligibility-check details, both partially covered in schema field descriptions.

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

Parameters4/5

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

Schema coverage is 73%, and the description fills key gaps: it names planHash (expectedHash) as required for execution, the explicit unprotected-write flag (allowUnprotectedWrite), language merging for the label arrays, and per-side menus (entity_1_menu/entity_2_menu) for N:N. It does not explain the alias duplication or the patch/omit semantics in depth, but adds clear value beyond the schema.

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?

States a specific verb and resource: 'Preview/update an existing unmanaged custom 1:N menu/cascade or N:N per-side menus' via 'full native PUT with language merging'. The 'existing' and 'unmanaged custom' qualifiers implicitly separate it from create_model_relationship, but no sibling is named explicitly, so an agent must infer the boundary.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: 'Preview/update' plus the schema default dryRun=true and 'Menu must be confirmed customizable' sketch a preview-then-execute workflow with a prerequisite gate. However, the description never says when to pick this over create_model_relationship or get_model_relationship, and gives no explicit exclusions.

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