Skip to main content
Glama
Kenny-666

Dynamics 365 MCP Server

by Kenny-666

disassociate_records

Destructive

Remove a native Dynamics 365 association without deleting the related record: clear a lookup only when it points to the target, or remove collection membership via DELETE on the $ref.

Instructions

Remove a native association. A single lookup is cleared only if it currently points to the supplied target; collection membership uses DELETE on the specific $ref. No related record is deleted.

Input Schema

NameRequiredDescriptionDefault
idYes
dryRunNoCompatibility alias for dry_run. Conflicting aliases are rejected.
dry_runNoRead-only preview of environment, target, changes and write blockers. Default false; sensitive fields are masked.
ifMatchNoCompatibility alias for if_match. Conflicting aliases are rejected.
if_matchNoSpecific ETag from a prior read/preview. Without it, reads the current record ETag when the table supports concurrency.
relatedIdNoCompatibility alias for related_id. Conflicting aliases are rejected.
related_idNo
collectionNameNoCompatibility alias for collection_name. Conflicting aliases are rejected.
collection_nameNoNative EntitySetName, such as accounts. Validated against table metadata.
navigationPropertyNoCompatibility alias for navigation_property. Conflicting aliases are rejected.
navigation_propertyNoNative navigation property, resolved from relationship metadata to the specified related table.
allowUnprotectedWriteNoCompatibility alias for allow_unprotected_write. Conflicting aliases are rejected.
relatedCollectionNameNoCompatibility alias for related_collection_name. Conflicting aliases are rejected.
allow_unprotected_writeNoDefault false. Explicitly allow an unprotected write if table concurrency is unconfirmed, or for collection relationship membership. Does not bypass a supplied ETag conflict.
related_collection_nameNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.6/5.0
Behavior4/5

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

With destructiveHint=true already declared, the description adds meaningful context: it is a conditional removal (matching target only), collection membership follows a different code path, and related records are not deleted. It does not disclose the dry_run/if_match workflow or what a partial/no-op result looks like, but the scope of destruction is well clarified.

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?

Three short sentences, front-loaded with the core action, then the two semantic modes, then the safety caveat. Nothing is padded, though it could be slightly tighter.

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

Completeness3/5

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

For a mutation tool with 15 parameters, no output schema, and concurrency controls (dry_run, if_match, allow_unprotected_write), the description covers the association semantics well but omits the operational workflow (preview first, ETag handling) and idempotency behavior. Adequate, not complete.

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 coverage is 80% with detailed per-property descriptions (including alias handling, dry_run, if_match, allow_unprotected_write), so the schema carries the parameter burden. The description mentions no parameter names or formats, leaving the baseline of 3 appropriate.

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 ('Remove a native association'), which plainly contrasts with the sibling associate_records. It does not name the sibling explicitly, but the operation is unambiguous.

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?

The description implies usage conditions — a lookup is cleared only when it points at the supplied target, and collection membership goes through a $ref DELETE — but it never states when to prefer this tool versus associate_records or update_existing_record, nor any prerequisites.

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