Skip to main content
Glama
Sysmac Studio File Editor MCP

Sysmac Studio File Editor MCP

by il-prof-f-a

plc_delete_variable

Destructive

Stages removal of a single PLC variable only after safety checks, rejecting read-only, I/O-bound, referenced, incomplete-source, or externally aliased declarations.

Instructions

Stage removal of one variable only when its observed declarations and source are safe. Refuses read-only or I/O-bound variables, observed code/declaration references, incomplete source, and global declarations with VAR_EXTERNAL aliases. External consumers are not acquired; no Sysmac build is implied.

Input Schema

NameRequiredDescriptionDefault
variable_idYes
transaction_idYes
expected_revisionYesProject revision read before staging this change.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered structurally; the description adds real value by revealing that this only stages a change (commit is separate) and by enumerating the refusal preconditions. It stops short of saying what the tool returns on refusal versus success, and phrases like "External consumers are not acquired" and "no Sysmac build is implied" are cryptic rather than clarifying – a mild net gain over annotations.

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

Conciseness3/5

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

Two sentences, front-loaded with the action and the safety gate, with no filler. However, the dense jargon cluster ("observed declarations", "incomplete source", "acquired", "Sysmac build") packs several distinct conditions into one run-on list without separators or examples, trading clarity for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, transaction-scoped mutation this covers the preconditions well, and an output schema plus destructiveHint carry part of the load. It remains incomplete on the transaction lifecycle (what staging obligates the caller to do next) and on both undocumented parameters, which an agent needs in order to construct a valid call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%: expected_revision is documented, but variable_id and transaction_id carry no descriptions anywhere. The description says "one variable" and "Stage", which hints the call must sit inside a transaction, but adds nothing about identifier format, how to obtain a variable_id, or how transaction_id relates to begin_transaction/commit_changes – a clear gap it should have filled.

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

Purpose4/5

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

The description names a specific verb and resource ("Stage removal of one variable") and adds a scoping qualifier ("only when its observed declarations and source are safe"). It implicitly separates deletion of a variable from the sibling delete tools for data types and POUs, but never names an alternative explicitly, so differentiation requires the reader to infer from the resource noun.

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?

It gives unusually concrete when-not guidance: read-only variables, I/O-bound variables, variables with observed code/declaration references, incomplete source, and global declarations with VAR_EXTERNAL aliases are all refused. What is missing is the positive pathway for an agent that gets refused – no sibling such as find-references, analyze_symbol, or get-capabilities is pointed to, so the agent must guess how to remediate a refusal.

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