Skip to main content
Glama
Dynamics 365 MCP Server

Dynamics 365 MCP Server

by Kenny-666

publish_sitemap

Destructive

Publishes saved SiteMap navigation XML independently of record edits, using a preview hash and explicit scope acknowledgment to control execution.

Instructions

Publish previously saved SiteMap navigation XML separately from record editing. Default preview reads native RetrieveUnpublishedMultiple and the published record, returning a planHash. Execute with dry_run=false, expected_hash and allow_sitemap_scope_publish=true. Calls native PublishXml directly without CSDL, does not PATCH/save, verifies published XML after acceptance and preserves accepted/unknown evidence on failure. Legacy servers may ignore the ID and publish wider SiteMap scope. No PublishAllXml fallback; browser/app UI and app-module publication remain separate.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>"
    },
    "name": "publish_sitemap"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYes
dryRunNoDefault true reads the latest saved and published definitions and previews publication without writing.
dry_runNoDefault true reads the latest saved and published definitions and previews publication without writing.
expectedHashNoCurrent planHash from the publication preview, required for execution.
expected_hashNoCurrent planHash from the publication preview, required for execution.
environment_profileNoOptional named environment profile for this call; omit to use the configured default.
allowSitemapScopePublishNoRequired true for execution: acknowledge native SiteMap publication scope, including other pending SiteMap changes on legacy servers, without an atomic lock.
allow_sitemap_scope_publishNoRequired true for execution: acknowledge native SiteMap publication scope, including other pending SiteMap changes on legacy servers, without an atomic lock.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.2

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare destructive=true and idempotent=false, but the description goes well beyond them: it discloses the native PublishXml call path, no CSDL/PATCH semantics, post-acceptance verification of published XML, evidence preservation on failure, and the legacy-server risk that the ID may be ignored and wider SiteMap scope published without an atomic lock. That last point is exactly the kind of blast-radius warning a destructive tool needs.

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?

Front-loaded with the core action and then ordered from preview to execution to failure behavior to caveats. Sentences are dense and jargon-heavy (CSDL, PublishAllXml, planHash) and could be broken up, but essentially every clause carries information an agent needs, with no filler.

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?

Covers the risky parts of a destructive, non-idempotent mutation with no output schema: what is verified, what happens on failure, and the legacy scope caveat. The remaining gap is the shape of the execution response beyond 'verifies published XML', which the agent must discover by calling.

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 88%, so the schema already documents most parameters; the description still adds the relationship semantics — that expected_hash is the planHash from the preview and that allow_sitemap_scope_publish is an explicit scope acknowledgement gate rather than a plain flag. It does not explain environment_profile or the dry_run/alias duality, but the marginal value over the schema is real.

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

Purpose5/5

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

States a precise verb+resource: publish previously saved SiteMap navigation XML, and immediately scopes it ('separately from record editing', 'does not PATCH/save'). It also distinguishes itself from adjacent capabilities by name ('browser/app UI and app-module publication remain separate', 'No PublishAllXml fallback'), which lets an agent separate it from publish_appmodule, publish_ribbon_solution, and save_sitemap_with_journal.

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?

Gives an explicit two-step workflow: the default preview returns a planHash, and execution requires dry_run=false, expected_hash and allow_sitemap_scope_publish=true. What is missing is a direct pointer to the sibling that produces the hash (plan_sitemap_publication) and any statement of when NOT to use this (e.g. choosing publish_appmodule instead).

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