Skip to main content
Glama
vilsem-mcp
by bcsnpc

update_visual

Apply RFC6902 JSON Patch to a stored Power BI visual spec with validation, diff/PNG preview, and a dry-run default before writing changes.

Instructions

Apply RFC6902 JSON Patch to the stored vilsem spec. Validates and previews before writing; returns diff and before/after PNGs. Defaults dryRun:true. Preserves manual format-pane objects unless resetFormatting:true; renderer identity/prototype/version paths are refused. Optional etag protects a reviewed dry run from intervening saves. Native/model/report objects are never edited.

Input Schema

NameRequiredDescriptionDefault
etagNo
patchYes
dryRunNo
pageNameYes
reportDirYes
visualNameYes
connectionIdNo
resetFormattingNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses validation/preview behavior, the returned diff and before/after PNGs, the dryRun:true default, preservation of manual format-pane objects unless resetFormatting is set, refusal of renderer identity/prototype/version paths, etag-based optimistic concurrency, and that native/model/report objects are never edited.

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?

Dense and front-loaded, leading with the core operation and following with safety-relevant constraints. Every sentence adds information, though the run-on semicolon chaining makes it slightly harder to scan than a cleanly bulleted set of constraints.

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 mutation tool with no annotations and no output schema, the description covers the critical behavioral surface: safety defaults, protected paths, concurrency, and return values. The remaining gap is the four unexplained path/identity parameters, which an agent must infer from naming alone.

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 0% across 8 parameters, so the description must compensate. It meaningfully explains patch (RFC6902), dryRun, resetFormatting, and etag, but leaves reportDir, pageName, visualName, and connectionId entirely undocumented in both schema and description.

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 specific verb and resource ('Apply RFC6902 JSON Patch to the stored vilsem spec') and implicitly separates itself from siblings like diff_visual, preview_visual, and commit_visual by describing patch-application with built-in preview. An agent can identify the operation without opening the schema.

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?

Usage is implied rather than stated: the dryRun default and 'validates and previews before writing' tell the agent this is the safe path to mutate a spec, and the etag note hints at a review-then-commit flow. However, it never explicitly says when to prefer this over commit_visual or diff_visual, nor when to set dryRun:false.

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