Skip to main content
Glama
Longman006

RibbonSmith

by Longman006

Replace the working RibbonDiffXml

ribbon_edit_diff

Apply a complete RibbonDiffXml replacement for Dynamics 365 command bars, covering flyouts, menus, groups, tabs, and command edits. Validates the XML and saves without errors unless force is set.

Instructions

Escape hatch for anything the declarative tools don't cover (flyouts, menus, groups, tabs, command edits): replace the entire working RibbonDiffXml with the supplied XML. The XML is parsed, normalized to schema element order and validated; errors are returned without saving unless 'force' is set. Read the current state first with ribbon_get_diff.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
forceNoSave even with validation errors (they will still block publish)
entityYesEntity logical name (e.g. 'account'), or 'APPLICATION' for the application ribbon. Note: APPLICATION support is EXPERIMENTAL (implemented per documented schema but not yet covered by the live end-to-end test suite) — take extra care and keep the backup ids at hand.
environmentNoDataverse environment URL, e.g. https://myorg.crm4.dynamics.com. Optional when the RIBBON_MCP_ENV_URL environment variable is set.
ribbonDiffXmlYesComplete <RibbonDiffXml>...</RibbonDiffXml> element
Behavior4/5

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

With no annotations provided, the description carries the full burden. It convincingly discloses key behaviors: XML parsing, normalization to schema element order, validation, and that errors are returned without saving unless 'force' is set. It also hints at the destructive nature by saying 'replace the entire working RibbonDiffXml.' It does not mention permissions or reversibility, but the detail provided is strong.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the primary purpose, and every sentence adds value: what it does, how it behaves, and a required precondition. No filler or repetition.

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?

Given the tool's complexity (replacement, validation, force flag), the description covers the most important aspects: purpose, behavior, and a prerequisite. It does not explicitly state what happens on successful save (only errors are mentioned), nor does it mention potential need for checkout, but the overall guidance is sufficient for making an informed call.

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 100%, so the baseline is 3. The description adds some context around the 'force' behavior and the need to provide a complete XML, but these are already implied by the schema ('Save even with validation errors', 'Complete <RibbonDiffXml>'). The description does not significantly extend parameter meaning beyond the schema.

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?

The description clearly states the tool's purpose: 'replace the entire working RibbonDiffXml with the supplied XML.' It uses a specific verb ('replace') and resource ('RibbonDiffXml'), and distinguishes itself from siblings by framing it as an 'escape hatch for anything the declarative tools don't cover.'

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

Usage Guidelines5/5

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

The description explicitly indicates when to use this tool: when declarative tools don't cover something (flyouts, menus, groups, tabs, command edits). It also provides a clear prerequisite: 'Read the current state first with ribbon_get_diff,' guiding the agent on the correct workflow.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Longman006/ribbonsmith'

If you have feedback or need assistance with the MCP directory API, please join our Discord server