Skip to main content
Glama
Longman006

RibbonSmith

by Longman006

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
RIBBON_MCP_AUTHNoOverride authentication strategy: 'clientsecret', 'azcli', 'interactive', or 'auto' (default)
RIBBON_MCP_ENV_URLYesThe Dataverse environment URL (e.g., https://yourorg.crm4.dynamics.com)
RIBBON_MCP_CLIENT_IDNoClient ID for service principal or interactive authentication
RIBBON_MCP_TENANT_IDNoTenant ID for service principal authentication
RIBBON_MCP_WORKSPACENoPath to workspace directory for backups and working files (default ~/.dataverse-ribbon-mcp/)
RIBBON_MCP_CLIENT_SECRETNoClient secret for service principal authentication

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
ribbon_statusA

Show the connection (WhoAmI), current checkouts with dirty state, and recent backups for a Dataverse environment. Start here to orient yourself.

ribbon_checkoutA

Begin editing the ribbon of an entity (or the application ribbon). Creates/reuses a temporary unmanaged solution containing only the entity shell, exports it, stores the export as a restorable backup, and initializes a local working copy of the entity's RibbonDiffXml. All edit tools operate on this local copy; nothing changes in the environment until ribbon_publish.

ribbon_get_structureA

Return the entity's fully composed ribbon (base + all customizations) as a compact JSON tree of tabs, groups and controls with ids, commands, labels, sequences and template aliases. This is the ground truth for valid Location values ('.Controls._children'), ids to hide, commands to reuse, and sequence placement. Filter by location and optionally by tab/group id to keep output small.

ribbon_get_commandA

Return the full definition of a command from the composed ribbon: its actions, enable rules and display rules (with rule bodies where they are defined). Use this before customizing or reusing an out-of-the-box command.

ribbon_get_diffA

Return the current working copy of the entity's RibbonDiffXml (requires checkout) — the complete declarative customization state that will be published.

ribbon_add_buttonA

Add a button with its command, rules and labels to the local working copy in one declarative call. The server generates schema-correct XML with proper id conventions, $LocLabels:/$webresource: prefixes and element order. Requires ribbon_checkout first. Get the location from ribbon_get_structure (a group id + '.Controls._children').

ribbon_hide_controlA

Remove an existing (usually out-of-the-box) control from the ribbon via HideCustomAction in the local working copy. The control id comes from ribbon_get_structure. Note: per Microsoft docs, for commands you own, an always-false display rule is often preferable; HideCustomAction removes the node others may target.

ribbon_customize_commandA

Copy an out-of-the-box command definition from the composed ribbon into the working diff so it can be modified (the Ribbon Workbench 'Customise Command' operation). Rule definitions that are core (Mscrm.*) stay as id references; non-core rule bodies are copied too. After copying, edit the returned XML with ribbon_edit_diff, or publish as-is to pin the current behavior.

ribbon_edit_diffA

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.

ribbon_remove_customizationA

Remove a CustomAction, HideCustomAction, CommandDefinition, rule or LocLabel from the local working copy by its Id. Un-hides / un-customizes after the next publish. Use ribbon_get_diff to list current ids.

ribbon_preview_diffA

Show the working RibbonDiffXml alongside the full validation report (schema order, id uniqueness, command/rule/label references, location existence against the real ribbon, web resource existence) without touching the environment. Always call before ribbon_publish.

ribbon_publishA

Validate, back up the current server state, then write the working RibbonDiffXml to the environment: splice into a fresh solution export, submit an async solution import, wait up to waitSeconds, then PublishXml and verify the changes are live by re-reading the composed ribbon. If the import outlasts the wait, returns status 'importing' — finish with ribbon_publish_status. Returns the backup id for ribbon_restore_backup.

ribbon_publish_statusA

Poll the async solution import started by ribbon_publish or ribbon_restore_backup. When the import has finished, this completes the operation: publishes the ribbon, verifies it live, and syncs local state. Call repeatedly (imports typically take 1-3 minutes) until status is 'published'/'restored'.

ribbon_discardA

Reset the working copy to the last exported/published state. Does not touch the environment.

ribbon_list_backupsA

List backup zips (taken at checkout and before every publish) that ribbon_restore_backup can re-import.

ribbon_restore_backupA

Re-import a backup solution zip (restoring the entity's RibbonDiffXml to that point in time), publish, and reset the local working copy to match. This is the revert mechanism. Like ribbon_publish, the import runs async — if it outlasts waitSeconds, finish with ribbon_publish_status.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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