Skip to main content
Glama

finish_change

Destructive

Apply or undo an approved Power BI change after user approval via 6-digit code; backs up, verifies, and restores on failure.

Instructions

STEP 2 (apply) or UNDO (rollback) for a change from propose_change. Call ONLY after the user has explicitly approved THAT change and read you the 6-digit approval code shown in the server's console window; never guess a code or infer approval. With an empty approval_code it issues a fresh code and applies nothing. apply backs up the whole file, applies only the approved edit, re-verifies, and restores the original if verification fails. rollback restores the backup (needs its own code). Works only on COPIES inside the folder named by PBI_MCP_EDIT_ROOT (off when unset).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYes
change_idYes
approval_codeNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=false, so the safety profile is known. The description adds genuinely useful context beyond them: a full-file backup before apply, re-verification with automatic restore of the original on failure, per-action approval codes, and the PBI_MCP_EDIT_ROOT scope restriction with the off-when-unset behavior. It omits failure-mode detail such as what a rejected or expired code returns. Because annotations already carry the destructive read/write signal, the added value is real but not maximal.

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 step label is front-loaded and each sentence carries operational weight — phase, precondition, edge case, action semantics, scope. The density makes it read as one long block rather than separated clauses, which slightly hurts scanning, but there is 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?

For a 3-parameter destructive mutation with an output schema present, the description covers preconditions, both action modes, rollback code requirements, and the environment scope, so an agent can call it correctly. Return values are legitimately deferred to the output schema, leaving the description sufficiently complete without excess.

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 description coverage is 0%, so the description must carry parameter meaning, and it largely does: it defines apply versus rollback, explains that an empty approval_code triggers a code issuance rather than an action, and ties change_id to a prior propose_change. The enum values themselves are only named in the schema, not spelled out beyond their high-level semantics.

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 opens with a precise verb-plus-resource statement — step 2 apply or undo/rollback for a change created by propose_change — and names the sibling that produces the change_id. An agent can distinguish it from propose_change and the read-only list/analyze siblings without opening any schema.

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?

It states both the precondition (explicit user approval of THAT change plus the 6-digit console code) and the prohibition (never guess a code or infer approval), plus the edge case where an empty approval_code issues a fresh code and applies nothing. The upstream tool and the prerequisite flow are explicit, leaving nothing to inference.

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